Apple が世に放つ初めてのオープンソース OS「DarwinOS」や「Mac OS X」関係の話題をお送りします。基本的に、このページのネタを試す場合は、言うまでもなく自己責任でお願いします。
XFree86 と XAqua インストール後、Mac OS X のコンソールから、「startx -- -quartz -fakebuttons」で X が立ち上がります。Aqua から X に行く時は、Dock のアイコンをクリック。X から Aqua に戻る時は、Cmd-Opt-a を押せばよろしいです。
感想は、とにかく遅い。x11perf で 6.8/sec。LinuxPPC の 30 分の一です。ただ、再起動やログオンし直さずに X アプリが動かせるようになるという意味では、非常に便利です。また、今後、当然、アクセラレーション機能を付加したりするのでしょうし、期待がもてます。
もちろん、Mac OS X でコピーしたとすれば、Aqua では不可視となっている /mach_kernel や /usr ディレクトリなど、システムの枢要な部分がコピーされませんから、起動するはずなどありません。では、Darwin からコピーしたらどうなるのか? これが、やはり難しいのではないかという気がします。その大きなネックになっているのが、「リンク」あるいは「エイリアス」なのです。いろいろ試してみて、次のことが判明しました。名付けて「リンク問題」です。
Mac OS X の導入によって、ユーザのディスクには、Mac OS X、Darwin、Mac OS が共存するようになり、おのおのの側からファイル操作が行われ、非常に混濁した状態になります。
たとえば、Darwin(Mac OS X のコンソールで起動する BSD UNIX 部分)からln -s でシンボリックリンクを張ると、Mac OS X からもリンク(エイリアス)になる。ところが、Mac OS からそれを見ると、サイズゼロの書類となっている。
一方、Mac OS X、Mac OS で張ったリンクというのは、Darwin からは理解できない。
簡単に表にすると、
Mac OS Mac OS X Darwin
Mac OS のリンク ○ ○ ×
Mac OS X のリンク ○ ○ ×
Darwin のリンク × ○ ○
結局、
1. Mac OS のリンク(エイリアス)と Darwin (BSD) のリンクはまったく互換性がない。
2. Mac OS X のリンクは、Mac OS 互換のリンクであって Darwin からは理解できない。
3. Mac OS X から見ると、Darwin のリンクも Mac OS のリンクも理解できるが、どちらのリンクかは、まったく区別がつかない。
という法則を頭に叩き込んで使わないと、とんでもない落とし穴にハマる可能性がある。さらに複雑な法則としては、
4. Mac OS X で作ったリンクを Darwin からコピーすると、Darwin からも Mac OS X からも意味のないリンクになってしまう。
5. Darwin で作ったリンクを Mac OS X でコピーしても、整合性は維持できる。
というのも絡んでくる。結局、これを全部、理解していないと、システムの整合性を維持できないわけです。たとえば、Mac OS X で作ったリンクの入ったディレクトリを Darwin でコピーすると、Mac OS X からも Darwin からも、整合性を復活できなくなる。1つ2つならいいけれど、私の大切な文書ディレクトリは、テキスト中心に、すでに 500MB 近くまで成長しているうえ、中で相当複雑なリンクが張られています。これをおいそれと Darwin サイドから動かしたりしたら、とんでもないことになるということです。
う〜ん。これはたいへんな状況です。一般ユーザ向けの OS として、ある意味で、致命的な欠陥といってよいでしょう。今後、この件についていろいろ考えてまいりたいと思います。
XFce は、非常にライトなデスクトップ環境です。パネルは、もろ CDE 的ですが、非常に軽快な動作で、必要かつ十分な機能を提供してくれます。GNOME、KDE に比べてもひけを取らないできばえと思います。
ところが、XFce はウィンドウ・マネージャ(xfwm)やターミナル(xfterm)は動作するものの、パネルなどのツール類が動作しません。したがって、真っ黒な画面にターミナルというシンプルな状態になってしまいます。ライブラリ関係の不具合かと考えられますが、原因が分かり次第お伝えします。
まずは、よく知られた TIPS を。ログイン画面が出たところで、ユーザ・ネームに「>console」とやると、CUI 環境 = Darwin に入れます。
続いて、とりあえず X を動かしましょう。「XonX--XFree86 on Darwin and Mac OS X DP4」という素晴らしいページがあります。バイナリ版の X を導入する手続きに従えば、あっという間に X が立ち上がります。
しかし、これじゃあ寂しいと思うのが人情。そこで、何はともあれ開発環境を導入しましょう。こちらは MacAddict 9/13 付けで紹介されています。Darwin 1.02 のファイルをダウンロードしなければなりません。Darwin デヴェロッパー登録をしていない方は、すぐにしましょう。
続いて XonX ページからたどって motif、AfterStep を入れます。AfterStep が入って、ようやく GUI らしくなってきましたね。
せっかく開発環境を手に入れたのですから、X もソースから最新のものを作りましょう。ソースは Apple の Darwin ページから CVS で入手します。こちらのページに CVS のセットアップ法が書いてあります。具体的には環境変数 CVSROOT をセット後、cvs login、cvs checkout <プロジェクト名>でソースのアップデートが始まります。XonX によれば、「~/sandbox」などというディレクトリを作っていれるのが作法のようです ;)。
さらに、Darwinfo というページには、Darwin にポートされたツール、ライブラリが紹介されています。私は GTK+ を入れて、なんとか XFce を動かせればなと思っています。
さて、UNIX マシンとして使うには、やはり FTP、Telnet サーバくらいは立ち上げておかないとお話になりません。GUI ツールもいいんですが、自分の手でやっちゃわないと何となく不安ですよね ;)。
いじるファイルは、まず /etc/hosts.deny と /etc/hosts.allow の作成。hosts.deny は「ALL:ALL」、hosts.allow は「ALL: アクセスを許すマシンの IP1, IP2, ...」。続いて /etc/inetd.conf で ftp サーバと telnet サーバの行頭の「#」を取る。これが終わったら、再起動・・・なんてしてられないから、いつもの通り「kill -HUP
Darwin OS のバイナリ版については,http://www.publicsource.apple.com/projects/darwin/release.html に詳細に書かれている。Darwin OS のファイル(DarwinOS-0.2.sit)は展開すると約50.4MB。これに加え,インストールには,1GB以上の独立したハードディスク・スペースが必要である。
ファイル類は Darwin という名前のフォルダに展開される。はじめにApple Software Restoreというツールでインストール先のディスク(パーティション)を選ぶとインストールが始まる。その後,System Diskというツールで起動先を「Darwin Root」に選び,「Show Diagnostic Info During Boot(-v)」というチェックボックスをチェックしてSaveボタンを押し,再起動する。非常に簡単かつスマートなインストールである。
Darwin 起動後は、再起動(shutdown -r)すると再び Darwin に入るようになる。要するに OpenFirmware が、そういう設定になるのである。MacOS に行きたい時は、起動時に Option を押すか、PRAM をクリアすればよい。MacOS から Darwin(あるいは MacOS X Server ;))に戻りたければ、System Disk で起動先を切り替えることになる。
ちなみに、筆者は 2GB の外付け HD に入れたが、インストール後、余った分(1GB ほど)は、きちんと MacOS のパーティションのまま残しておいてくれる。
Appleが,一部とはいえOSのオープン・ソース化に踏み出した背景には,Linux,FreeBSD,GNU,Mozzila(Netscape)など既存のオープン・ソース・プログラムの存在が影響を与えているのは間違いないだろう。一方,AppleがDarwinを通じてMacintosh独自のハードウェアに適したドライバを公開するようになれば,PowerPC向けLinuxにも応用が期待できる。いずれにしてもLinuxとDarwinの間で,今後,情報の共有化を促すオープン・ソース戦略の利点が生かされていくことを願うばかりだ。
Darwin has completed!
同じく Apple WWDC で、Darwin のソースコードが完備されたことが発表されました。実際に Web ページに行ってみると、これまで欠けていた boot, DriverKit, Libsystem, objc4 が揃っていました。これで、全部コンパイルすれば動くはずです。
そして、待望のバイナリ版 Darwin がダウンロードできるようになりました。 http://www.publicsource.apple.com/projects/darwin/release.html からダウンロード可能です。ちょっと見ると、簡単に動かせそうですね。今、必死にダウンロード中でして、動かしてみたらリポートします。