**Cooperative Linux** 简称 **coLinux**，这个软件可以让Windows内核与Linux内核同时运行在一台机器上。
coLinux 指协作式虚拟机（CVM）。与传统的虚拟机相反， 协作式虚拟机共享宿主机器已有的资源。传统的虚拟机技术，宿主机资源需先被虚拟化，然后再给虚拟系统使用。不同于传统虚拟技术，coLinux的客体机对宿主机资源具有完全的控制权。在传统的虚拟技术里，客体机对实体机的访问一直处于某种未授权状态。

概览
--

Synaptic and nautilus running on Windows
这里"协作"的意思是两者可以并发的工作。实际上，coLinux是将两个不同的操作系统内核变成了两个大协程。每个内核都会有其自己的CPU环境以及内存空间，并且自己决定什么时候将控制权交给另一内核。 
虽然，理论上，两个内核理论上都能够完全访问硬件资源，但是, 让两个不同的操作系统内核同时访问相同硬件，这并不是现代计算机硬件的计目标。因此，需由宿主机的内核来主控真实硬件，而客体机内核通过特别的驱动与宿主机相通信，并为客体机提供各种重要的设备的接口。任何一种允许coLinux的便捷驱动运行在CPLO模式（特权级别 ring 0) 并且允许其分配内存的操作系统都可以作为coLinux的宿主机。

历史
--

Dan Aloni早期的开发基于一个叫User-mode Linux的类似系统。他于2004年6月25日开始coLinux的正式开发。在2004年7月， 他向Linux Symposium 递交相关论文，源码在GNU通用公共许可证下释出。然后开发者们开始贡献各种补丁及添加代码。

比较
--

coLinux与x86平台上的完全虚拟化有明显的不同，一般意义上的虚拟化程序并没有像宿主机内核类似的特权。与传统技术不同， coLinux通过运行一个修改过的Linux内核来与宿主机的NT内核协作式地共享资源，防止两者陷入竞争危害。

发行版本
----

现在，大多数的变更补丁都是针对i386平台这一分支的，这也是目前coLinux唯一支持的架构。其它的变更主要在虚拟驱动程序上，比如cobd（块设备），conet（网络）以及cocon（控制台）。在i386分支上的这些变更代码大部分与初始化及设置有关。与正式的i386 Linux内核尽量保持一致, 这是coLinux内核设计的一个目标，因此，所有的变更必需尽可能地保持本地化与最小化。coLinux软件在Windows 2000或Windows XP的机器内安装运行了一个Linux内核以及一个虚拟网络设备，并不像VMware一样使用一个虚拟的机器。Debian，Ubuntu，Fedora及Gentoo这些都是非常受coLinux用户欢迎的Linux发行版本。由于虚拟硬件不同寻常的结构，在coLinux下安装一个Linux发行版本似乎有点困难。因此用户通常使用一个已经安装好Linux系统的分区，或者使用官方预先准备的系统镜像文件。这些镜像有多种生成方法。像是从正常的操作系统提取，或是， 想方设法安装在特殊的硬件上， 又或者，通过包管理器手动的构建安装包，也可以是简单的利用yum，apt这个的工具来升级已有镜像系统。还有一个简单的方法也可以得到一个最新的系统镜像，首先，利用QEMU来安装所需Linux系统， 然后，通过去掉原镜像的头63512字节块的数据达成"转换"镜像的目的。 这个方法在coLinux的wiki而面有论述。coLinux并不需要访问本地的显示设备，当然，这也使得X Window系统 或者 X.Org Server无法在coLinux下直接运行，但是你还是可以在Windows下装个Cygwin/X或者Xming一类的工具，使你可使用coLinux的KDE（或GNOME）及其它几乎任何的Linux的程序。这些的图形界面的问题在coLinux的洐生版andLinux及TopologiLinux里都得到的解决。andLinux基于Ubuntu， TopologiLinux基于Slackware。

硬件仿真
----

基于TAP，PCAP，NDIS及SLiRP的以太网。

局限
--

* 不支持64位Windows或Linux（这样就无法使用超过4GB的内存）， 但社区已经在开发相关版本。
* 不支持多处理器（对称多处理），Linux 程序和底层内核都只能使用一个 CPU。

参见
--

* Topologilinux, 一个基于Slackware的coLinux发布版本
* andLinux, 一个基于Ubuntu的coLinux的发布版本
* 虚拟机
* 虚拟化平台的比较
* Cygwin
* MSYS
* Wubi
* 双重引导

外部链接
----

* coLinux Home page
* coLinux Sourceforge page（页面存档备份，存于）
* coLinux Wiki（页面存档备份，存于）
* Virtualization with coLinux a developerWorks by M. Tim Jones
* speedLinux（页面存档备份，存于）
* Portable Ubuntu Remix（页面存档备份，存于）, another Ubuntu-based coLinux distribution

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
Unix–Windows互操作性 |
| --- |
|  |
| 类Unix子系统 | 

|  |
| --- |
| 
* Cygwin
* 微软POSIX子系统
* Windows Services for UNIX (Interix)
* 适用于Linux的Windows子系统 (WSL 1)

 |

 |
|  |
| 开发环境和shells | 

|  |
| --- |
| 
* DJGPP
* Hamilton C shell
* MinGW (MSYS)
* Mingw-w64 (MSYS2)
* MKS Toolkit
* PowerShell
* UWIN

 |

 |
|  |
| Windows上的类Unix系统实用程序移植 | 

|  |
| --- |
| 
* GnuWin32
* UnxUtils

 |

 |
|  |
| Windows上的\*nix运行时环境 | 

|  |
| --- |
| 
* Wabi（英语：）
* Willows Toolkit for UNIX
* Wine (WINE@Etersoft, Cedega（英语：）, CrossOver, Darwine, Proton)

 |

 |
|  |
| 平台虚拟化软件（英语：） | 

|  |
| --- |
| 
* Cooperative Linux
* Merge
* TopologiLinux
* 适用于Linux的Windows子系统 (WSL 2)

 |

 |
|  |
| 相关条目 | 

|  |
| --- |
| 
* APIW
* Captive NTFS
* NDISwrapper
* Windows Interface Source Environment

 |

 |

 |