Cooperative Linux (coLinux) is a system where you can run a complete Linux system while in Windows.
CoLinux is not an emulator or virtual machine. A real Linux kernel will run on your system alongside Windows. CoLinux is a system that consists of a Windows kernel driver, a Linux kernel and some userspace daemon programs. When the colinux-daemon.exe is started, it will parse the given config file, load the linux.sys (Windows) kernel driver and tell it to reserve the specified amount of RAM for the Linux system. Then the daemon loads the Linux kernel in the reserved RAM area and starts it. The Linux kernel is a slightly modified version of the standard x86 kernel. It has been stripped of all parts that directly access the hardware. Instead the kernel uses (with the help of linux.sys) either defined APIs in the Windows kernel or user space programs to access needed resources like storage or network.
This approach has the advantage, that there is no need for virtualization or emulation. The system behaves (from the user space point of view) like a normal Linux system, because there is one.
There are of course also some disadvantages:
The biggest disadvantage is that coLinux runs aside the Windows kernel. It runs on the same hardware abstraction layer that is also called ring0. Inside this CPU abstraction layer, there is no hardware memory protection. This is the same situation as between the Linux or Windows kernel and their device drivers. So a problem in the Linux kernel can bring the Windows kernel down, if Linux violates the Windows address space. Also there are security implications. If a malice user gains root access inside coLinux he can compromise the security of the Windows system as well. Also to load and use coLinux the user has to have administrator rights. (There is the possibility to start coLinux as a service, so it is possible to start coLinux as a normal user, if the user has been granted the right to start the service)
For further information, please select a subcategory:
Once you have coLinux up and running, you can use it like a normal Debian distribution (because in reality, it is). That means you can follow all the other documents when it comes to installing the toolchain and building the uClinux distribution and working with tftp and …