I have been itching to have Linux on my laptop. But I don't want to partition my disk. It's already running out of space, and I have some pretty 'important' stuff in there. Further, I don't want to risk losing time doing reinstall if somehow my disk is corrupted.
Sometime after openSuSe 10.3 was released, I decided to have a go with Virtual PC 2007. It went okay. Performance wise is bearable. But I remembered a software I came across a few years back: coLinux. For those who haven't heard of coLinux: Quoting from coLinux official website:
coLinux is a port of the Linux kernel that allows it to run cooperatively alongside another operating system on a single machine.".
I immediately downloaded the latest stable version and gave it a try.
Update: Gerard Braad sends in a link to his Installation instructions for opensuse 11. Look it up here.
Unfortunately, there is no image available for openSuSE 10.3. So, after a bit of googling I found that the process of creating a new distro image is not trivial. The documentation and wiki are confusing, since they have just changed configuration format and most of the articles are not synchronized with the current version.
Nevertheless, I managed to create my own root image after several hours.
For those interested, the root image creation involves using QEMU to do a base install and some copying between QEMU disk file and the colinux file. Once you have a basic root image, boot it with coLinux and install your required packages. I don't recommend doing the full installation using QEMU since it will be ridiculously slow (Some internet page mentioned an acceleration tool is available, but I didn't try it).
There was a snag when I tried getting the networking to work and when mounting other COFS images. As it turns out, the latest stable did not support devfs. After getting the bleeding edge release, those issues are resolved.
| |
When all this are in place, I mounted the ISO and performed additional install to get the rest of packages in place, eg: C/C++ development, Gnome, and Web Server packages.
I have an already checked out tree, and I used the Paul Johnson's monoupdater.sh script to get the latest revision. The script ran for about 15 minutes, updating the mono tree to revision 93972 for directories: mono, mcs, libgdiplus, gtk-sharp, gtksourceview-share, and monodevelop. After a while, memory use went up from about 300MB to 927MB. Task Manager says my CPU utilization is about 34%.
My laptop was swapping quite heavily so I decided to reboot coLinux before proceeding to the next test.
I installed mono and libgdiplus. Copied Lutz Roeder's Reflector.exe to my shared directory and run it with mono. For an X Server, I used Xming. I also fired up another copy in my Vista. The machine is still responsive.
Reflector on mono works, although limited. The menus sometimes responded slowly, and the toolbar is missing.
Nothing beats working natively in Linux. But coLinux is a great tool. that can assist developers when writing and testing their software natively, without having to reboot the computer.