Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Somebody jump in if I'm not entirely correct, but from what I've read virtualization technology does not open the system architecture up to the same vulnerabilities as there would be if Windows was running natively. I believe the technology contains the virtualized OS to a "box" so that it cannot run wild all over your machine, as it were..
Yes you are right. But the "virtual machine" can still get junked up with spyware and the lke. Cleanning up a VM is easy. Simply delete it. The VM looks like a file to Mac OS. If you have saved a copy of the file from before it was "gunkked up" you are set.

The best way to run Windows XP in a VM is to "share" some files from the Mac to the virtual PC. That way when you periodically trash the VM image your PC files are safe in the Mac's HFS+ system

It's really no differnt then having a real PC, only that periodic full reinstall takes second rather then hours.

Yes, both of you are exactly right.

A Windows environment running in VM is the same as any other Windows environment, and can be subject to the same vulnerabilities.

However, it's much less likely to be problematic for the following reasons:

- The entire environment is "sandboxed", network-wise, within the host OS's networking. Most Windows XP installations will now be behind the integrated software firewall anyway, but this is just another layer of protection: it's essentially like being behind a NAT router.

- A virtual machine environment, being secondary to the primary environment, is typically only used for targeted tasks, not routinely used for things like web browsing, email, and downloading - the major vectors of infection for much spyware/malware

- Since the virtual machine's disk is just a file on the host OS's drive, it can be immediately trashed and restored from a known-good pristine backup in seconds

- If no filesystem sharing is done via the VM between the Windows environment and the host (Mac OS X) environment, there is no[1] way that even severe malware within the Windows environment can cause any damage to the Mac OS X environment

- If filesystems are shared, e.g., a folder on the Mac side is shared as a drive letter on the Windows side, any malware that alters filesystems could theoretically alter the shared filesystem. If a virus, for example, attempted to delete all files on drives other than C:, that would be affected. But, 1.) Most malware doesn't just arbitrarily delete files, because its goal is to spread itself, and 2.) ONLY files that are shared could even theoretically be affected. Also, Windows malware will typically target Windows OS features and filesystem elements. But if you really are paranoid and want to be safe, you probably wouldn't want to, say, share your entire Mac OS X volume as a drive letter into the PC environment.

The bottom line is that from a technical and practical usage standpoint, running Windows in a VM is probably the safest possible way to run Windows, and there aren't really any ways, except for very specific ways via the explicit filesystem sharing, that anything that happens in the Windows environment can even touch your Mac OS X installation. And even if something went horribly wrong in your Windows environment, you can just trash the file that represents it on the Mac side of things, and replace it with your most recent and/or pristine backup of that file.

You guys, and many, many others, are going to *love* virtualization on Mac OS X on Intel-based Macs: running other x86 OSes - Linux, Windows, FreeBSD, etc., at near-native speed of the hardware - right along side Mac OS X, instantly able to switch back and forth.

[1] Sure, you could argue that someone could make Windows malware that specifically also targets an unknown vulnerability in a particular piece of virtual machine software, thereby somehow gaining access to the host side. But that is *extremely* unlikely to the point that it's not even worth mentioning.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu
 
cmoney said:
Official support for it doesn't mean it won't or can't work. Witness Windows running on Intel Macs.


While that is true the current version of Virtual PC for Windows emulates an OS X for PPC NOT Intel..
 
ChrisA said:
For that price many people would prefer to pay it rather then downloading free virtualization software from http://fabrice.bellard.free.fr/qemu/

I assume the 50 bucks buys you an instal program and at least some level of suport. But then free and Open Source has big advntages too.

Except that the virtualization support for QEMU doesn't support Mac OS X or Intel-based Macs, I'd agree with you. ;-)

I'm sure the QEMU/Q guys will get a virtualization solution together, and it will probably mature into something quite nice.

But it probably won't support VT - one of the major areas of benefit in hardware virtualization - and, as you noted, support from a commercial vendor is important to many people. That's why when you look in enterprise and institutional environments, people are running VMware, not QEMU.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu

