Hi. I'm Dan Aloni, original author of this project. It still warms my heart to see this pops in HN every few years. The others who have worked on it and myself are keeping that site as the good relic that it obviously should be :)
It still amazes me how breakthrough it was to have that working, given the lack of hardware virtualization for PCs in late 2003.
I used coLinux to install the unofficial Linux-based toolchain for iPhone apps, and I made an iPhone app editing it in Windows, with a Makefile that SSHed into the coLinux system, called the compiler and pushed the binary onto my jailbroken iPhone (who needs iPhone e-/simulators?).
I even published the app (ok code-signing was done on a Hackintosh), sadly it didn't make me rich...
Any idea why Microsoft didn't use this in WSL1 or 2?
Is it more efficient than hyper-v with hardware acceleration?
Can you see it being useful again? Or does it make sense to have a hybrid where the code runs using hardware acceleration but the timers are cooperative?
It seems that today we can achieve similar functionality in fundamentally different ways (WSL, WSL2/virtualisation, Cygwin, etc.) What in your opinion is today's closest solution to colinux? and why we don't see such clever solutions today?
WSL2 is analogue to coLinux and WSL1 is analogue to Cygwin. WSL2 is definitely what you want in place of coLinux. However, both have merit in what they can achieve depending on the circumstances. There is long thread on Github about the switch between the two, with many people asking to maintain both.
I created the images for Fedora, CentOS and OpenSuse. it thought me a lot about the dependencies, Linux image builds, etc... it was creating 'container'-images before this was a general thing.
Many stuff gets invented in raw form much before everyone receives it in a much more structured way.
Around 2007 when Linux namespaces started getting better support, I had made a small executable to use these system calls and to spin up a squashfs image 'just for compiling stuff for another system'. Much later, this whole method was replaced with 'docker run'.
It still amazes me how breakthrough it was to have that working, given the lack of hardware virtualization for PCs in late 2003.