残念なお知らせがあります。10月29日、「itojun」こと萩野純一郎氏が逝去されました(WIDEプロジェクトによる訃報)。特にBSD系UNIXのハッカーとして著名な方でしたが、かつてOS Xには氏が開発したvi系テキストエディタ「nvi」が収録されていましたし、OS XのIPv6プロトコルスタックには氏が尽力したKAMEプロジェクトのコードが採用されるなど、OS X/Darwinの発展にも間接的に寄与しています。itojunさん、どうか安らかにお休みください。

さて、今回は「Mac OS X 10.5(Leopard)」について。書きたいこと・書かねばならぬことは山ほどあるが、まずはTerminalでファイルシステムを眺めるところから始めてみよう。

/」以下をザッと眺める

Terminalを起動してLeopardの探索を始めると、いろいろ仕様が変わっていることがわかる。まずは、ホームディレクトリを手始めに、ルートからシステムフォルダまでを眺めて気付いた変更点を報告しよう。

ホームディレクトリに生じた最大の変更点は、「Downloads」フォルダの出現だろう。Safariでファイルをダウンロードするときのデフォルトのフォルダに指定され、Dockの仕分け線より右側にフォルダを登録する新機能「スタックス」により、直近にダウンロードされたファイルがDock最前面に表示される。DocumentsPicturesなど既存のものと比較すると、一時利用の性格が色濃いフォルダではあるが、OS Xの使い方に大きく影響することは確かだ。

ルートディレクトリには、Tigerまで確かに存在した「mach」と「mach.sym」、「mach_kernel」のうち、「mach」と「mach.sym」が消え、代わりに「mach_kernel.ctfsys」というファイルが用意されている。そのうち「mach.sym」は/var/runディレクトリに移されたが、「sysctl -n kern.symfile」を実行してもなにも表示されない(Tigerまでは/mach.symと表示された)。どうやらカーネルが起動するまでの仕組みに変更があったようで、これはカーネルのソースコードを調べないかぎりわからなそうだ。

システムフォルダに目を移すと、「BridgeSupport」や「Compositions」などのフォルダが追加されていることがわかる。そのうち特筆すべきは「Compositions」フォルダで、前のTigerで登場したQuartz Composerのプラグインが多数収録されている。新しいPhoto Boothには、楽しい表示効果がいろいろ追加されているが、そのうちのいくつかはQuartz Composerによるもの。Tigerのときは、その内容にしては目立たない知る人ぞ知る機能だっただけに、今後の展開に期待したいところだ。

意外に楽しい「Photo Booth」。これを機にQuartz Composerを見直そう

そのシステムフォルダの核ともいえる「CoreServices」フォルダだが、ついに「Classicスタートアップ」が消えた(もちろんPowerPC版の話)。念には念を入れ、Tigerから「Classic.prefPane」をLeopard側へコピーしたうえで「Classicスタートアップ」を実行してみたが、やはり起動に失敗。Classicアプリを起動しようとしたときのメッセージも、「アプリケーション×××は、Classic環境に対応しなくなったため、起動できません」とあるので、Classic環境は完全に廃止されたと見るべきだろう。

ついにSimpleTextも"通行止め"に

謎の「@」を探る

lsコマンドやEmacsのDiredを実行すると気付くのが、ファイルのパーミッション情報の末尾に表示される「@」の記号。Tigerでは表示されなかったので、lsの仕様変更には違いないが、その意味するところは誰しも気になるはず。

そこで「man ls」してみると、「-l」オプションの項目には「ファイルまたはディレクトリの属性情報が拡張されている場合、パーミッションフィールドの末尾に「@」が表示される」とある。これはTigerでサポートされた拡張属性(Extended Attribute)にlsが標準対応したと解釈すればいいらしく、実際/usrディレクトリ以下のファイルなど、Finderの不可視領域にあるファイル(Finder情報が付加される可能性の低いファイル)には「@」がほぼ見当たらない。

ちなみに、Windowsの共有領域などHFS+以外のボリュームへ「@」付きのファイルをコピーすると、Apple Doubleのメカニズムが動作する。すなわち、同じディレクトリに「._」で始まるファイルが作成され、そこへ拡張属性が保存されるわけだ。lsコマンドも心得たもので、「._」ファイルがある場合はしっかり「@」を表示し、削除すると「@」は消える。一度試してみよう。

謎の「@」への疑問もこれで氷解する?