Cooperative Linux

Cooperative Linuxは、Microsoft Windows上で動作するLinuxカーネルである。Dan Aloniが開発した。略称はcoLinux。Windows 2000・Windows XP・Windows Vista・Windows 7で利用できる。エミュレータや仮想マシンではなく、本物のLinuxカーネルがWindows上で動作することが大きな特徴である。TAP-Win32やWinPcapといったネットワークツールを経由して外部のネットワークへ接続が可能。

Dan AloniはcoLinux以前にUmlwin32と言うものを開発していた。これはLinuxのUML技術をMicrosoft Windowsに実装しようとしたもので、Dan AloniはUmlwin32をより実用的に発展させたものとして、UMLとは違う切り口からcoLinuxの開発を始めた。

動作原理 
 WindowsアプリケーションとしてLinuxカーネルが動作する
 Windows用ドライバとしてlinux.sysがLinuxカーネルからの/への入出力を行う
 補助記憶装置は実パーティション又はディスクイメージを利用する
 メインメモリは一般的なアプリケーションと同様、Windowsのユーザー空間の一部を利用する(起動時に設定ファイルの記述により割当量を決定する)
 現時点ではディスプレイアダプタおよびサウンドアダプタは実装されていない。そのため、GUIを利用するにはX Window SystemやVNCを使ってリモートコンピュータのように接続する。音声はサウンドサーバを利用することで再生できる。

特徴

仮想マシンとの比較 
 入出力のオーバーヘッドが少なく高速である。
 通常のBIOSやブートローダを用いないため、起動が高速である。
 NTサービスとしてLinuxを稼動させることができる。
 coLinuxはカーネルバージョンを変更できない。

Cygwinとの比較 
 coLinux は「本物の」Linuxであるため、Linux用の通常のバイナリが利用できる。すなわち豊富な既存のLinux用ソフトウェアが利用できる。
 Debian GNU/LinuxやUbuntuといった、一般のLinuxディストリビューションを、ほぼそのままcoLinux上で利用できる。
 入出力のオーバーヘッドで課題の大きいCygwinと比較して高速である。

Windows/Linuxデュアルブート環境との比較 
 Windows上で動作するソフトウェアとLinux上で動作するソフトウェアを同時に並行して利用できる。
 同時に複数のcoLinuxを起動できる。

外部リンク 

 colinux.org 
 Snapshots 
 The User-mode Linux Kernel HomePage 

Linux
オープンソースソフトウェア
仮想化