Quick Links

Linux users often want to run Windows software on Linux, but Windows users may want to run Linux software, too. Whether you're looking for a better development environment or powerful command-line tools, you can run Linux software without leaving Windows.

There are many different options for running Linux software on Windows that doesn't involve buying a new laptop to run the OS. It's easier than running Windows software on Linux, as anyone can set up a virtual machine with a free Linux distribution -- no need for software licenses.

Virtual Machines

Virtual machines allow you to run any operating system in a window on your desktop. You can install the free VirtualBox or VMware Player, download an ISO file for a Linux distribution such as Ubuntu, and install that Linux distribution inside the virtual machine like you would install it on a standard computer.

When you need to boot up your Linux system, you can do it in a window on your desktop -- no need for rebooting and leaving all your Windows programs behind. Everything but demanding games and advanced 3D effects should work just fine, but you likely won't want to use those, anyway.

If you're installing Ubuntu in a virtual machine, you may want to try installing an Ubuntu derivative like Xubuntu instead. Ubuntu's default Unity desktop uses 3D effects and the desktop interface doesn't perform as smoothly in a virtual machine as past desktops did. Xubuntu uses Xfce, which is much more lightweight.

You could even try using VirtualBox's seamless mode or VMware's unity mode to run Linux applications directly on your desktop -- they'll be running in the virtual machine, but their windows will be present on your Windows desktop instead of trapped in a single virtual machine window.

Cygwin

Cygwin is a collection of tools that offer a Linux-like environment on Windows. It's not a way to run existing Linux software on Windows -- the software will have to be recompiled. However, much software has already been recompiled. Cygwin will give you a Linux-like terminal and command-line environment with many of the command-line programs you may already be used to.

We've previously covered installing and using Cygwin. You can even use Cygwin to install an OpenSSH server and get SSH access to a Windows system. Just make sure you lock down your SSH server the same way you would on Linux.

This solution is ideal for users missing crucial Linux utilities on Windows -- it's not a way to run a full Linux desktop.

cygwin-on-windows-7

Install Ubuntu via Wubi

This method is technically installing Linux, not running Linux software on Windows. You'll have to reboot each time you want to use your Linux system just as if you had installed it in a standard dual-boot configuration.

However, Wubi doesn't install Ubuntu in the normal way. Instead, it creates a special file on your Windows partition and uses that file as your Ubuntu drive. This means that you can install Ubuntu and use it without any partitioning and you can uninstall Ubuntu from the Windows Control Panel when you're done.

If the partitioning aspects are what's holding you back, give Wubi a try. Performance won't be quite as good as a normally installed Linux system when it comes to disk read and write times, but it should be faster than a virtual machine.

ubuntu-wubi-installer

Ported and Compiled Programs

Many common Linux programs have already been ported to Windows and compiled versions have been made available online. If you really miss Emacs, you'll find versions of Emacs for Windows. If you want to run a specific program on Windows, perform a Google search for the name of that program and "Windows" -- there's a good chance you'll find a version of the program that 's been ported to Windows.

gnu-emacs-on-windows

coLinux-based Distributions

coLinux stands for Cooperative Linux. It's a way to natively run Linux alongside the Windows kernel in a way that offers much faster performance than simply running Linux in a virtual machine.

This is a great idea, but there's a problem. coLinux doesn't yet support 64-bit versions of Windows, so you'll need to be running a 32-bit version of Windows on your machine to do this -- that's increasingly rare. coLinux hasn't released a new version in over two years, so development seems to be either stalled or moving very slowly.

If you want to try this out, you may want to try out Portable Ubuntu Remix. This coLinux-based distribution was last updated in 2011, so it's a bit old -- but other options like andLinux are even more out of date. andLinux, which we've covered in the past, was last updated in 2009.

coLinux-based distributions would be a great option, but they seem to be getting left behind. If you don't mind using years-old Linux software and a 32-bit version of Windows, this option may work for you anyway.


There's no one right option here. People who want a full Linux experience will probably want a virtual machine, while users of a few crucial shell utilities may prefer Cygwin. Others who just want to run a single program may find better luck with a version of that program ported to Windows.