Wineを開けるときがついにやって来た

 LinuxやUnix上でWindowsプログラムを実行するための超人気ソフトウェアWineの1.0リリースが、15年の開発を経て目前に迫っている。

 Wineの開発リーダーのAlexandre Julliard氏によると、このまますべて問題なく進めば、Wine 1.0は15周年の2週間後にあたる6月20日にリリースされるはずだという。Wine上にインストールしてある程度動作可能なWindowsアプリケーションは現時点で約1,300あるものの、1.0リリースに不可欠なのはPhotoshop CS2、PowerPoint Viewer 97/2003、Word Viewer 97/2003、Excel Viewer 97/2003の4つだけだと考えられている。

 主にボランティアベースの取り組みであるWineではこれまで常に、広範な品質保証テストを行うためのリソースが不足していた。多種多様なWindows環境/Windows用アプリケーション/Linuxディストリビューションが存在するため、このことは意外と大きな問題だ。Wineがこれまでに膨大な年月をテストに費やしてきたのも、Wineが置き換えようとするWindows API(Application Program Interface)の文書化が不十分でWindowsのリリースごとに大きく異なるということがその主な理由だ。

 Julliard氏は次のように説明する。「(現在の状態に到達するまでにこれほどの時間がかかったのには)いくつかの理由がある。Windows APIが大量であること、あまり文書化されていないということ、トリッキーな振る舞いや副作用も大量で、アプリケーションがそれらに依存していること。またMicrosoftが新機能を追加し続けて、それらを採用するよう開発者に売り込むため(われわれにとっては有難いことに必ずしもそれらの売り込みが成功するとは限らないのだが)、常に変化する標的であるということもある。さらにアプリケーションに関しても、ソースコードが公開されていないためアプリケーションのどこでどのような問題が発生しているのか把握しにくく、不具合を明らかにすることが簡単ではないということもある」。

 またJulliard氏は次のように述べた。「Windows用のアプリケーションは数え切れないほど存在する。大抵の人が必要とするのはその内の1つか2つなのだが、その1つか2つがどれなのかは人によってみな異なっている。そのため信頼性の高い1.0を実現するためには幅広い分野のアプリケーションをサポートする必要がある。言い換えれば、実装において何らかの手っ取り早いショートカット的な方法を用いることはできないということだ。ショートカットを行えば別の何らかのアプリケーションのどこかに必ず不具合が起こる」。

 Wineをビジネス化している、Linux/Mac OS X上でWineを利用しやすくするプログラム「Crossover Linux/Mac」の開発元CodeWeaversでCEOを務めるJeremy White氏は次のように述べた。「Wineの実現がいかに難しいことなのかは、一般には理解されていないように思う。われわれがやっていることは、言わばWindowsの一からの完全な作り直しだ。何万人もの従業員を抱えるMicrosoftでさえも、Windowsの新版――後方互換性があると言われているVistaなど――のリリースは困難を極めるものだ。われわれのような、Microsoftとは比べ物にならない少人数のまとまりのないボランティアの集まりが同じ作業を実現するというのがどういうことなのか想像してみて欲しい」。

 しかしそのような悪条件にも関わらずWineは何年のも年月を費やすことによって、よく使われるWindowsアプリケーションをLinuxユーザのPC上でも利用可能にしてきた。例を挙げれば、Microsoft Office 97/XP/2003のコアアプリケーションやInternet Explorer 6は、かなり以前からLinux上でもまったく問題なく利用することができるようになっていた。

 また完成度が高まるにつれて、通常のオフィスアプリケーションだけでなくゲームにもサポートが拡大した。例えばWorld of WarcraftやGuild Warsといった人気のオンラインゲームも今やWineでうまく動かすことができる。

 とは言え、ここまで到達するのは決して簡単ではなかった。開発の最初の5年間は、ほぼ完全にボランティアによる取り組みだった。WindowsプログラムをLinuxで利用可能にするという課題に取り組むことをコア開発者たちが決めた理由については、Julliard氏によると「当時のLinuxはまだ初期の段階にあったが、初期のユーザの目から見てもLinuxという新システムに大きな将来性があることは明らかだった。しかし当然のことながらLinuxには、Windowsには大量にあるようなエンドユーザ向けアプリケーションはまったくなかった。そのため実のところ、ではそれらのWindowsアプリケーションをどうやったら利用できるかというのはかなり自明の問いだった」とのことだ。

 Julliard氏は次のように振り返った。「当初の開発メンバーはBob Amstadt氏、Peter MacDonald氏、Eric Youngdale氏、そして私の4人だった。われわれはWindowsアプリケーションの『Hello World』を実行するプロトタイプを作成して、アイデアが成り立つことを確認した。その後Solitaire、そしてもっと大きなプログラム……と次々に試していった。最初の一年はBob Amstadt氏がメンテナを務めていたのだが、時間を取れなくなったため、その後私が交代した」。現在コア開発グループに残っているのはJulliard氏のみだが、「かれこれ10年以上に渡って取り組んでいる開発者も何人かいる」という。

 Wineが誕生したのはWindows 95が登場する前だったので、開発者たちが最初のターゲットとしたのはWindows 3.1の16ビットAPIだった。Julliard氏は次のように述べた。「最初の大きな成果はプロジェクト4年目に(当時の16ビット版の)Microsoft Officeが実行できるようになったことだ。これは目標が最後まで達成可能であることを裏付ける最初の根拠となった。当然ながらその後すぐに16ビットのアプリケーションは32ビットアプリケーションに置き換えられたため、Wineの基本部分の設計を32ビットに移行しなければならず、それだけで数年分の開発期間を費やすことになってしまった」。

 1999年を過ぎるとWineは次第に実力が認められるようになってきた。Julliard氏とWhite氏はどちらも、1999年から2000年にかけてのCorel Corpによる多額の投資がWineにとっての大きな一歩となったと考えている。またJulliard氏は「もう一つ画期的なこととして、Corelが同社のアプリケーションスイート(WordPerfect Office)をLinuxに移植する際にWineを採用したということもあった。ビジネス的には成功しなかったものの、Wineの知名度と信頼性という点では大きな飛躍だった」ともした。なおLinux版WordPerfectは現在アバンダンウェアとしてのみ存在している。

 1999年White氏と何人かのWineサポータは、Wineで生計を立てることとWine開発を進展させることとを両立させる手段としてCodeWeaversを設立した。その後Wineは徐々に勢いを増していった。2002年にはデスクトップLinuxのディストリビュータであるLinspire(当時の名称はLindows)がMicrosoft Office関連のWineの開発に対する資金的な援助を開始した。またLinspireは年に一度開催されるWine開発者会議のスポンサーにもなった。

 しかし残念なことに、ちょうどその頃、その後結果としてオープンソースのWineプロジェクトとLinux上でWindowsプログラムを使用するための半プロプライエタリのプログラムのCedegaとへのフォークを引き起こしてしまうことになる出来事が起こった。つまり、プロプライエタリ企業のTransgamingがWineのDirectXコードを使用して、(オープンソースプロジェクトのWineXを経由して)プロプライエタリなDirectXソフトウェアであるCedegaを作成したのだ。当時WineはX11(MITオープンソース)ライセンスの下で公開されていたため、それは起こり得ることだった。現在ではWineはLGPL(GNU劣等一般公衆利用許諾契約書)の下にあるため、プロプライエタリなプログラムにフォークすることは不可能になっている。

 2006年に行われたNewsForgeのインタビュー翻訳記事)でWhite氏は、このフォークが原因でWine開発は何年かの間減速したと述べている。「ボランティアのWine開発者たちの主な関心事は当初からずっとゲームだった。したがって初期(1993年から2000年頃)のWine開発ではゲームに最大の焦点が当てられていた。そのような状況の中Transgamingが2001年に設立され、彼らが行うDirectXの改良はWineに対して公開して還元するということを約束した。そしてその結果としてWineでのゲーム関連の開発熱は冷めてしまった――近いうちにTransgamingによる改良が還元されるというのであれば、われわれがDirectXに取り組む意味はあまりないように感じられたためだ。ところが実際には意味のある改良は一度も還元されることはなく、Wineの中でも正に最高の得意分野だったところに大きな穴が空いた結果となってしまった」。とは言え、その後、White氏によれば「Wineコミュニティは2007年頃にはTransgamingによって空けられた穴を修復することができた」とのことだ。

 次の大きな進展は2005年で、AppleがMacのアーキテクチャをIntelプロセッサに移行したことだ。これによりWineに新たな潜在市場が生まれたため、CodeWeaversはWineのMac OS X移植作業翻訳記事)に投資し始めた。

 最大の励みになったのは、2006年のGoogleの参加だ。White氏は次のように述べた。「実はこのことは一人の人がどれほどの影響を与え得るかを表わす顕著な例だ。というのも、Googleも関わっていると言えばとても聞こえが良いが、率直に事実を言えば、たまたまGoogleで働いていたDan Kegel氏(Wineのリリースマネージャ)が関わっていたのが決め手だったからだ」。

 Googleの最初の開発支援は、同社の人気の高い写真用無料プログラムPicasaをLinux上で利用可能にするためのCodeWeaversによる作業に対して資金的な援助をすることだった。またAdobe Photoshop CS/CS2のサポートのためのCodeWeaversによる作業にも資金援助が行われた。Kegel氏はGoogle Open Sourceブログの最近の記事の中で次のように述べている。「Photoshopは、デスクトップLinuxユーザが常に声高に欲しがっていたアプリケーションの一つだったので、かなりうまく動くと言うことができるようになって嬉しい」。

 White氏は、今後もWindowsアプリケーションがLinux上でさらにうまく動くようになって欲しいと願っている。しかし今の時点でも十分にうまく動くようになっているとのことだ。「いちばん知って欲しいことは、Wine 1.0は、3年前のWineとはもちろんのこと、2年前のWineともまったく違うということだ。Wine 1.0を使えばかなりすごいことができる――だから是非一度試してみて欲しい」。

 またJulliard氏は、今後もWine開発者たちにはさらに大量の作業が残されていると考えている。「サポートしたいものがまだたくさんある。USBデバイス、64ビットのアプリケーション、.Netアプリケーション、ユーザインタフェースのテーマ、Mac OSネイティブのインターフェースなど。それに、Microsoftが開発し続けている新機能のすべてと、Wineのすでに実装済みの機能がまだ抱えている非互換性のすべて。今後の15年間も休む暇がないほどたくさんある」。

Steven J. Vaughan-Nicholsは、PCに最適なOSがCP/M-80で、自分のコンピュータで2BSD Unixを使うのがクールだった時代から技術と技術業界についての記事を執筆している。

Linux.com 原文