cmoney said:
Official support for it doesn't mean it won't or can't work. Witness Windows running on Intel Macs.

No, it both won't and can't work.

The only way we'll ever see Virtual PC for Intel-based Macs (e.g., in a virtualization form) is if Microsoft specifically and explicitly makes one.

And Microsoft has already backed away from any commitment to support Virtual PC on anything other than PowerPC hardware, because making a nice virtualization solution for Windows on Mac OS X doesn't fit their overall strategy. (Yes, even if it's another product and another Windows license sold: that would also make it easier for people to buy Macs, which increases Mac OS X marketshare, and is strategically bad for Microsoft. If Connectix still had Virtual PC, they'd be falling all over themselves to get a virtualized VPC ready for Intel-based Macs.)

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu

cmoney said:
So I don't know if anyone has tried this yet...or if it's even been discussed in this thread. But with Windows running on Macs, has anyone considered running Virtual PC (for Windows) or VMWare under Windows and installing OS X as a guest OS?

Originally I thought it would depend on how the guest OS supports EFI or other requirements that OS X Intel has, but since it's not actually emulating the hardware, could it possibly work?

Anyway, perhaps that's one approach to the problem.

Yes, the OS X Intel cracking projects out there already have Mac OS X running in VMware (which itself can then run on Windows or Linux, etc.)

And I see where you're going with this:

Use the (totally unsupported and inelegant) Windows dual-boot solution on your Intel-based Mac, run Windows as your primary OS, then run VMware under Windows, and then run an unsupported and hacked version of Mac OS X in VMware. Sure, it's *possible*.

But why would you want to do that when a $50 supported, commercial virtualization product that supports VT and unmodified x86 OSes will become available soon for Mac OS X?

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu
 
Marketshare mish mash

How will we quantify marketshare once this happens? Since the machine is running both OSs, then Microsoft could potentially have a 100% marketshare while Apple holds a 15% marketshare. This could be very misleading.
The whole marketshare BS will be out the window and any speak of it will hopefully be ignored.
I guess they could quantify Base installs and virtualization installs as separate concepts. In other words, which OS is the booting OS.
 
daveschroeder said:
No, it both won't and can't work.

The only way we'll ever see Virtual PC for Intel-based Macs (e.g., in a virtualization form) is if Microsoft specifically and explicitly makes one.

And Microsoft has already backed away from any commitment to support Virtual PC on anything other than PowerPC hardware, because making a nice virtualization solution for Windows on Mac OS X doesn't fit their overall strategy. (Yes, even if it's another product and another Windows license sold: that would also make it easier for people to buy Macs, which increases Mac OS X marketshare, and is strategically bad for Microsoft. If Connectix still had Virtual PC, they'd be falling all over themselves to get a virtualized VPC ready for Intel-based Macs.)

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu

Is this new news after they said they would come out with Virtual PC for the Intel Macs? They said that a few months ago...

Also, lest we all confuse the issue, Microsoft does make a separate Virtual PC which runs UNDER Windows (http://www.microsoft.com/windows/virtualpc/default.mspx) and lets you run multiple x86 based OSs, like VMWare.
 
daveschroeder said:
Except that the virtualization support for QEMU doesn't support Mac OS X or Intel-based Macs, I'd agree with you. ;-)

I/QUOTE]

I don't know which you mean: Yes can't run Intel OS X as a guest OS on an Intel Mac. But that is pointless for most people. But you can run Windows as a guest on an Intel Mac host. Thisis what most users want.

QEMU runs on Linux (X86 and PPC) , Free BSD, Mac OS X (Intel only) and Windows.

Once you have QEMU on your system you can run Windows, Linux, Solaris, BSD, DOS and any of a few other OSes on it.

THere are not reports (yet) of Mac OS X/Intel running as a guest on QEMU but I've heard of Mac OS X PPC runnig on an Intel system using QEMU.

Virtualization makes the Intel Mac atractive to me but having used QEMU and VMWare under Linux I know that I will want a very powerfull Intel Mac. A Core Dual with 2GB will not quite cut it if I want to run Solaris 10 on my Mac (and yes, being a Solaris develoer I do) I'll have to wait for he Intel Power Mac 64 bit quad core thing that comes out around December or Q1 '07.
 
