coLinux: can Linux and Windows co-exist?

coLinux: can Linux and Windows co-exist?

blog


The logo for Cooperative Linux, more popularly known as coLinux, sums up the attempted approach to the platform.  Placing the Windows logo and Linux penguin in opposite ends of the yin yang summarizes not just this software, but the problem it is attempting to address.  With a few UNIX, Macintosh and scattered other exceptions, the hosting world is torn between Windows and Linux.  This means that webmasters are similarly torn.  While the strong and weak points of each are well known, the bottom line is that whichever you prefer, there is an advantage to having each of them.

Some users solve this with multiple machines: an answer doesn’t get much easier, but that’s certainly not the cheap route.  A bit more common is to have a dual-boot machine.  This presents its own problems, though, namely that you don’t want to have to be constantly rebooting just to switch back and forth between the two.

A marriage made in … ?

coLinux works by allowing the installation of a kernel on the host OS (usually some Windows variant, but it can be anything, so long as it sends certain types of operating data the installation needs to run).  Unlike other methods of virtualization, though, Linux doesn’t quite so much run “under” it as “down and across” from it.

The term “cooperative” is meant to signify the fact that, once installed, the kernels of the Linux OS and host OS work together, communicating back and forth with each other as needed to share machine resources.  The Linux kernel accomplishes this by converting the two operating systems into equal coroutines.

However, in order to work properly, especially since most hardware isn’t set to handle talking to two different masters in two different languages at once, the host OS still holds instructive sway.  So those two coroutines are still slaves to it, and any Linux hardware requests get sent through it.

Does it work?

For the most part, it does.  Our surveying of both different review web sites and coLinux’s own FAQ seem to indicate that it does most of what you need it to do.  This is a major piece of software though: with everything that a modern computer is capable of doing, something this complex is bound to have areas of deficiencies.  Here are some of the biggest problems reported:

Problem #1 – Multiple CPUs aren’t supported

The one that is probably most relevant given current technological trends.  If your machine has more than one processor, then it appears coLinux can run, if you only give it access to one of the cores.  This may be tricky, though, and could introduce some of its own problems.  No better solution to this from coLinux’s home site is given.

Problem #2 – No X server support

coLinux does not have the ability to support an X server that requires a graphic adapter, as it does not itself contain a virtual adapter.  Some workaround solutions have been suggested for this, but they are ugly as sin.  For the most part they consist of running the X server in such a way that Windows takes up the slack for whatever Linux can’t do, and thus gets bridged between them.  The official coLinux page has a separate section devoted to how to do this, but this just seems to be begging for trouble.

Problem #3 – No 64-bit support

This is another one that is going to become relevant real quick.  coLinux is not designed to work under any 64-bit operating system.  For Windows users this includes Windows 7 64-bit, Windows Vista 64-bit and Windows Server 2008 r2.  Perhaps sensing the urgency to get this taken care of pronto, there is an active online discussion page about how to change this.  It appears possible to suggest that we might see this compatibility in a year or two.

Problem #4 – No sound support

To play sounds of any kind would require that coLinux be able to access the sound card.  We mentioned above that hardware is off-limits from coLinux, at least directly.

Is it available indirectly?  Yes, it would appear.  The trick to doing this revolves around finding a sound server in Windows that can receive data in the form of an audio stream from your network, and then make Linux part of that network.  Sound complicated?  Well, the FAQ page that explains exactly how to do this doesn’t seem any less complicated.  From the looks of it, though, users have had some success in getting this to work.

What else?

Those are the most common problems.  There are some scattered other ones that you are even less likely to run into, but are worth mentioning.  These include:

    Does not run under Windows 98/ME - Time to upgrade.
    Bugs with XML config file – A number of them have been reported: see their FAQ for the technical details and solutions.
    Linux crashes Windows – At least in some older versions, crashing Linux crashed Windows as well.
    General instability – A little bit of this is probably to be expected.

Are there other ways?

If you like the idea that coLinux suggests but want to see if anyone else has done it better, here are a few alternate packages that some users prefer:

    Wubi – This is probably the least intimidating of the Linux-on-Windows packages.  It installs Ubuntu onto Windows, but never exits Windows, and thus has the least amount of system conflict problems.
    TopologiLinux – This is a popular package that is built off coLinux.  It works by creating a hard disk instance that it runs off of.  Importantly, it has built-in solutions to the above mentioned X server and sound problems.
    andLinux – This is also based off the coLinux original distribution.  While so far it doesn’t have the following the others have, it also seems to have addressed most of coLinux’s more problematic deficiencies, though it and TopologiLinux still don’t work on 64-bit systems.

Should I?

One thing does seem certain, and that is that there is little to lose by installing these software packages: no one reported any kind of fatal system errors.  This might be a great starting point for all of the Windows users out there who want to dip their toes into some Linux waters.