Skip Links

Windows cooperating with Linux, honest!

By Mark Gibbs, Network World
January 17, 2005 12:07 AM ET
Gibbs
  • Print

We are delirious with joy, or maybe it is just that we've spent too long staring at the screen. ... Whatever, we just found the coolest hack that you just have to check out!

We're playing with Debian Linux running cooperatively with Windows. Yes, you might go back and re-read that sentence. This fascinating system is called coLinux and it allows the Linux kernel to run as a program or service under Windows 2000 or XP without using a commercial PC virtualization system such as User Mode Linux or VMware.

Specifically, coLinux - a port of the 2.6 kernel - is "special driver software on the host operating system [that executes] the coLinux kernel in a privileged mode [known as ring 0 or supervisor mode]," says coLinux development team leader and project originator Dan Aloni.

Aloni goes on: "By constantly switching the machine's state between the host operating system state and the coLinux kernel state, coLinux is given full control of the physical machine's [Memory Management Unit] (such as paging and protection) in its own specially allocated address space, and is able to act just like a native kernel, achieving almost the same performance and functionality that can be expected from a regular Linux which could have ran on the same machine stand-alone."

To share hardware with the host operating system, coLinux does not access I/O devices directly. Aloni says coLinux "interfaces with emulated devices provided by the coLinux drivers in the host operating system. . . . All real hardware interrupts are transparently forwarded to the host operating system, so this way the host operating system's control of the real hardware is not being disturbed and thus it continues to run smoothly."

The final crucial point is that, "since coLinux uses the same binary format for user-space executables as native Linux, coLinux can load and run an existing unmodified Linux distribution concurrently with the host operating system."

In other words, coLinux is really Linux and thus becomes a remarkably effective platform for learning how Linux works and for running those cool Linux-only applications under Windows.

You can find coLinux at www.colinux.org. Download the installer from the coLinux project's Sourceforge site, and run the install program.

The installation process is simple, but avoid installing coLinux under the "Program Files" subdirectory (or for that matter any other subdirectory with a long name), otherwise you'll need to know the subdirectory's short name when you get around to configuring the system.

Once you have coLinux installed you'll need a Linux distribution root image - an image of an installed distro that's stored in a file. You can download a distro root image file - we used the Debian version.

The root image files in this library have an extension of bz2, as they are compressed with bzip2. You can decompress these files with bzip2 or TUGZip.

You'll need to create a swap file which you can download as a bzip2 compressed root image - choose a version that is the same size as the amount of RAM you plan to allocate for coLinux to run.

  • Print

Videos

rssRss Feed