|
Cygwin の問題点〜使い勝手と互換性のバランス
Cygwin は幅広い UNIX 関連 API をサポートし、今では殆どのコマンドやアプリケーションが再コンパイルで稼動させることができます。Windows ファイルシステム上で動作するため、UNIX コマンドで加工したファイルをそのままWindowsのアプリケーションに取り込むことも可能です。実際、筆者ももう10年近く使っていますが、今では使い勝手の面では極めて優れています。
一方でパフォーマンスや互換性の面で、必ずしも完全ではありません。一般的なコマンドの実行においてCygwinのパフォーマンスはそれほど気になるものではありませんが、共有ライブラリの中では逐次UNIX APIからWindows APIへの置換が行われているため、Windowsの高負荷時には当然パフォーマンスは低下します。
また、Cygwin での動作テストは UNIX サーバ上で動作することを何ら保障するものではありません。たとえスクリプト言語によるプログラムであっても、Windows上では厳密にチェックされないパーミッションやコードの問題でUNIXサーバ上では動作しないことは、ままあります。
Windows PC 上でネイティブの Linux が走る
coLinux は Windows と Linux を並存させるソフトウェアです。
coLinux と 起動用の Linux ディスクイメージを導入することで、Windows 上からサービスとしてネイティブの Linux を起動できるようになります。Linux のディストリビューションには依存しないため、多様なディスクイメージが作成されています。筆者は Debian のイメージを使用しています。
ディスクイメージを利用する点ではVirtualPCやVMwareのようなエミュレーションに近い使い勝手です。ただし、coLinux はイメージファイルに限らずディスクパーティションを使用することも可能です。
また、見た目で言えば coLinux には コンソールや X などに用いるような固有のウィンドウはありません(コンソール表示を行うアプリケーションは用意されています)。
Windows と並列して起動する Linux は仮想的なネットワークを通じてWindowsと同一セグメントに存在する形になります。Windows から仮想的なネットワークへは colinuxと同時にインストールされる TAP-win32 を通じて、TeraTermなどのターミナルソフトや X サーバから接続します。Windows からIPアドレスを指定してcoLinux 上で実行中のサービスに接続することも可能です。
逆に coLinux 上から Windows や外のネットワークへも TAP を介して接続することができます。
結果として、まさにもう一台、見えない Linux サーバを設置したかのように使うことが可能です。ノートPCに導入すれば2台持ち歩いている感覚です。
Samba/coFS で使い勝手も高いcolinux
ネットワーク上のLinuxサーバとのやりとりの場合、ファイル転送にSAMBAやFTPなどを利用する必要がありますが、coLinux の場合、加えて coFS という仕組みにより、同一PC上で稼動しているWindowsの任意のディレクトリをcoLinux上にマウントすることも可能です。このあたりは VirtualPC などのエミュレータとは一線を画しています。
Cygwin と同様に、Windows のファイルを coLinux で加工して、再度 Windows のアプリケーションで開くようなことも簡単にできます。この逆、coLinux のファイルシステム上のファイルを Windows のアプリケーションで開く場合には、一旦シャットダウンして explore2fs でイメージファイルから直接取り出すか、samba を導入して Windows 上からマウントすることになります。coFS と samba の併用で個人的にはファイルシステムを完全に共用する cygwin と同レベルの使いやすい環境になると感じています。
ちなみにsambaの導入はapt-getでsambaとswatを導入して、Windows のブラウザからcolinux の swat にアクセスすれば簡単に設定できます。
互換性は完全、かつ高速
coLinux は Linux そのものですから、再コンパイル時にソースの変更は必要ないだけでなく、バイナリレベルでも互換性があります。Linux システムのアップデート(rpmやaptなど)なども通常の配布パッケージをそのままダウンロードして使うことができますし、開発などにおいても coLinux 上でのテストであれば Linux サーバでの動作テストとみなすことが可能です。
速度に関して意識することはあまりありませんが、コンソールでの利用に限っても、Cygwinと比べてレスポンスが速いのがわかります。ただ、Windows 側のパフォーマンスには影響します。
X Window 〜 使っていません
coLinux の利用においてももちろん X Window の利用は可能ですが…そもそもWindowsという極めてリッチで重いGUIが動作しているのに、なぜ X を使う必要があるのでしょうか?? 複数コンソールが必要であれば screen コマンドでも、Poderosa のようなタブ型ターミナルソフトでも、ターミナルソフトを複数開くでもよいでしょう。特殊な商用アプリケーションなど、どうしても X の必要なものもあるとは思いますが、Windows 上で X のアプリケーションを開発したいというような、X の使用が目的化している場合を除けば、Windows 上では X など必要ないでしょう。今時アプリケーションのフロントも X で作るというより Web ブラウザで操作できるように Webアプリケーションとして開発するのが通常かと思います。ましてや coLinux を導入するのにもかかわらず、X サーバを動作させるためだけに機能と目的が重複する Cygwin も導入するという MLDmini のような製品はなんとも疑問です(Cygwinに特化した X on Windows は理解できたのですが)。
夢が現実に
以前、'92年頃に Sun と Mac を両用していたとき、Stableな UNIX と 使い勝手の良い Mac が一体化すれば最強と思っていました。現在それは MacOSX という形で実現していますが、Linux と Windows が一体化する coLinux も別の強みを持つ最強タッグになったと思います。OSX ほどの完成度はありませんが、利用できるソフトウェア資産の面では並ぶものはないでしょう。
【2006.7.20 update】
7月に安定版0.6.4がリリースになっています。NTFS-3Gもベータになっていますので、COFSも安定しつつあるのかもしれませんね。
長所:完全な互換性と使い勝手、パフォーマンスのバランス
短所:導入がやや面倒(Linux ユーザなら難しくないか)
★★★★★(2005.10.10)
|