コンピューターというハードウェアを活用するために欠かせないのが、OS(Operating System:オペレーティングシステム)の存在です。我々が何気なく使っているWindows OSやMac OS XだけがOSではありません。世界には栄枯盛衰のごとく消えていったOSや、冒険心をふんだんに持ちながらひのき舞台に上ることなく忘れられてしまったOSが数多く存在します。「世界のOSたち」では、今でもその存在を確認できる世界各国のOSを不定期に紹介していきましょう。今回は「ReactOS」を紹介します。
WindowsクローンOSを目指した「FreeWin95」
いつの日か、本連載で語る日が来るかも知れませんが、1990年代後半からWindows OSは高いシェアを保持し、現代に至るまで維持してきました。Net Applicationsの調査によると、2011年末の時点でも90パーセント以上のシェアを持ち(こちらの記事を参照)、今でもデファクトスタンダードOSとして多くのユーザーが使用しているのは、筆者が改めて述べるまでもありません。
Windows OSは元々16ビット系OSとしてWindows 95やWindows 98を、32ビット系OSとしてWindows NTやWindows 2000をリリースし、紆余曲折を経て両者の長所を備えたWindows XPに至りました。様々な意見はありつつも、David Cutler(デヴィッド・カトラー)氏を筆頭にDEC(Digital Equipment Corporation)の開発者の思想が大きく反映されたWindows NT 3.1の存在が、現在のWindows OS与えた影響の大きさを否定する方は少ないでしょう。
その一方で爆発的ヒット製品となったWindows 95に対して違和感を覚えるユーザーは少なからず存在し、同OSのクローンOSを開発しようと集まった有志が立ち上げたのが「FreeWin95」プロジェクトです。1996年頃にYannick Majoros氏はGPL上でWindows 95クローンOSを目指しましたが、残念ながら結果を生み出すことはありませんでした(現在でも同氏が書いたプロジェクト開始時の文書はこちらで読むことができます)。
FreeWin95プロジェクトは立ち消え、そのまま時代の影に埋もれるかのように見えましたが、再び火を入れたのは、同プロジェクトに参加していたジェイソン・フィルビ(Jason Filby)氏です。公式サイトの説明によると、当時のOS市場におけるMicrosoftの占有率に不満を覚えた同氏は、メンバー全員に声をかけ、"意見を述べる前にコードを書け"というスタンスでプロジェクトを再スタート。この際、目標をWindows 95からWindows NTに変更し、プロジェクト名を「ReactOS(リアクト オーエス)」に変更しました。これが1998年の話です。
ですが、一からOSを作り出す労力は言葉で表現できるものではありません。同プロジェクトも当初はOSの核であるカーネルとベーシックドライバーのコーディングにとどまり、エンドユーザーがOSとして認識するまでには長い月日を必要としつつも、30数名の能動的な開発者とほぼ同等の不活発開発者の手によって、ReactOSの開発は進められてきました。十数年の月日を経た現在では、ネットワークやUSBといったハードウェア、GDI(Graphics Device Interface)やDirectX(一部に限定)といったソフトウェア面のサポート強化により、一部のソフトウェアも遜色なく動作します。
しかし、同プロジェクトに大きな危機が発生しました。ReactOSの開発者向けメーリングリストに、Windows OSを逆アセンブルしたコードが含まれていると投稿されたからです。開発メンバーは非公式の議論を行い、開発者向けサービスや開発自体を一時停止することを決定。加えてソースコード全体の検査を行うと同時に、開発者全員にクリーンルーム方式のリバースエンジニアリングのみ行う契約書にサインをさせました。
2006年一月に発生した逆アセンブルコードの問題が解決したのは、2年後の2008年八月。ReactOSの開発スピードを著しく低下させた事件ですが、Windowsという既存のOSを模写することを踏まえますと、正しい判断だったと言えます。公式サイトのニュースレターや海上忍氏の記事を読めば、当時の状況や開発陣を襲った緊張感が読み取れるのではないでしょうか。
なぜ、WindowsクローンOSが必要なのか
多くのユーザーは、WindowsクローンOSの必要性に首をかしげることでしょう。「お金を払ってWindows OSを使えばいい」と考えた方、決して間違いではありません。ReactOSの存在意義は、前述のとおりWindows OSが持つシェアの高さです。特定のOSが市場を占有するのは一面的ですが健全ではありません。
Microsoftは巨大企業であるが故に市場を独占する結果に至ることが多く、日本国内ではWindowsのOEM販売契約違反を疑われ、欧州委員会からはInternet Explorerのバンドルが欧州の独占禁止法違反ではないかという疑いなど問題が発生してきました。現にWindows 7は独占禁止法抵触を避けるため、Internet ExplorerやWindows Media Playerを無効化する機能を備えています。 法的な問題は本稿の主旨と異なりますので割愛しますが、ReactOSは「Windows OS用に開発・リリースされた多数のソフトウェアを動かすためのプラットフォームは必要だが、ブラックボックスであるWindows OSはよしとしない」「使用時に発生する多種多様な問題に対応するために、オープンソースベースのWindowsクローンOSが必要」といったスタンスから開発が続けられているのでしょう。筆者の推測を交えれば、Linuxのように完全にオープンボックスなOSであると同時に、Windows OSという圧倒的なシェアを持つ操作性と環境を欲する気持ちと声に応えたのかも知れません。
蛇足ですが、異なるプラットフォームでWindowsアプリケーションを実行することは可能です。例えばWine(ワイン:Linuxなどで動作するWindowsアプリケーションを実行するためのソフトウェア)は、Windows APIを実装することで、アプリケーションの動作を実現していますが、100%の互換性を実現するのは設計上難しいでしょう。現在のように仮想環境によるゲストOS上でWindows OSを実行するのが一番簡単ながらも、WindowsのクローンOSであるReactOSをオープンソースベースで開発することに自体に意義があるのです(図01)。