Any way to run Linux as a Virtual Machine on top of Windows so can have best of both worlds?

Solution 1:

Lots of options here:

Tools Only

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.

  • Portable Ubuntu
  • andLinux

Virtualization

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".

  • VMWare
  • VirtualBox
  • VirtualPC

Dual Booting

  • 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.

Solution 2:

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.

Solution 3:

An alternative to a virtual machine (meaning it can share RAM with Windows) is Portable Ubuntu, which runs Ubuntu as a Windows app. It's one of the niftiest ways to get the best of both. I can't post a link because I'm a new user here. The domain is: portableubuntu.demonccc.cloudius.com.ar

Solution 4:

Maybe andLinux would be interesting?

From andlinux.org:

andLinux is a complete Ubuntu Linux system running seamlessly in Windows 2000 based systems (2000, XP, 2003, Vista, 7; 32-bit versions only).

Solution 5:

You can use cygwin if you just want the tools.

You can use VirtualPC software to mount any Linux.

There are a few distros that install on top of Windows like phat linux

Many useful linux utils (including bash) have been ported to native win32 (unix utils).