「自由と開放の精神」で開発が進められているWindows互換OS「ReactOS」――SourceForgeが選ぶ今月のプロジェクト

 米SourceForgeでは毎月1つのプロジェクトを投票で選び、「Project of the Month(今月のプロジェクト)」の栄冠を与えている。2013年6月の「今月のプロジェクト」に選ばれたのは、Windows互換のOSをスクラッチで制作している「ReactOS」プロジェクトだ。プロジェクトの開発者に、その開発過程や内情について聞いた。

 ――ReactOSは、Windows XP/2003のデザインに基づいて、一からプログラミングされたフリーかつモダンなOSである。ReactOSについてもっと詳しく知るべく、現在同プロジェクトでコーディネーターを務めるAleksey Bragin氏から話を聞いた。

 ――ReactOSとは?

 ReactOSは、Microsoftが開発した以外のOS上でWindowsドライバやアプリケーションを利用できるようにするために開発された、Win32サブシステムとNTカーネルを実装したOSだ。しばしば、プロジェクトの目的が「Windowsのクローンを作ること」と極端に簡略化されて伝えられることがあるが、これは正確ではない。そもそも、プログラミングインターフェイスをクローンすることは不可能で、できるのはそれを実装することだけだからね。

ReactOS-RoyaleTheme
ReactOSのデスクトップ

 ――このプロジェクトに携わってからどれくらいになる?

 ReactOSが立ち上げられたのが1998年。そして、基本方針もちょうどその年に決まったんだ。その基本方針とは、Windows NTアーキテクチャをReactOSの中核デザインとし、Windows向けに作られたWin32アプリケーションおよびドライバとのバイナリ互換性を持たせること。このような素晴らしいプロジェクトにコントリビュートしたいという気持ちから、私は4年後の2002年にデベロッパとして参加することとなった。それからさまざまな役割を果たしてきたが、ReactOSプロジェクトに対する熱意は小さなコミュニティに大志を抱いて参加した当初と変わらない。

 ――Windows NT/2000エミュレータは未だに必要とされているが、それはなぜだと思う?

 実をいうと、ReactOSはNT 5.2カーネル、つまり分かりやすく言えばWindows Server 2003 SP1やWindows XP SP3をターゲットとした実装なんだ。MicrosoftがWindows 8で目指した方向性については不満の声があるけど、そのためにより伝統的なデスクトップ環境であるNTオペレーティングシステム実装が注目されているんじゃないかな。

 ――まだほかにやることは残っているの? 開発はまだ活発に行われているの? それとも最近では、主にエンドユーザー向けサポートになってる?

 やるべきことはまだまだたくさん残っている。カーネルの主要部分の開発は終了しているし、Win32サブシステムもまずまず安定している。結構な数のアプリケーションやドライバはすでに動作するのだけど、ところどころに開発の遅れているところがあるんだ。USBや無線LANなんかの分野は最近急に進捗が進んだけど、まだメインのファイルシステムはFATだしね。

 ――このプロジェクトの開発に活発に関わっている人は人々くらい?

 時期や実生活上の繁忙期などの要因で、開発者の数は上下する。通常は30から50人くらいのアクティブなコントリビュータがいる。それ以外に関連するコミュニティメンバーを除いても、コントリビュータの総数はかなり多い。

 私自身においては、2000年よりReactOSプロジェクトでいくつかの役割を担ってきた。現在、私には2つの役割がある。1つがプロジェクトコーディネータで、もう1つがカーネルデベロッパだ。プロジェクトの両エリアに貢献できることを光栄に感じている。

 ほかの役割として、例えばZiliang Guoのように、私がさまざまな「レスポンス」を書いたり編集するのを助けてくれる人がいる。正式な肩書きは広報コーディネータで、ニュース記事を書いたり、コンベンションに参加したりプロジェクトについてプレゼンを行うデベロッパに対してアドバイスしたりするんだ。また彼はリリースエンジニアでもあり、ポイントリリースの一部として我々が用意するISOや仮想マシンイメージの構築も行う。このように、ReactOSのアクティブな開発には関係ない作業もたくさんあるんだ。

 ほかにもたくさんの人がいて、それぞれの貢献は我々にとってとても大切なんだ。詳しく知りたい人は、ReactOSのWebサイトを参照してほしい。

 ――プロジェクトはどうやってコーディネートしているの?

 オープンソースプロジェクトを管理するというのは、なかなかややこしいんだ。給料を貰っている人は誰もいないしね。数年にわたって完全無政府状態から独裁制、それから限定的民主主義まで色々な手法を試し、自分たちにしっくり合う体制を確立していったんだ。結局のところ、プロジェクトのデベロッパーは自身で何がしたいのか、そして何を助けて欲しいのかが分かっている。だから唯一存在するルールといえば、全員がReactOSに携わっていることを楽しむべきってことなんだ。

 プロジェクトにおいて組織は各自が役割を果たすのを助けるためのもので、邪魔するためのものではない。そして、やるべきことが山積していることから、指示を必要とする人もほとんどないんだ。時折、デベロッパーにバグ修正に集中してもらうために、機能フリーズやコードフリーズのような厳格な手段に頼る場合もある。

 ほかにも議論や意思決定のプロセスの一環として、定期的な月次ミーティングを行っており、コアチームメンバーが集まって計画を話し合ったり投票を行ったりしている。民主主義が登場するのはここだけで、それ以外についてはできる限り各自で方向性を決めるという、自由と開放の精神を真に貫いている。

 ――プロジェクトに参加したい人に求められるスキルとは? また、やるべきこととは?

 

 学びたいという気持ちを持っている人なら誰でも参加できるよ。いま一番優秀なテスターはコードを書いた経験のない人だけど、チーム内でもっとも優れたデバッグ技術を持っている。デベロッパーを含めても。やらなきゃならないことは、必ずどこかにある。もちろん、Windows開発の経験があれば役に立つだろう。一方で、ReactOSに参加するということも、そうした経歴を持つための最良の道の1つでもあるんだ。NTアーキテクチャに精通しているオープンソースデベロッパーの数は驚くほどに稀少で、そういった面を改善したいという願いもある。

 ――法的な問題が起きないようコード監査を継続していると理解しているが、これはただ時間ばかりがかかる活動なの? それともやりながら途中で何か気づくことがあるのか?

