Saturday, May 2, 2009

Run Windows and Linux without virtualization

Linux does everything that many users want it to, but some people have tasks that require Windows applications. You can dual-boot both operating systems, or run Windows in a virtualized environment on Linux. Alas, virtualization makes the guest OS almost useless for processor- and RAM-intensive tasks like editing videos and playing games. Now, a Ubuntu-based distro called andLinux takes cooperation with Windows to a whole new level.

The miracle ingredient in andLinux is its coLinux kernel. The coLinux project takes a stable release of the Linux kernel and ports it to run on Windows. That means that, unlike virtualization software, andLinux installs on Windows like any other application.

But there's more to andLinux than just sticking the coLinux kernel in a stock Ubuntu. According to Joachim Gehweiler, one of the developers of andLinux, the project also had to roll in the Xming X server and PulseAudio sound server and make sure these components work together.

andLinux is available in two flavours -- a 665MB version that uses KDE and takes up 4.5GB of disk space, and a lightweight 143MB version with Xfce that uses 2.5GB on a hard drive. The developers recommend earmarking at least 192MB of RAM during installation for andLinux, but make sure you have enough memory left for Windows itself. andLinux will run only on 32-bit versions of Windows 2000, XP, 2003, and Vista, and your hard drive needs to be formatted using the NTFS filesystem.

Click to enlarge Both versions of andLinux are distributed as Windows executable files, and launch the easy-to-use andLinux graphical installer. The installer asks questions to help it bridge the gap between Windows and Linux. For example, to access your Windows files from andLinux you have the option to either use Samba or COFS (coLinux File System). While COFS is easy to configure, the andLinux installer advises you to use Samba if you have filenames with special characters. To further enhance the co-existing experience, andLinux lets users configure file type associations, and decide which Linux applications to add to the Windows "Open With" menu.

The installer performs several behind-the-scenes configuration tasks, such as setting up the TAP-coLinux network adapter for sharing the network connection with Windows. Most of these tasks are performed by the Inno setup scripts on the Windows side, but some, such as Samba setup, have to be done from the Linux side, and are performed by bash and Perl scripts written by the andLinux developers.

The installer also creates an andLinux start menu entry and quick launch icon. andLinux installs as a Windows service and can start automatically when the computer boots, though depending on your hardware this could slow down your Windows boot process. You can also launch andLinux manually at a command prompt, but there's no shortcut on the desktop or a quick launch icon you can click to start andLinux.

I run andLinux on two dual-core boxes -- an E4400 2.0GHz machine with 2GB of RAM, and an E6300 1.8GHz with 1GB of RAM. On both machines starting andLinux as a service doesn't cause any visible stress, just disk activity after Windows boots, indicating andLinux starting up in the background. On a slower 1.7GHz Celeron laptop with 1GB RAM, I see a steep increase in application launch times while andLinux boots in the background, but things get back to normal once andLinux's up and running. That's an improvement on the laptop's performance when running a virtual machine, during which time it crawls to a halt.

The loaded Intel dual-core boxes are optimized to run virtualized software thanks to Intel Virtualization Technology, but andLinux doesn't have any hardware-specific optimizations. The developers say you will benefit from virtualization threads only when running one Linux application concurrently with at least one Windows application. But this advantage is negated when you run two (or more) Linux applications, as all such apps are treated as one Windows process.

andLinux creates a 4GB virtual partition out of a portion of the partition it's installed in in which it keeps its binaries, and shares a small part of the Windows file system via Samba or COFS depending on the method you chose during setup. You can keep files you create using andLinux applications on either the virtual partition or the Windows file system.

At first, you may feel andLinux is a bloated way of running Linux apps that have Windows versions as well, such as AbiWord, the GIMP, and Firefox. Since they run atop the Windows desktop, you don't see the Xfce or the KDE desktops. But as you continue exploring you'll notice Konqueror and its KIO slaves and a bunch of KDE utilities and games that have never run on a Windows desktop before.

When it comes to remote sharing, you can configure andLinux to let you SSH into it from another machine. You can also remote share your Windows desktop via VNC or rdesktop and implicitly remote share andLinux.

To further drive home the point that you are really running a Linux distro, there's the command-line apt-get and the graphical Synaptic utilities configured for installing additional applications from Ubuntu's repositories. I tried some applications from the repository (including OpenOffice.org, Pidgin, AbiWord, XChat, and Thunderbird) and they all worked. You can also install new apps by compiling them from source.

But you are not only running a Linux distro in Windows; you're running one alongside the other. To experience the cooperative nature of andLinux and Windows, you can right-click on a .txt document and open and edit it in Kate, read a .pdf in KPDF, and copy and paste text between a Windows app and a Linux one.

What you won't be able to do is play 3-D games, such as Alien Arena or Torcs. Nor will you be able to use your TV tuner card to watch videos on Linux with MythTV, or use your Bluetooth devices, even though some TV tuners and many USB bluetooth dongles work on all major natively-installed Linux distros.

On the plus side, you can share your printer between Windows and andLinux, thanks to recently acquired printing support. Printing support is expected to be included in the next release so you'll be saved the effort of setting it up manually.

Running atop Windows has one final disadvantage. andLinux lacks security support for multi-user environments and can be run by all Windows users that have access to the computer.

For a desktop user, andLinux is a productive method of running Linux and Windows together. It doesn't focus on segregating Windows and Linux as host and guest OS. Instead of merely coexisting it allows the two OSes to cooperate, resulting in the welcome ability to share files between the two OSes and open files using apps on either OS. It's still slower than a pure Linux installation, but it runs smoothly as compared to Linux running on an emulated PC, especially on older and slower hardware.

All said and done, andLinux's limitations aren't any greater than those of a virtualized environment, and in its current form, neither are its advantages. But I'd still recommend it to desktop users, due to its non-existent learning curve and for taking Linux-Windows interoperability to a whole new level.

No comments: