Eric Cowperthwaite has setup five different VM's on his Windows laptop (Fedora Core, SlackWare, Debian, DSL and Puppy) using VMware Player. Read about his experiences.
I've used Linux for a while now, since about 1996 actually. And, in all of that time, the best and most cost effective way I found to have Windows and Linux co-exist on a PC was to implement a dual-boot system. The first one I did was RedHat and NT 4. I used a boot disk, because getting a boot loader working with both NT and RedHat was painful, to say the least, back then. Not long after, I decided to make a boot loader work. The best solution, at the time, involved modifying your MBR and NT loader. Somewhere in the intervening years things got better as open source boot loaders started supporting NT based operating systems. And that, really, has been the best solution if you must have Windows and Linux on the same box. I finally reached the point where I wasn't willing to do that, for a variety of reasons, and so I maintained separate systems for a long time. And, if I just had to, I booted a LiveCD on my Windows laptop.
Not long ago, I was writing a guide to having Windows and Linux co-exist for a friend who is thinking about moving to Linux. She was concerned that she would get into Linux and still need to do things in Windows. My primary suggestions were either to use a LiveCD and USB memory stick until she was comfortable. Alternatively, she could create a dual-boot system. As a third option, one I didn't particularly prefer, she could use virtual machine technology. I've used VMWare quite a bit on servers, where I happen to think it's a great technology. But on workstations I wasn't so sure. Performance suffers, since x86 CPU's don't have any virtualization extensions and there is a cost to VMware. You can, of course, use QEMU or Bochs as an alternative, but neither of them is really for the newbie or the faint of heart, in my humble opinion.
In any case, my characterization of virtual machine technology drew a few opinions from folks, mostly saying that I really ought to check out VMware's free player and community supported/provided virtual machines. I listened with an open mind and decided it could be worth checking out. I downloaded the player and a copy of Russell Ost's Debian virtual machine from NetLiving. It was quite easy to get set up and running. In basically no time at all I had a Debian 3.1 machine running on top of Windows. With all the Linux functionality I could want, plus Windows running as well so that I have access to Visio and MS Outlook, I was fairly happy with this solution. All in all, this is a pretty slick way to do things, and great for the experienced Linux user who must also run Windows (usually because of work issues that we just can't get around). By Friday, I knew that this was nice, and I wrote a short review of Debian 3.1 running on VMware Player.
I talked with Russell by email after he contacted me to let me know a bit more information about his VM. One of the things I had complained about was that the Debian VM was limited to 1024×768 screen resolution. That was a deliberate choice on Russell's part to make the VM compatible with as many machines as possible, which is understandable. Russell made sure that the VM had over 2 GB of free disk space, so that users could customize to their heart's content. The VM was created with VMware Workstation on Debian 3.1. Once it was built, Russell added VMware Tools, which makes the use of CD, USB, sound, etc. very painless. In the 3 weeks since he released his VM for public use, Russell has had more than 1500 downloads of the 1 GB zip file containing the VM. That's very impressive! Hopefully he's got someone paying for his bandwidth. Russell is planning on coming out with some VM's that are more customized for specialized needs.
Little did I know where this would lead me to when I decided to dive deeper into VM technology and write a more detailed review for Debian News. Before I get into that, though, a bit about what I've discovered. First, performance. The VM's perform quite well as long as you have the Player configured to use a reasonable amount of real memory (I set mine to 512 MB instead of 256 MB) and the person who assembled the VM gives you a reasonable amount of RAM and disk space inside the machine. It doesn't boot as fast as a LiveCD, but once booted it's more responsive and doesn't have the annoying tendency to lag while reading from the CD (that can be fixed by loading the whole CD to RAMdisk, something I usually don't do). Right now I'm writing this article in a Debian VM and my Windows machine is running about 20% CPU utilization (compared to its more normal 5 to 6 percent) and 450 MB of memory in use (compared to a more normal 200 MB). I've been using the VM for my computing pretty steadily since Friday without any problems. Even with the virtual machine overhead, my downloads from the 'Net run at a respectable 250KB/sec (usually, on a good connection via my DSL I get more like 325KB/sec). I haven't had any trouble downloading and installing new software into Linux, either using 'aptitude' or direct downloads of software (I tried both just to check).
The bottom line? I would definitely recommend a Linux virtual machine using the VMware Player for anyone who needs to have Windows and Linux co-exist on the same machine. My personal opinion is, if you are a newbie and you think you want to move to Linux permanently, that you just take the plunge. If you keep Linux and Windows on the same PC, you will be comparing Linux to Windows, as if it was a Windows replacement, before you really understand Linux and the philosophy of being a grown up computer user. Once you have adjusted to Linux and how it works, then using a VM to have the two operating systems co-exist makes a lot of sense.
So, I said earlier in the article that I had some interesting discoveries while I was getting ready to write this article. I felt I should get as broad a view of the Linux VM's available for the free Player as I could. So, I downloaded Fedora Core (not my cup of tea, but some folks like it) and Damn Small Linux. Fedora Core ran very nicely, as well. So did DSL, for that matter. The link for DSL was in a forum, and the next entry under the announcement of the DSL VM was a guy giving an overview of how to roll your own VM for the VMware Player. That was intriguing, since I'd been griping that I couldn't find a SlackWare VM. So, off I went to figure out how to roll my own. I discovered that it was reasonably easy, if you understand how to use QEMU and install Linux. I'm not sure I would recommend a novice do this, but I could probably write a fairly straightforward HowTo that would get the novice to the point of being able to install Linux in their virtual machine.
QEMU, it turns out, can create virtual machine images formatted for VMware. Then, you just need to create a VMware configuration file. Depending on how you have done things, you can either boot from a physical CD or an ISO image. I chose the ISO image route (I keep ISO's for a lot of different distro's on a server, since I'm always tinkering), which worked beautifully. My first go was to boot a Puppy Linux LiveCD via the ISO image and then install to hard disk (virtual machine). No more than 20 minutes after I started, I had a fully functioning Puppy VM up and running. I've made that VM available for anyone who wants to download it: Puppy-1.0.7-hdd.zip. With that done, I figured I would tackle my favorite distro, SlackWare. I happened to have Slack 10.2 burned to disc and went ahead and used the CD route for that. About 30 minutes later I had partitioned my VM, created a swap partition, and installed Slack in my preferred configuration and was booting into Slack.
I now have five different VM's on my Windows laptop (Fedora Core, SlackWare, Debian, DSL and Puppy). The thing I'm beginning to realize is that this virtualization goes beyond just being able to have Linux and Windows co-exist. I think the next VM I'm going to build is Solaris 10 for x86. And maybe a BSD while I'm at it. I like different Linux distro's for different reasons. And I like other *NIX operating systems for a variety of reasons too. Now, I can have all of them co-exist on box. And I can use the operating system I prefer for whatever it is I'm doing. I'm literally able to turn my laptop into 6 or 7 different systems. Depending on system resource utilization, I can probably have 2 or 3 of them running at the same time, doing different things. One cool thing is that I have some old DOS/Win3.1 games that I still enjoy but can't get to run under Windows XP. I think I'll build a DOS6/Win3.1 VM and load up Panzer General 1! I've still got some old RedHat 6 CD's laying around, maybe I'll create a VM just for that and have some fun with a blast from the past.
The potential to set you free of the constraints of the x86 architecture, with its inability to virtualize (if you've worked with SPARC-IV and Sol10, or IBM Power and AIX5L, you know what I mean), to slice resources. The new functionality and flexibility is tremendous. And, I can have my Debian distro at my fingertips, even though I have to run Windows XP on my laptop. That's just hard to argue with.
Eric Cowperthwaite is an Information Security Manager with more than a decade of IT, Linux and Unix experience. He has worked for a variety of companies, including a local ISP during the Internet crazy days in the mid-90's, a variety of small system integrators and Fortune 500 companies. He currently works for an international systems integrator as a Client Security Officer, focusing on healthcare and government clients. Eric maintains a blog that focuses on technology, philosophy and politics at Eric's Grumbles.