So tell us about Virtual Server.
Virtual PC is designed for interactive applications like doing help desk, beta testing, interactive use. For example, it supports Drag-and-Drop from the Desktop as a good reason to use it. And it runs as an interactive process under the logged-in user's account. Virtual Server is designed for running old applications that don't run on modern Windows operating systems, like Windows 2003. It's designed for consolidation of servers where you have low utilization and you want to consolidate hardware. It's also good for doing test scenarios. Now, Virtual Server is a server product that's run as a Windows' daemon (service) In addition, compared to Virtual PC, which can only utilize is only used in a single processor and it's basically single-threaded, for all intents and purposes. Virtual Server supports multiple processors. Now, understand, when I say "multiple processors," your guest operating system always today sees a uni-processor box. It only sees a single processor. However, Virtual Server will take advantage of multiple processors and, with the Enterprise Edition, up to 32 processors; so, very scalable. Now, both versions only allow the virtual machine guest to see up to about 3.6 gigabytes of RAM, regardless of the host availability of RAM.
Richard Campbell: "Only."
Brian Randell: Yeah, well, "only." Well, I try to have the max 2 gig, and my Desktop has 4 gigs and my server does, too, and I am ready for more. You know, give me more.
Geoff Maciolek: Hey, I'd actually like to cut in here. And I don't usually ask anything during these shows, but that thing where you were just mentioning the guest operating system having a single CPU, whereas your actual hardware that you are running it on, you could do on, like, a 32-processor system or whatever that seems like a really odd scenario. Do you end up with a situation where you could actually run code faster in the Virtual Server, like a single-threaded application, faster than it would run on, like, a single-CPU system? What I am trying to understand is, what's the advantage of running 4 or 16 or whatever processors on your actual server if you are only seeing a single processor in Virtual Server?
Brian Randell: Well, that's a great question. So understand this: At the end of the day, you have the host operating system, and then you have this program that is controlling the virtual machine, the controller. Think of it like the bios, the hardware of the real machine, okay? It has to transfer requests from the virtual machine guest operating system down to the real host operating system, which then tabulates to the real hardware. So it's kind of like SMP scheduling, how you don't instantly get double performance if you add an extra processor. By having multiple processors, more virtual machines have more CPU time, whereas if you want three VMs under Virtual PC, they have to share that same single, main thread of Virtual PC; so there are contingents, right? Usually, what happens is, people set their foreground VPC to have the most processing time. So it's very much like, I think, Win16 almost, right? We're in this very, you know, shared environment. With Virtual Server multiple processors, each virtual machine is acting more like a real independent machine, as opposed to a bunch of shared machines running together on the same resource.
Geoff Maciolek: So a big advantage would be where you are running Virtual Server and you have a Windows 95 box, a Windows NT 4.0 box or whatever running as guest operating systems. You have multiple guest operating systems running concurrently.
Brian Randell: Absolutely. That's exactly what it's for. For example, when I do my Team System talk, I have a domain controller, a data-tier box, an app-tier box, and a build-tier box. All are Virtual Server. And, again, I only have one processor; but Virtual Server multitasks better than Virtual PC does for that situation, especially since they are not interactive. They are all just sitting there running as servers. Now, granted, on my quad box, it's even a much happier experience, because basically each virtual machine, when I only run four, gets its own dedicated processor, for all intents and purposes.
Richard Campbell: You know, the one thing I've always wished I could do with VPC is take an existing machine that's directly installed on a drive and copy it into a VPC.
Carl Franklin: Yeah, that would be great. What a great idea.
Richard Campbell: You know what I mean? Like I want to practice the upgrade of an exchange server; so take the existing exchange server as it is, throw it in VPC, and run the...
Brian Randell: You can do that! You can totally do that!
Carl Franklin: How?
Brian Randell: Okay. It depends on how you want to before you go any further, I want to put out one little disclaimer here about when we talk about stuff.
What you can do with this software and what is supported by Microsoft are two different things. So for those of you that are in a corporate environment and might be thinking, "This is great stuff. I am going to get my IT shop to use this," I thought I would put a couple things in context.
Virtual PC is designed for client operating systems; Virtual Server is designed for server operating systems, as far as production support. From a testing and development standpoint, Microsoft pretty much will support any Windows version in the contrasting operating systems.
Microsoft, when they bought Virtual PC from Kinetics and the virtual-server technology, decided that obviously they want to push Windows; so they had dropped support for everything but OS2 as a non-Windows operating system. However, at "In MS" a couple of weeks ago, they announced that they are going to be using third parties to support Linux and other x86-based operating systems. So the list of operating systems that are supported is much smaller compared to what will run on Virtual PC and Virtual Server.
So I want to get that out of the way as far as technology. The one operating system, by the way, that I know runs like complete crap and just don't do it is Novell NetWare. The way Novell NetWare operates just is not compatible with the way Virtual PC and Virtual Server works, so just don't even think about it.
Richard Campbell: Interesting. I have run Fedora Core2 version of Linux just fine under VPC.
Brian Randell: That's just it. They will run fine. Now, there is one other thing we should talk about these operating systems.