February 8, 2005
I'm working with Microsoft's Virtual PC 2004 again. Since the last time I discussed VPC, Microsoft released the essential Virtual PC 2004 Service Pack 1, which addresses a lot of outstanding issues, particularly compatibility with SP2 and newer AMD/Intel processors.
If you start delving into VPC, I highly recommend reading through the excellent Virtual PC FAQ. The biggest bugaboo is, of course, performance. This is the price we pay for the flexibility of virtualized hardware. Although performance is decent once you get the OS up and running, the OS installs themselves can be downright brutal. Plan for at least two hours for any OS install, and possibly many more.
Even if you have fire-breathing PC hardware-- and any self-respecting developer should, because time is money, and PCs are cheap these days-- you'll be disappointed with Virtual PC performance. It's adequate, nothing more. Scott Hanselman has some great Virtual PC performance tips direct from Microsoft. Some interesting comments on performance targets:
Ideally Virtual PC performance is at:
- CPU: 96-97% of host
- Network: 70-90% of host
- Disk: 40-70% of host
Evidently, emulated disk performance is terrible. I use dynamically expanding disk images for flexibility, but it might be worth experimenting with fixed-size disk images, dedicating a seperate drive to VPC, or even the oddball physical drive mapping mode (see the VirtualPC FAQ) to get around that bottleneck. This also means you never, ever want to starve your VMs for memory. If these guys start paging to disk, you'll be in a world of hurt. Oddly, video performance is not mentioned there. The emulated video hardware is also substantially slower than a native device, but is typically less of a bottleneck in real world usage (well, until Longhorn, but let's not go there right now). These percentages jibe with the Virtual PC benchmarks I found. The CPU, memory, and network performance is respectable-- the biggest performance problems in Virtual PC are caused by the slow emulated disk and video subsystems.
When installing operating systems, it's important to know exactly which devices Virtual PC emulates:
- S3 Trio Video Card
- Intel / DEC 21140 Network Card
- Soundblaster 16 ISA PnP Sound Card
- Intel 440BX Motherboard Chipset
Host CPU is equal to your physical CPU, obviously. This isn't that kind of emulation. Why did they choose to emulate these particular devices? Compatibility.
Also, VirtualPC is slow enough as-is without torturing yourself with physical floppies or CDs. Always use disk image files! You'll want WinImage for making floppy images, and something like LC ISO Creator for creating CD/DVD ISO images.
Posted by Jeff Atwood
You should give a try to VMWare. They are longer on the market (IIRC) and their workstation product is visibly faster, not to mention that it works on Linux too (I have never used it on Linux though).
I agree with Drazen Dotlic. VMWare IS better. I can't see any advantage in VirtualPC. Also, I think there are more up to date articles as the one you mentioned here (http://www.osnews.com/story.php?news_id=1054), since this one is talking about VMWare Workstation 3.0 where 5.0 beta (http://www.vmware.com/products/desktop/ws5_beta.html) is already available! I haven't tried 5.0 yet, but 4.0 is already much better. There is also the "VMware Virtual Machine Importer" available that lets you convert your VirtualPC to VMWare.
Yes, but VMWare costs real money. VirtualPC is "free" with MSDN Universal.
Therefore VirtualPC VMWare, at least for the purposes of this particular organization. Did I mention there were layoffs yesterday?
VMWare products cannot be installed on a domain controller. Is this true or am I missing something?
It is unfortunate that I need a whole another computer just to run VMWare occasionally.
MS Virtual PC is a typical, early version Microsoft product - not worth much. I am installing Suse Personal Edition 9.0 and it will take over 2 hours. VMWare installs Suse in about 35 minutes. I have not tried MSVPC with an ISO image, but that is the next path I'll take. Stick with VMWare until Microsoft markets a good version of this product. Even then, VMWare will likely be a better choice for all of us.
Related on Great same-pc VPC networking tips
This is for Windows only. What about VPC'2 on Linux?
i just tested 'parallels workstation' and it is way faster then either VPC or VMware, allthow with slightly less features :/
Virtual PC 2007 is shaping up to be a much more mature product. I'd recommend participating in the beta tests to help shape this application into the solution you desire.
I'm crying, sobbing in fact.
I thought I had found the solution to being able to play Tie Fighter and Freespace2 again using VirtualPC to run a Windows98 VM.
The installation was incredibly fast for me, half of what speed it normally takes Win98 to install natively.
But I didn't know about video emulation not being even Direct3D accelerated.
So close, and yet so far...
When using VPC04 SP1 and installing Linux, it's a known problem that the keystrokes for the pipe-symbol and redirection ( and ) don't work, but there is a hotfix from Microsoft:
(it costs me hours trying loadkeys and kernel-recompiles in the vpc-Linux - and i blamed the distributors, but after installing the hotfix all went fine)
I have used MS VPC for about half year now.
Today I regret haven chosen yet another MS product because for some reason, today, my carefully constructed VPC has ceased functioning. It won't boot anymore. It just brings up a black screen, that is all it will do now.
Any which way this means that MS has managed to steal a lot of time by releasing a product that is just not good: I have to create a new OS using VMWare or stick with VPS and try desp. to salvage my data.
Needless to say I have also lost a lot of valuable data.
MS rules again.
used to own an s3 trio card and s3 virge many years ago
if game does not run set it to software mode in config under graphic options
all work in vm2007 under win95
How about VirtualBox? It not only supports more OS choices (like VMWare), but it's free just like VPC... Only real limitations I know of right now are no 64-bit guest OS support and there's issues with OpenBSD, FreeBSD, and NetBSD hosts.
I currently have it installed on Vista x64 SP1 and run Fedora, FreeDOS, OpenSolaris, openSuSE, ReactOS, and Solaris under it.
ONNO: I know it's almost a year later but I saved a few VPCs by mounting the .vhd as a secondary hard drive on another VPC.
Just had to post after seeing this thread... I have been using VMWare since 3.0 and have never had a problem!! I have 4.5 installed on a dual processor P3 with 2 gigs of ram running a full domain (Server 2k3 ent - dc1, server 2k3 stand - dc2) replicating ad with 2 host machines incuding 2 external laptops connected thru a lan'ed access point. DC2 has radius on it for authentication. From what i have seen from the Microsoft VM, this is not possible at all. Besides the drive management and video processin being better on VMWare (and only gettin better with current releases), look at the memory management and customizable nic settings for vlans, nat, bridged, etc.. VMWare workstation cannot be installed, but i believe the GSX version can be, not recommended though. Put it on a standalone attached to the domain and promote a vm to a dc. VMWare is just a much better vpc platform. (why should VirtualPC be any different than any other product microsoft bought out and slapped their name on?)
Jeff, in reference to your comment about vmware costing money...how much is your Technet subscription?? (vmware is only 190 bucks...)
If VMWare is so fantastic how come it fails to run on 3 of my 4 machines?
I keep trying but all I get when opening https://connect.microsoft.com/ is a dns error. :-( will have to find another connection to play on.
The hardest part I have found has been installing XP. despite forking out for two full copies of xp at about 150 each (one of which I can no longer use because the laptop has died) i found out that they were only oem versions which means I have had to resort to google. licensing is definately an issue with vm.