Virtual machines are a software device that have been around for years. The first time I became acquainted with them was on an IBM mainframe. Virtual Machine or VM allowed each user to have their own small mainframe computer. The way is worked is you would have one real machine running the VM operating system. The software would generate many virtual machines that all shared the real machine. Each virtual machine would have a dedicated portion of the RAM hard disk and outher resources of the real machine. Then say every 100 computer cycles your virtual machine was active and did it’s thing. The real machine was bigger and faster than the virtual machines. This would allow many different computer programs to run on the computer with out any interaction between the programs. You could be running the payroll program on one VM while the mailing list was being generated on another VM. Each VM was isolated from the other VM’s so the information did not get mixed up. This way you could purchase one big computer instead of many small computers. Because you to not run payroll every day, the rest of the time all of the other VM’s would be faster.
With personal computer’s the VM idea breaks down because personal computers imply it is only your computer. The technique is used to isolate the different programs you are running, such as Word, Excel, etc. Then the industry began to grow. Now you have multiple operating systems, DOS, Windows 95, Windows 98, Windows 2000, Windows XP, Linux, BSC Unix. Programs were written to work on all these different operating systems. With a virtual machine you could simply start the other operating system and switch back and forth. This was a real help to the help desks and programmers that needed to support different operating systems. The key that made these VM’s worked was that the different operating systems used the same central processor.
The Apple Mac presented a new challenge. Many users really like the clean easy to understand interface, but they had some programs they needed to use that would only work under Windows. The VM designers came up with a way that you could run Windows with in the Mac Operating System. Now you could run the Windows only application on your Mac. Initially this did not work very well, Apple switched to OSx which is a BSB unix, the virtual PC improved, but it had a tendency to be slow. Mac’s used a PowerPC central processing unit, Windows used an Intel x86 central processor. Not only did the you have to create a virtual machine to run the OS you had to translate the instructions for the central processor. The Vitural Machine was useable but not practical for large applications. The next breakthrough was when Apple switched to use the Intel x86 processor. Now a virtual machine can be built that did not have to translate the instructions to the central processor, the traditional model for a VM.
One more little wrinkle. The best way to make a VM was for the VM to have it’s own control program that ran before you loaded any OS, then each OK loaded on it’s own VM. This is more effecient because you do not need to take into consideration any of the nuances of each OS. Such as if you ran the VM inside another operating system you needed to translate all of the disk reads and writes between the different OS’s. If you did this outside the OS you could use the native disk reads and writes. This would not work for a Mac. Apple does not license their operating system to run on any computer that is capable, like most everyone else, they license their operating system to run only on Apple built hardware. So you can not run the Mac OS in a traditional VM (such as VMWare) the OS needed to run on the Apple hardware not a virtual machine. Companies like VMware and parallels went to work and developed specialized versions of their VM’s that would run inside the Mac OS. This is a unique situation in the Industry. Soon after Apple introduced the Intel processors they also created an extension in their OS called bootcamp. BootCamp allows you to have a partition with a different disk format on your system, and access this disk from inside the Operation System. Now the Mac Virtual Machines can use native disk access to operate faster.
The Apple licensing restriction is the reason you do not see Windows machines running Virtual Mac’s. This would be against Apple’s licensing policy. It would be illegal for me to purchase OSx and install this on a Virtual Machine on my Windows computer. If I want to run the Mac OS I have to purchase an Apple built computer. This was one of my concerns in the I’m a Mac I’m a PC post. If I want I can take the computer that I purchased with the Windows Operating System, download or purchase a different version of Windows, or any of the Linux or BSD unix (including Darwin, the open source version of OSx without the Apple user interface, and run these in my virtual machine. I can not purchase a copy of OSx and install it on this virtual machine.
The point I made in my I’m a Mac post was that, if Apple wanted us to use their operating system, they would let us run it on hardware we already owned rather than purchasing a new computer from Apple.
It is interesting to see how people have applied technology, and the schemes they have devised to market their product.