coLinuxの背後にある技術は、大概の仮想化方式とは異なるものであり、注目を集めているものである。coLinuxが「CD-ROMでインストールし起動する普通のLinuxディストリビューション」になる日もそう遠くないようだ。
Cooperative Linux(coLinux)は、GNU/LinuxがそのままWindows上で動作するという、仮想化の分野で独自の位置を占めている。2000年に始まったプロジェクトではあるが、最近やっと0.72になったばかり。しかし、andLinuxやUlteo Virtual Desktopなどの著名プロジェクトに基盤技術を提供するだけのものは持っている。UbuntuのWubiやFedoraのLive USB-Creatorといったツールが示す通り、今、Windowsの利用者をGNU/Linuxに引き寄せることに関心が集まっている。そんな今こそ、coLinuxの背後にある技術に注目すべきではないだろうか。
coLinuxは、ダン・アローニ氏が2000年に取り組みめたプロジェクトだ。当時アローニ氏はWindows育ちのコンピュータ科学科1年生だったが、フリーソフトウェアに熱中するようになり、User Mode Linux(テストのために仮想マシン上でGNU/Linuxを動かそうというプロジェクト)をCygwin(よく知られたWindows向けUNIX風環境)に移植しようと思い立って、プロジェクトUmlwin32を立ち上げた(このプロジェクトは現在も存続するが、アローニ氏自身は積極的に関与していない)。
やがて「WindowsのユーザーAPIは柔軟性が低く、Linuxカーネルをそのまま載せるには不十分だ」と確信するに至ったアローニ氏は、LinuxカーネルのソースをCygwinの下でコンパイルしlinux.sysファイルを作ってみるなど(問題が多発してあきらめた)、ほかの道を模索し始めた。そして、2003年、それまでに培ったLinuxカーネルについての知識を武器にアローニ氏はゼロからcoLinuxを立ち上げた。
2005年5月に小さな会社(2007年にIBMに買収された)を設立して以降、アローニ氏はプロジェクトの管理から遠ざかっている。現在、ストレージシステム分野の仕事をしているアローニ氏は「忙しすぎて、今は、Cooperative Linuxの維持管理に積極的にかかわる余裕がない。しかし、気には掛けている」という。開発者用ページは古いままだが、プロジェクトは、今、ヘンリー・ネステラー氏が維持管理している。
今もβ段階にあるcoLinuxだが、主な利用者は2通り想定されている。1つは、古くからのプロジェクトメンバーである岡島純氏が「デスクトップLinuxを一般の人々の手に」を標榜していることから分かるように「WindowsからLinuxへの王道を提供する」こと。2つめは、Cygwinとほぼ同じだが、フリーソフトウェアを長く使ってきた人が使い慣れたGNU/LinuxツールをWindowsでも使えるようにすることだ。
大概の仮想化方式とは異なり、coLinuxは、その名が示す通り、ホストOSと仮想ネットワークを介してシステムリソースを共用する。ホストOSとの通信には3種類の方法を用いるが、最終的にはどれでもほぼ同じだ。また、ハードウェアというよりソフトウェアであるため極めて容易に仮想ネットワークを変更できることから、いずれの場合も手順は簡単だ。こうしたコーポレーティブ方式には、独立した仮想マシンやOS・エミュレーターとは異なり、システムにcoLinux用のメモリを追加する必要がなく、アプリケーションをcoLinux上で動かしてもパフォーマンスがほとんど低下しないという利点がある。
coLinuxはLinuxコードのシステムコールを32ビットWindowsネイティブのシステムコールに置き換えることで動作する。容易に想像できるように、実際にこの置き換えを行うには極めて長い時間と多大な労力を必要とする。しかも、基にするLinuxカーネルのバージョンが変われば作業をやり直さなければならない。ネステラー氏の見積もりでは、置き換えが必要な個所の約70%は前バージョンのものを流用できるが、残りは手作業の必要があるという。「その大部分は自動的なパッチユーティリティーが利用できない」どころか、カーネルソースリポジトリにあるコメントを読み、変数の新設など、新機能やコードの変更個所を調べなければならない。
ネステラー氏は、新しいカーネルを最初に動かすのは「非常に困難な作業」になることがあるという。coLinuxでは起動の際ブートレベルをすべて飛ばすため、この部分の変更個所の発見に時間を要することがあり、またホストシステムをクラッシュさせるエラーになるのが普通だからだ。こうした難しさのため、coLinuxで使われているカーネルは2年前にリリースされた2.6.17が最新だ。約10時間で移植できることもあるが(ネステラー氏の最速記録)、この2.6.17は1カ月以上かかった。プロジェクトリソースが限られていることを考慮すると、開発者2人がそれぞれ毎週5〜10時間取り組んで2カ月以上掛かる計算になる。
標準ディストリビューションをWindowsで動作するように書き換える方法は、coLinux wikiに説明されている。Getting Started with coLinuxだ。少々古いが、つまずきそうな個所は丁寧に説明されている。ただし、出来上がったOSにはコンソールはあるが、グラフィカルインタフェース用のXサーバはない。
熟練者にはそれでもいいかもしれないが、単に見てみたいというだけの人はインストールが難しくデスクトップがないため、ほかの方法を試した方がいいだろう。ネステラー氏によるとcoLinuxインストーラをダウンロード単位の課金で販売しようかという動きがあるというが、あまり注目されていない。それよりも、andLinuxを利用する方がいいだろう。Ubuntuをベースとしており、既存のWindowsデスクトップに組み込まれる。もともと、Linuxベースのハンドヘルド・ゲーム・コンソール上で動作するように開発されたもので、最近までcoLinuxの派生品として最もよく知られていた。
最近、andLinuxの人気を脅かしているのは、Ulteo Virtual Desktopだ。現在、β2だが、かなりの注目を集めている。あまり経験のない利用者でもウィザードを介して作業できるからだろう。また、このプロジェクトのチームリーダーがガエル・デューバル氏だということも理由の1つと思われる。デューバル氏は人気の高いMandrakeディストリビューション(現在のMandriva)の創始者の一人だ。まだβ段階だが、安定性は非常によい。ただし、GNU/Linuxプログラムを数分以上放置し再び戻る際の応答が遅いことがある。
coLinuxは十分に確立された32ビットOSだ。しかし、ネステラー氏によると、Vista 64ビットとWindows Server 2008 x64には大きな問題があるという。これらのシステムはMicrosoftが割り当てた署名でデジタル署名されたドライバだけしか受け付けないのだ。しかも、フリーソフトウェアプロジェクトがそれを入手するのは不可能に近い。
だが、ネステラー氏は次のように言ってのけた。「coLinuxの利用者はほとんどが個人(企業ではなく)だからWindows Server 2008は使っていないだろう。また、Vistaの利用者は、一般に、Linuxを欲しがらない」
ネステラー氏の関心は、こうした問題より、最近のLinuxカーネルが持つ準仮想化機能を利用することの方に向いている。これを利用すればカーネルのバージョンが上がったときの移植が容易になるはずだからだ。ネステラー氏は、coLinuxが「CD-ROMでインストールし起動する普通のLinuxディストリビューション」になることを夢見ている。
coLinuxが将来どこへ向かうとしても、興味をそそるプロジェクトであり続けるだろう(技術的に。そしてWindowsを走らせることに対するフリーソフトウェアの嫌悪は棚上げするとして)。coLinuxやその派生品を利用することで、一般利用者は利便性、そしてお好みのGNU/LinuxアプリケーションをWindowsデスクトップで動かすといういささか背徳の気配のあるスリルを味わうことができる。ネステラー氏も「coLinuxはソフトウェア開発者の関心を引いている。まったく異なるOSの両方を見ることができるからだ」とコメントしている。
アローニ氏によるとLinus Torvaldsがかつて「ダーティー・ハック」と呼んだというプログラム、coLinuxはそれが作り出した領域で繁栄しているように思われる。
Bruce Byfield コンピュータ・ジャーナリスト。Linux.comの常連。
Copyright © 2010 OSDN Corporation, All Rights Reserved.