Did anybody still remember coLinux? I remember it is used for SpeedLinux and Portable Ubuntu some years ago.

It's pretty clear what is coLinux doing, running Linux on top of Windows somehow, but can use real linux partition. Meanwhile cygwin is recompiling linux apps to use on Windows.

But WSL? is WSL closer to coLinux or Cygwin?


WSL would be closer to coLinux than Cygwin.

Keep in mind that Unix, POSIX and Linux are different things.

Cygwin is a POSIX compatibility layer that runs on top of the Win32 subsystem. It has approximately nothing to do with Linux; it can broadly be treated as "just another Unix-like" where porting programs requires recompilation and possibly source modification, and anything that requires non-POSIX Linux-specific features probably won't work.

WSL is designed to be ABI-compatible with Linux proper. It does not use the real Linux kernel, but is compatible such that programs compiled for Linux can run on it without recompilation or translation. WSL is part of the NT kernel, so exists independently of the Win32 subsystem. This is similar to the older SUA, though that was a POSIX (not Linux!) subsystem on top of the NT kernel.

coLinux runs a real (though modified) Linux kernel. On the Windows side, it exists as a driver that provides memory management and I/O access. Conceptually, it is closest to a virtual machine, though with closer integration between host and "guest".

From a program's perspective, both WSL and coLinux look approximately the same as a real Linux kernel running on raw hardware. WSL (currently) has more limitations and quirks, but also has first-party (Microsoft) support and wotks on x86_64. coLinux is a real Linux kernel, so will behave just like Linux, whereas WSL is a clean-room implementation of the ABI.

Cygwin does not look any closer to Linux than, say, FreeBSD does.

  • 1
    I do agree that colinux is for now, much better. Its sad that nobody ported it to x86-64. – Rinaldo Jonathan Sep 24 '18 at 1:55
  • 1
    @RinaldoJonathan Personally, I prefer the WSL approach. IMO the coLinux approach is relatively fragile (poorly defined interfaces between the two kernels). In fact, I'd take a full VM over coLinux. But it does depend on what you need. – Bob Sep 24 '18 at 2:01

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.