Since Linux has a lot of useful tools, while Windows has a lot of apps (like Chrome), instead of buying another machine to run Linux, is there a way to run it as a Virtual Machine on the PC? The Ubuntu installation CD-ROM doesn't seem to have such an option.
Lots of options here:
If you just want the GNU/Linux tools, there are a few choices.
- cygwin gives you a bash shell with lots of tools, including an X11 server. This has been around awhile and is mature.
- msys is a smaller, lightweight alternative to cygwin.
- GNU utilities for Win32 is another lightweight alternative. These are native versions of the tools, as opposed to cygwin which requires a cygwin DLL to fake out its tools into thinking they are running on Linux.
- UWIN is a set of Unix tools/libraries from ATT Research that run on Windows.
- SUA is Microsoft's Subsystem for UNIX-based Applications, offering a tools and an environment for building/running Unix programs under Windows.
Linux in a Windows Process
There are several packages that will run Linux as a Windows process, without simulating an entire PC as virtualization does. They use Cooperative Linux, a.k.a. coLinux, which is limited to 32-bit systems. These don't have the overhead of virtualizing, and they start up faster since you're not booting a virtual PC. This is a little more on the experimental side and may not be as stable as some of the virtualization options.
Virtualization software lets you boot up another OS in a virtual PC, one that shares hardware with the host OS. This is pretty tried-and-true. There are nice options here for taking snapshots of your Virtual PC in a particular state, suspend/resume a virtual PC, etc. It's nice to be able to experiment with a virtual PC, add a few packages, then revert to a previous snapshot and "start clean".
- wubi allows you to install Ubuntu right from Windows, then dual-boot. Not as convenient as the above, since you can't run both OS's at once.
It looks like VirtualBox runs on Windows, which should have decent Linux support. Virtual PC, as far as I know, does not offer very good Linux integration.
If you're just looking for the regular set of command line tools, you might look at cygwin. A lot of the goodness without the overhead of maintaining a separate system.
"Cooperative Linux (short-named coLinux) is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine."
You can run Linux in Virtual PC, though your performance may suffer some. I've got a trixBox PBX running in Virtual PC, for testing purposes, and it works fine.
I notice some performance problems when calling from one softphone to another in my network and getting the extension's voicemail. The sound is slow and stuttering, I presume due to how Virtual PC allocates CPU cycles, because the PC it's running on is fairly robust. (Dual core 1.4 MHz with 4GB RAM - 3.6 recognized, of course, because it's 32-bit hardware.)
I'd say try it out and see how it works for you. It won't take too long to get it up and running, so it's probably worth experimenting.