(訳注:かつて、流出したWindowsのソースコードにReactOSの一部の開発者がアクセスしてしまったという問題が発生した(スラドの記事)。これにより、ReactOSのソースコードがWindowsのソースコードの著作権を侵害していないかをチェックするための監査が行われる事態となった)

 コード監査は、プロジェクトにコミットされたコードの源を突き止めるために内部的に行われたんだ。この目的は達成され、最終的には不正にサブミットされたコードが存在するという証拠は何も見つからなかった。

 それ以外は特に言うことはない。究極の防御は、NTオペレーティングシステムで期待される振る舞いを調査するテストスイートを持つことだ。このプロジェクトはカーネルのテストフレームワークを使って、相当の努力を行っていきた。Win32サブシステムについては、WINEプロジェクトの提供するテストを使用した。ただ、もし十分な資金があれば、より安全性を高めるため、第三者による認定を受けられるコード監査サービスを使用する計画もある。

 ――プロジェクトの最終的なゴールは、自分の理解が正しければ、Windowsの代わりにReactOSをインストールしてもエンドユーザーがその違いに気が付かない、というものだと思っているんだけど、その最終目標にはどれくらい近づいたの? いくつか例をあげてもらえるかい?

 ReactOSは実際に、アプリケーションやドライバの一部を素晴らしい安定感で動作させられるんだ。テスターは、IntelのProシリーズのようなネットワークカードや、AC97サウンドカードなどのドライバなどをインストールできている。

 あと、多くの労力を注ぎ込んだアプリケーションのもう1つの例はFirefoxだね。Firefoxはもっとも手こずったケースの一つなんだが、少なくとも特定のバージョンで起動できるようにした。こうした成功例は必ずしも、ReactOSには想定外の行動がみられない、ということを意味するものではない。しかしコントロールされた環境では、安定性はかなり高い。Windowsの完全に代替できるようになるためには、もっともっと頑張る必要があるだろう。Windowsのバグも複製しなきゃならないからね(笑)。

 プーチン大統領もデモンストレーションを見たって読んだことがあるんだけど、ロシアではReactOSはどのような政治的関心をよんでいるの?

 ReactOSのデモンストレーションを見てくれたロシアの大統領は、実は2人いるんだ。1人がメドベージェフ氏(現ロシア首相)でもう一人がプーチン氏。政治に寄り過ぎたものは遠ざけようとしているんだが、ReactOSはどうしても注目されてしまうんだ。経費削減や特定企業のソフトウェアへの依存度を下げるために世界中の多くの政府機関がフリーソフトウェアに移行しようとしていたが、それは一筋縄ではいかなかった。中には上手くいったケースもあれば、失敗したケースもある。ロシアも例外ではない。

 うまくいかないことの大半が、Microsoft WindowsからLinuxへの乗り換え時にはユーザーの再トレーニングが必要となることに加え、Windowsアプリケーションとの互換性が失われたり、整合性がなかったりする点なんだ。人間は慣れたものを好む。だから、LinuxとWindowsのデスクトップ環境の違いはあまり大きくないとはいえ、それが過剰なフラストレーションになることもある。ReactOSはこうした問題が起きないように開発しているし、2014年でWindow XPのサポートは終了となるから、より魅力が増しているのだと思う。

 ――企業から援助を受けることを考えたことはある?

 いろんな噂を広げるようなことはしたくないけど、いま言えるのはなにか進めていることがある、ってことだね。すべてがうまくいけば、一週間以内に発表されることになる。それまでは、詳しく話せないんだが、これだけは伝えられる。Kickstarter、そしてReactOSを基とした実現可能な商業的プロダクトが絡んでくるということだ。

(訳注:この記事がSourceForge.netで公開されてからしばらく経つが、現時点では特に大きな発表はない。)

 ――貴重な時間をとってインタビューに答えてくれてありがとう。そして、「今月のプロジェクト」受賞おめでとう。