cmoney said:
Is this new news after they said they would come out with Virtual PC for the Intel Macs? They said that a few months ago...

Yes, and on January 18, they issued a statement that said they have "not made any announcements about if/how the product might work on the new machines" and only that it is committed to providing Virtual PC only to "new and existing PowerPC customers".

I'm sorry, but that is the biggest line of BS I have heard in years. Microsoft:

- knows Windows and Windows virtualization intimately

- owns all of the resources of Connectix's previous Virtual PC products for Mac and Windows, including x86 enterprise virtualization products on Windows

- would be in a position to *easily* bring a virtual machine solution that ran Windows at near-full-speed of the underlying hardware to the Intel-based Mac platform, since it is much easier than emulation

Also, lest we all confuse the issue, Microsoft does make a separate Virtual PC which runs UNDER Windows (http://www.microsoft.com/windows/virtualpc/default.mspx) and lets you run multiple x86 based OSs, like VMWare.

Yes, I'm aware of that. Their Virtual PC for Windows and Virtual Server products are also the result of the assets they acquired from Connectix. The hacked version of Mac OS X (Intel) only runs under VMware, and it required modification that is against the EULA to do so. Also, running any instance of Mac OS X on non-Apple hardware is also against the EULA. Regardless of what you do or don't think about EULAs, it's still the case.

Sure, hobbyists will run hacked versions of Mac OS X on PCs in various fashions, and maybe even under VMware in unsupported Windows environments on Macs.

Real enterprise customers will want a commercially supported viable end-to-end solution that doesn't violated license agreements or require modifying the OS and running it in an unsupported state.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu

ChrisA said:
daveschroeder said:
Except that the virtualization support for QEMU doesn't support Mac OS X or Intel-based Macs, I'd agree with you. ;-)

I don't know which you mean: Yes can't run Intel OS X as a guest OS on an Intel Mac. But that is pointless for most people. But you can run Windows as a guest on an Intel Mac host. Thisis what most users want.

You totally misunderstood what I said. I didn't mean that QEMU didn't support running Mac OS X as a guest OS.

I meant the *virtualization piece* does not either run on Mac OS X nor Intel-based Macs, and I thought that would have been obvious from the context.

You do know that QEMU doesn't just automatically support hardware virtualization on any platform, right? Someone is going to have to sit down and code kernel modules for Mac OS X (Intel) specifically to support virtualization in QEMU/Q running *on* Mac OS X as the host OS.

QEMU runs on Linux (X86 and PPC) , Free BSD, Mac OS X (Intel only) and Windows.

Once you have QEMU on your system you can run Windows, Linux, Solaris, BSD, DOS and any of a few other OSes on it.

Yes, and quite slowly, since, as I said, there is no virtualization in QEMU (or Q) on Mac OS X. Just very, very slow emulation.

---
Regards,

Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu
 
C00rDiNaT0r said:
I wonder why there wasn't a contest to do this so we would've gotten this solution for free, like how we got dual-booting MacOSX and WinXP lol

Q already allows you to install XP on OSX. Its just like a Universal VPC but its free! My dad uses it on his MacBook Pro and I think its great - it is however a tad slow...not nearly as slow as VPC on a PPC Mac tho.

Go to the bottom of the download page and click on "Later Unstable Build" This is the Universal Binary, and not all that unstable. Windows 2000 runs great. The speed on an Intel Mac will surprise you! To get XP to run, it currently must be installed on a Windows Machine or a PowerPC Mac (using Q), then you copy the image to your Intel Mac. Everything else I installed right on my Intel iMac.

http://www.kberg.ch/q/

Lets have some feedback please - Joe.
 
alexstein said:
The more I read about this VM Software the more excited I get. It sounds like the perfect solution so far.
I'd hold off on the superlatives until someone ships a solution that works well. So far we have:

1. boot xp in a dual boot sequence
2. buggy porting of qemu to intel-os x

