ジャンル:Linux実行環境  作者:Dan Aloni氏
ライセンス:GNU GPL  URL:http://www.colinux.org/

Cooperative Linuxは,Windows上でLinuxを稼働させるソフトウエアである。Linuxカーネルをはじめ,コンソール・ベースのLinuxコマンドを実行できる。VNCやCygwin/Xを併用すれば,Linux向けのGUIソフトウエアも実行可能である。

 これまでWindows上でLinuxを稼働させる場合,PCエミュレータと呼ばれるソフトウエアが用いられてきた。これは,PC AT互換機のハードウエアをソフトウエアでエミュレートするソフトウエアで,代表的なものには米VMwareの「VMware」やマイクロソフトの「Virtual PC」などがある。

 PCエミュレータは,PCのハードウエア環境すべてをエミュレートするため,PCで動作するOSならば(原理的には)すべて稼働できる利点がある。その半面,実装に手間がかかり,実行性能も低下しがちなのが難点である。

 イスラエルの大学生,Dan Aloni氏が開発したCooperative Linux(以下,coLinux)は,PCエミュレータとは別の方式でLinuxを稼働させる。

 coLinuxでは,Windows用の特殊なデバイス・ドライバを使って,WindowsカーネルとLinuxカーネルを短い間隔で切り替えることで,Windows上でLinuxを稼働させる。LinuxカーネルもWindowsカーネルと同じくプロセッサの特権レベルで動作し,ネイティブ実行時と同様にあらゆる操作が可能である。実行時のオーバーヘッドも少ない。仕組み的には,Linux上でLinuxを稼働させるUML(User Mode Linux)と似ている。原理的にLinuxしかゲストOSとして稼働できないが,実装の手間や性能低下の問題を大幅に軽減できる利点がある。

写真1●coLinuxのインストール画面
Cygwinがすでにインストールされている場合は,「Cygwin DLL」のチェックを外す。
写真2●ネットワーク・アダプタの設定
Windowsで利用するネットワーク・アダプタと,仮想ネットワーク・アダプタの「TAP-Win32」をブリッジ接続する。

 ただしネイティブ実行時とは,アクセスするメモリー領域がWindowsと重ならないように,実行切り替え時にMMU(Memory Management Unit)の設定が変更される点が異なる。これに対応するため,Linuxカーネルに多少の変更が必要である。また,Windowsとハードウエアを協調利用できるよう,Linuxからのハードウエアへの直接の入出力は禁止されている。すべての入出力はWindows(のデバイス・ドライバ)を経由する。これを実現するには,coLinux側でデバイスのエミュレートが必要になるが,現時点ではエミュレーションは完全ではない。そのため,XサーバーをcoLinux上で稼働させることができない。Xアプリケーションを稼働させるには,VNC(Virtual Network Computing)や,Cygwin環境などで動作するXサーバーが別途必要である。

 coLinuxの稼働環境は,Windows 2000あるいはWindows XPである。また,フリーのWindows互換OSである「ReactOS」(http://www.reactos.com/)でも動作する。

coLinuxのインストール

 それでは,必要なパッケージを入手してWindows XPにcoLinuxをインストールしてみよう。まず,coLinuxのWebページ(http://www.colinux.org/)または,本誌付録DVD-ROMからcoLinuxのインストーラ・ファイル「coLinux-0.6.0.exe」を入手し,それをWindows上で起動する。

 インストールはウイザード形式で実施できる。途中,導入するパッケージを聞かれる。WindowsにCygwin環境をすでにインストールしている場合は,ここでCygwinのDLL(Dynamic Link Library)をインストールしないように「Cygwin DLL」のチェックを外す(写真1[拡大表示])。

 インストールの最後には「TAP-Win32 Adapter」を導入するかを聞かれる。TAP-Win32は,仮想ネットワーク・アダプタで,coLinuxからネットワークを利用する際に必要なパッケージである。「続行」ボタンをクリックすれば導入される。これでインストールは終了である。

 インストール作業後,Windows XPで利用するネットワーク・デバイスとTAP-Win32をブリッジ接続する。これには,Windowsの「コントロールパネル」から「ネットワーク接続」を開く。そこで,Windows XPで利用するネットワーク・デバイスとTAP-Win32アダプタを両方選択してから,マウスの右クリックをして「ブリッジ接続」を選択する(写真2[拡大表示])。

(ライター 福田 和宏)


(中)に続く