One of the popular comparisons of Virtual Machine technologies is Virtual PC vs. Virtual Server (the other being Virtual Server vs. VMWare GSX/ESX). I decided to tackle the Virtual PC vs. Virtual Server comparison with a little brain dump.
This is purely my perspective as someone who extensively uses both Virtual PC and Virtual Server, and I do not work on the product team that produces either product.
I am new to this subject. Have started using Virtual PC a month back. I found it really amazing. I also tried Virtual Server, but it was a bit complicated to setup and use. Virtual PC is a breeze to setup and use. Why Virtual Server is needed, if Virtual PC is a so cool product?
When I think of different products using similar technology, there is usually some form of market segmentation based on user demographics.
For example, Toyota brands its vehicles under both an economy Toyota brand and the luxury Lexus brand. Same basic car - has four wheels, engine, steering column, enclosed climate-controlled passenger cabin, etc. But there are enough differences in each brand that satisfies the target user audience. Toyota is general more economically priced and may not have the latest in fancy gadgets, while Lexus targets the more leisure conscious and "latest and greatest" folks.
You can imagine the same sort of distinction between Virtual PC and Virtual Server given the same "Virtual Machine" technology. While I am glad that you think Virtual PC is cool and easy to setup and use (it obviously fits your demographic and needs), I can tell you that Virtual PC is completely useless for my business needs. For me, Virtual Server ends up being the best way to use Virtual Machine technology to do what I want. But, this should not affect either of our perceptions - we are just users with different needs satisfied by different segmentation of the same sort of "Virtualization" product.
For example, Virtual Server allows me to create and configure an entire Virtual Machine with a variety of options with one command line script and automate scripting these actions against an entire farm of Virtual Servers. Virtual PC cannot even come close to doing this. Meanwhile, Virtual PC has a really rich GUI and strong VM Additions support that improve interactive usability; something that Virtual Server cannot match.
This is how I tend to internalize and compare Virtual PC and Virtual Server.
- Rich GUI client for local interactive use.
- Low security/High interactivity (Shared Folders, Drag/Drop, Cut/Paste).
- No Automation/Scripting Interface.
- Client-oriented features (Sound Card in VM).
- All Guests use one CPU on the host.
- As of Virtual PC 2004, x86 only
- Thin web-based admin and VMRC client for remote/headless administrative use.
- High security/Low interactivity (nothing "shared" between Guests and Host).
- Full Automation/Scripting Interface with COM.
- Server-oriented features (Virtual SCSI emulation, per VM CPU throttling, VS Security model for delegation. But no Sound Card).
- Guests use all CPUs on the host, but each Guest still sees and uses only one CPU.
- As of Virtual Server 2005 R2, x86 and x64 supported
Virtual PC clearly targets the average interactive user with rich functionality and features. However, it trades off security for some functionality, cannot be scripted/automated, does not run as a service so requires a user login, and cannot utilize all CPUs on the host. On the other hand, these are all factors that Virtual Server perform well, but it also gives up on the rich, interactive user experience for a more headless, lightweight, remoteable, but limited interactive viewer.
Hopefully, this helps clarify why the two products exist, some of the users/market that each targets, and why one may like one, the other, or both, depending on needs.