Then there are about half a dozen other solutions that are in being promised to be the 'perfect solution' but nothing solid yet.
 
Joe2000 said:
Q already allows you to install XP on OSX. Its just like a Universal VPC but its free! My dad uses it on his MacBook Pro and I think its great - it is however a tad slow...not nearly as slow as VPC on a PPC Mac tho.

Go to the bottom of the download page and click on "Later Unstable Build" This is the Universal Binary, and not all that unstable. Windows 2000 runs great. The speed on an Intel Mac will surprise you! To get XP to run, it currently must be installed on a Windows Machine or a PowerPC Mac (using Q), then you copy the image to your Intel Mac. Everything else I installed right on my Intel iMac.

http://www.kberg.ch/q/

Lets have some feedback please - Joe.

Yes, QEMU/Q is great (ignoring the fact that you can't even successfully install XP on it right now since the installer dies in some circumstances). But it's much, much slower than Parallels or any other virtual machine/virtualization product will be.

*Much* slower. For older OSes, like 98 and even 2000, it's marginally acceptable for occasional use, just like Virtual PC or any other emulation product was.

Mac users aren't used to the concept of a "virtual machine". Parallels isn't going to be like an "emulator" or a Virtual PC-like product in any way but appearance. It's taking directly to the processor, using VT/Vanderpool hardware virtualization, and not emulating the CPU functions. The speed difference is enormous.

Once a virtualization product like Parallels ships, people can certainly make their own choices. But it's like night and day. Once the virtualization extensions are coded for Mac OS X (Intel) in QEMU/Q, then Q will be a nice virtualization product, too, especially given that it's free. But there is no telling when that will happen, and it very likely won't support VT, which is one of the huge gains that the new Intel processors with VT support gives to virtualization and CPU partitioning.

Q is *not* that right now. It's an emulator only, and quite slow at that for any modern OS. This, of course, is very subjective, but let's just suffice it to say that it's quite slow. Once it gets virtualization, assuming it's reliable, it will be a worthy free, open source choice for individuals to consider. Right now, it's certainly nice and relatively easy to use, but it's all emulation and not even in the ballbark with forthcoming VM solutions.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu

dongmin said:
I'd hold off on the superlatives until someone ships a solution that works well. So far we have:

1. boot xp in a dual boot sequence
2. buggy porting of qemu to intel-os x

Then there are about half a dozen other solutions that are in being promised to be the 'perfect solution' but nothing solid yet.

If Parallels were to work half as well as it already does in its Windows and Linux iterations, this will be that product.

Virtualization has been done by several vendors on various platforms for quite some time now. The fact that one will be appearing soon on Mac OS X (Intel) should be no surprise. Since I am familiar with Parallels' products in general and technical philosophy of the Parallels Workstation product, we'll have just that solution very soon.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu
 
It does emulate a hardware PC - it doesn't have to emulate most of the ISA, however

cmoney said:
since it's not actually emulating the hardware, could it possibly work?
Actually, VMware, Virtual PC (Mac and PC), Virtual Server, Parallels and the others *do* emulate a hardware PC.

It's emulated because when the GOS probes the emulated virtual PC, it does not see the real hardware
  • there's a different amount of memory
  • the network card is different from the real card
  • the disk controller may be different
  • the graphics adapter doesn't match the real one
  • etc etc etc

With the exception of Virtual PC(Mac), none of these have to emulate the full ISA (Instruction Set Architecture). This makes emulating a virtual x86 system on an x86 system much faster.

Note that some x86 privileged instructions *must* be emulated on all virtual machine environments - a GOS cannot be allowed to execute a privileged instruction that will change the state of the host system. (This doesn't change much under VT - VT just makes it easier and faster to emulate those instructions.)

"Emulation" and "Virtualization" are basically synonyms - "virtualization" refers to a specific use of emulation for a particular purpose.

"Virtual PC (Mac)" and "Virtual PC (Windows)" are both emulators - but only the PPC version has to do the additional work of complete x86 ISA emulation.
 
I'm still unclear about the effect of the hypervisor on the host OS, since theoretically (?) it inserts a thin layer of software between the host OS and the hardware.

I tend to assume that the fact that there even *is* a distinction between host OS and guest OS (as opposed to something like VMWare ESX) means that the host OS gets "real" access to the hardware, so it will run essentially unencumbered.

Can anyone clarify this issue, if the question makes any sense?

Though I have a G5 iMac that I won't be parting with any time soon, I would be totally psyched to see what a product like Parallels Workstation for Intel OSX would do for the Mac community. Even if it has limitations (and it does), it'll still be the answer for the "I just need to access one or two Windows programs" crowd, both current Mac users and potential switchers. I've been using the VMWare player on my work PC to run Linux as a guest OS, and it really is a nice, smooth-running setup; if the same thing could be accomplished with OSX as the host, wow...
 
*caution*

daveschroeder said:
...*easily* bring a virtual machine solution that ran Windows at near-full-speed of the underlying hardware...
None of the current Windows virtual machines can run at "near-full-speed" except for some fairly uninteresting applications.

The problem is that privileged tasks like I/O must be passed off to the underlying host OS, which introduces a context switch and a need for the host OS to emulate the task requested by the guest OS.

So, real applications on VMware or Virtual Server can be much slower than "near-full-speed", depending on the number of nature of system calls and context switches to the VMM that are generated. Some applications benchmark at as little as 25% native speed (e.g. a network server that also does lots of disk I/O). A game that uses DirectX might be much slower than that.

In general, the speed is much, much better than an ISA-emulating virtual machine like Virtual PC (Mac). But be cautious about thinking that x86 emulated machines on x86 run at full speed - for many applications 70% to 90% of full speed is more realistic.
 
AidenShaw said:
None of the current Windows virtual machines can run at "near-full-speed" except for some fairly uninteresting applications.

Which is why in previous posts, I used the "except for video and heavy I/O, such as disk" qualifiers.

And those "uninteresting applications" are quite often the very administrative or vertical market speciality applications that enterprise and institutional customers want to run with good performance. They're light on I/O, and don't need 3D graphics.

In general, the speed is much, much better than an ISA-emulating virtual machine like Virtual PC (Mac). But be cautious about thinking that x86 emulated machines on x86 run at full speed - for many applications 70% to 90% of full speed is more realistic.

Sure, that's fair. And when you're coming from full software emulation products, that's huge.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu

AidenShaw said:
"Emulation" and "Virtualization" are basically synonyms - "virtualization" refers to a specific use of emulation for a particular purpose.

If we want to be pedantic about the definition of "emulation", then yes.

But in practical terms, there is always a distinction made between a "virtual machine"/"virtualization" and emulation. And there are, of course, varying degrees to all of them, and shades of gray in between.

But, in general, something that is not emulating an ISA in software is going to be much, much faster than any full software emulator.

And for a product like Parallels (or VMware's server lines) making direct VT calls and putting the processor in its partitioning state, the difference is even more dramatic.

Parallels is the first product of its class for the desktop marketplace: a desktop virtualization product will full support for Intel VT. This isn't a small deal.

"Virtual PC (Mac)" and "Virtual PC (Windows)" are both emulators - but only the PPC version has to do the additional work of complete x86 ISA emulation.

Yes, and that's a *huge* distinction, and quite often when applied is the difference between a product being quite pleasant for day-to-day use, or annoyingly slow for even marginal or infrequent use.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu

neilw said:
I'm still unclear about the effect of the hypervisor on the host OS, since theoretically (?) it inserts a thin layer of software between the host OS and the hardware.

It simply does this as a kernel module. You can think of it as essentially running as a peer to the host OS (and yes, this is wildly oversimplifying things). The userland interface and functionality is present as an application on the host OS.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu
 
ccrandall77 said:
Nice apples to oranges comparison. I never said that all Russian programmers were bad, but the fact remains that enough malware as come from there that it gives me reason to pause.

I suppose you automatically assume that anyone from Nigeria who'd bid on your eBay auction is on the up and up, eh?

I share your fear! It's a BIG BAD world out there!

Beware of young Irish men with a thick accent- they'll probably offer to tarmac your drive or do cheap building work- not to be trusted!

Why is that just a funny walk or are you goose-stepping!? Beware old German men- Don't give them the benefit of the doubt- probably a former SS officer at Auschwitz.

That frail old Japanese man- don't be fooled by his Mr. Miyagi impression- probably an EVIL concentration camp guard in his youth!

I could go on- but please just because the company is using Russian programmers doesn't automatically signal some kind of new Cold War with a sneaky plan to topple the USA
 
daveschroeder said:
Which is why in previous posts, I used the...
We don't disagree.

There have been many statements about "full-speed" in this and other "VM on OSx86" threads - my comment was meant for all of them, not for your qualified statement in particular.

There currently is a real, and sometimes very substantial, cost for the current state of virtualization. Those of us with experience with the different visualization products should be careful to bring this up.
 
neilw said:
I tend to assume that the fact that there even *is* a distinction between host OS and guest OS (as opposed to something like VMWare ESX) means that the host OS gets "real" access to the hardware, so it will run essentially unencumbered.

Can anyone clarify this issue, if the question makes any sense?

When you have a processor that is capable of virtualisation, you have _one_ operating system that runs on the real processor, and that operating system can provide virtual processor for other operating systems ("guest" operating systems) to run on.

The question is: How big is the operating system running on the real processor? You have two principal choices: First, you can design a really, really tiny operating system that cannot do anything useful itself except providing virtual processors for guest operating systems. With that approach, you might have MacOS X, Linux and Windows XP as guest operating systems (just an example).

The other approach is that the operating system running on the real processor is a fully grown operating system. There is this rumor that MacOS X 10.5 would include virtualisation. In that case, MacOS X (or more precise: One copy of MacOS X) would run on the real hardware, and a tiny part of MacOS X would be the virtualisation software, which allows guest operating systems to run simultaneously. So you could have MacOS X running on the real hardware, with Linux, and Windows XP, and possibly a second copy of MacOS X has the guest operating systems.

Having a full grown operating system running on the real hardware has advantages. For example, take the "Apple System Profiler" application. When you run it, you want it to tell you the truth! Let's say you have an iMac with 2GB RAM, and 250GB harddisk. A guest operating system might believe that it has only 1GB RAM and a 40GB harddisk. Apple System Profiler run on a guest operating system (or an equivalent Windows XP program) would not be able to tell you what hardware you _really_ have.

Other advantages: If you run MacOS X on the real hardware, and Windows XP as a guest operating system, it would be possible to write anti-spyware software running on MacOS X which cleans up your Windows XP system. Would be really helpful for some people.
 
If trying to be precise is pedantic, then I'm guilty. 🙂

daveschroeder said:
...something that is not emulating an ISA in software is going to be much, much faster than any full software emulator...

...or annoyingly slow for even marginal or infrequent use...
The definition for neither includes "slow" or "fast" - indeed some emulators are very fast. (The 68K emulator for Mac OS PPC and the PDP-11 emulator for VAX/VMS were both faster than the hardware being emulated in software in many cases.)

Compare "Virtual PC (Mac)" and "Virtual PC (Windows)".

They do almost exactly the same thing, except for one minor difference.

How can you call one an "emulator" and the other a "virtualizor"? Both are both.
 
Devil's Advocate

WIll be interesting to see what virtualization will be like in Windows XP running on an iMac...think Mac OS X running in virtualization in Windows XP on an iMac. 😎 😱 🙁
 
godrifle said:
WIll be interesting to see what virtualization will be like in Windows XP running on an iMac...think Mac OS X running in virtualization in Windows XP on an iMac. 😎 😱 🙁
You need a couple of things to boot OSX in a VM (on any host platform).
  1. The emulated computer must support EFI - currently only BIOS is supported by the emulated hardware
  2. The emulated hardware needs to emulate a TPM subsystem
  3. Some way of fooling the OSX hardware bonding must be found
 
AidenShaw said:
If trying to be precise is pedantic, then I'm guilty. 🙂


The definition for neither includes "slow" or "fast" - indeed some emulators are very fast. (The 68K emulator for Mac OS PPC and the PDP-11 emulator for VAX/VMS were both faster than the hardware being emulated in software in many cases.)

Compare "Virtual PC (Mac)" and "Virtual PC (Windows)".

They do almost exactly the same thing, except for one minor difference.

How can you call one an "emulator" and the other a "virtualizor"? Both are both.

Precision can sometimes become pedantic if context is ignored. ;-)

I think I'm trying to keep things simple by discussing x86 OS (primarily Windows) emulation products on the Mac platform.

There's a bit of emulation, hardware abstraction, and virtualization in many of the above products. But generally, things like Virtual PC (Mac) are referred to, marketed as, and thought of as "emulators". Generally, things like Virtual PC (Windows) and VMware are referred to, marketed as, and thought of as "virtual machines" or "virtualization" products, with the key element playing into the overall speed and performance being whether or not the CPU ISA is emulated in software, or whether calls can be more or less directly passed to and returned from the native hardware CPU (and in the case of VT, even more effectively and efficiently).

I don't think we're in disagreement on anything you've said, but I'm guilty of trying to keep things simple from an explanations standpoint for people who are saying that the current Q/QEMU solution on Mac OS X with no CPU "virtualization" and something like Parallels are even in the same class of products from a performance perspective.

I'll definitely agree that some software emulators became so efficient and ran on hardware that was so fast that they eclipsed the native speed of the real hardware. Heck, even 68000 emulation with Mac OS on PowerPC was faster than many true 68K machines.

However, I think we can say that software emulation of the x86 ISA on Mac OS/Mac OS X on PowerPC has NEVER been faster than any reasonably modern (or even reasonably old) x86 hardware. Now, a virtualization solution like Parallels is going to run x86 OSes almost as fast as the native hardware, and indeed, faster than all but the most recent and modern "real" Intel Core family and consumer-level PCs (save things like 3D graphics and I/O). That's the context I'm presenting this in.

And let's say we get "85%" the performance of the native hardware for Windows XP on a 2.16GHz Core Duo. It's still darned fast, and faster than a lot of PC hardware people are running Windows XP on comfortably today. And that's the point.

The bottom line is that products like Parallels will, for the first time, make modern x86 OSes usable alongside Mac OS X on Apple hardware, to the point where if used full screen, many people may even forget they're running any kind of "emulation" or "virtualization" product at all.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu

AidenShaw said:
You need a couple of things to boot OSX in a VM (on any host platform).
  1. The emulated computer must support EFI - currently only BIOS is supported by the emulated hardware
  2. The emulated hardware needs to emulate a TPM subsystem
  3. Some way of fooling the OSX hardware bonding must be found

Or, you horribly hack Mac OS X, like the current Mac OS X cracking project has done.

---
Dave Schroeder
University of Wisconsin - Madison
das@doit.wisc.edu
http://das.doit.wisc.edu
 
AidenShaw said:
Actually, VMware, Virtual PC (Mac and PC), Virtual Server, Parallels and the others *do* emulate a hardware PC.

It's emulated because when the GOS probes the emulated virtual PC, it does not see the real hardware
  • there's a different amount of memory
  • the network card is different from the real card
  • the disk controller may be different
  • the graphics adapter doesn't match the real one
  • etc etc etc

With the exception of Virtual PC(Mac), none of these have to emulate the full ISA (Instruction Set Architecture). This makes emulating a virtual x86 system on an x86 system much faster.

Note that some x86 privileged instructions *must* be emulated on all virtual machine environments - a GOS cannot be allowed to execute a privileged instruction that will change the state of the host system. (This doesn't change much under VT - VT just makes it easier and faster to emulate those instructions.)

"Emulation" and "Virtualization" are basically synonyms - "virtualization" refers to a specific use of emulation for a particular purpose.

"Virtual PC (Mac)" and "Virtual PC (Windows)" are both emulators - but only the PPC version has to do the additional work of complete x86 ISA emulation.

Why am I sooooo sceptical of your PROCLOMATIONs 😕

THIS IS WHAT STARTED IT ALL:
http://www.toptechnews.com/story.xhtml?story_id=34175 😱

"Get Me Browsing

"The first partition you might have is a TV partition that would come on, pretty much as soon as you turned the PC on," said Gartner analyst Martin Reynolds. "There wouldn't be very much code -- it would load very quickly." Boom. You are watching TV on your PC without having to run it through Windows.

"Now, if you wanted a really fast get-me-browsing Web browser, you'd have a partition for that, too," Reynolds added, referring to the hypervisor's capability of easily divvying up partitions. "You'd just load what you need and go."

Reynolds says the revolution promised by Xen's hypervisor software could be realized within five years. The era of a single operating system for each desktop might join the ranks of other computer nostalgia like DOS, monochromatic CRT displays or floppy discs.

"It's a three year transition," Reynolds acknowledged. "By 2010 everyone will expect hypervisor in their system.""

This is the article I put in Apple's suggestion box just after it was printed and before there was any talk of virtualization on Mac OS X.



AND HERE IS THE KICKER ...

http://www.cl.cam.ac.uk/Research/SRG/netos/xen/performance.html
"The Xen virtual machine monitor

By requiring operating systems to be ported to run over Xen, machine virtualization can be achieved considerably more efficiently than schemes that rely on trapping faulting instructions or use an interpreter or JIT compiler emulating privileged operating system code. Of course, the downside is you have to do the OS port, but our experience indicates that this usually isn't too time consuming or difficult.
Operating systems running over Xen execute in x86 privilege ring 1 instead of ring 0, which we reserve for Xen. This prevents guest OSes from using the normal privileged instructions to turn on/off interrupts, change page table bases etc. Instead, they must make a 'hypercall' down into Xen to ask the operation to be performed on their behalf. This sounds expensive, but with a properly designed asynchronous interface the hypercalls are relatively infrequent.

Rather than attempting to emulate some existing hardware device, Xen exports specially designed block device and network interface abstractions to guest operating systems, requiring a specially written driver. The advantage of this approach is that guest I/O performance is excellent: we typically get the same performance on Gigabit Ethernet links running over Xen as we do with the native operating system.

As part of evaluation for our SOSP paper, we subjected Linux 2.4.22 to a number of system intensive workloads, then repeated the experiments with the same version of Linux running over Xen, and a number of other virtualization techniques: VMware workstation 3.2 (the latest version of any VMware product which allows the publication of comparative benchmarks), and User Mode Linux (UML) with the skas host patch. The results below show the performance overhead under a number of different scenarios:

The SPEC CPU2000 Integer suite
A full build of the default configuration of Linux 2.4.22 on local disk
PostgreSQL running the OSDB multiuser Information Retrieval (IR) benchmark
PostgreSQL running the OSDB multiuser On-Line Transaction Processing (OLTP) benchmark
The dbench 2.0 file system single user benchmark
Apache 1.3.27 being exercised by the SPECWeb99 benchmark, using `mod_specweb99' for dynamic content generation

Relative performance on native Linux (L), Xen/Linux (X),
VMware Workstation 3.2 (V), and User Mode Linux (U).

The SPEC INT2000 suite is CPU intensive, but does very little I/O and causes little work to be done by the OS, hence all three virtualization techniques do pretty well.

In contrast, the other benchmarks are more OS intensive, and cause many more page faults, context switches and process creations. Running over Xen, Linux's performance is consistently close to native Linux, the worst case being OSDB-IR, which experiences an 8% slowdown. The other virtualization techniques don't fare so well, experiencing slow downs of up to 88%. The SOSP paper contains further results, showing how performance isolation can be achieved when running multiple VMs simultaneously, and performance scalability out to 128 concurrent VMs.

Our results have also been independently verified by a group at Clarkson University in a paper entitled Xen and the Art of Repeated Research [PDF], which also includes a performance comparison with an IBM zServer machine." 😱 😱 😱
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.