シェルから定番アーカイバ「tar」を使用したとき、その変化に気付いただろうか? 実は、Snow Leopardのtarコマンドは、Leopardの「GNU tar 1.15.1」から「BSD tar 2.6.2」に置き換えられているのだ。
調べてみると、/usr/bin/tar
には、Leopardのときは存在しなかったライブラリ(/usr/lib/libarchive
)がリンクされている。このライブラリはFreeBSD 5.3に正式採用されたもので、NetBSDおよびFreeBSDの成果を取り入れているMac OS Xはその流れを受けたものと考えられる。
このBSD tar、用法やオプションはGNU tarと大きく変わらないが、bzip2で圧縮されたファイルを「z
」オプションで展開できるという隠れた(?)メリットがある。GNU tarのときは、「tjf
」とすべきところをうっかり「tar tzf
」としてしまい展開できないという失敗を繰り返していた筆者だが、「j
」でも「z
」でも快く展開してくれるBSD tarは扱いやすい。「-y
」オプションがあるなどGNU tarとの機能差は多少あるが、アーカイバとしての基本機能はほぼ同じだ。
HDDの空き容量が増えた理由
Snow Leopardリリース前にアピールされていた「HDDの空き容量増加」。PowerPCバイナリを取り去るなど、不要となったリソースの除去を中心とした"ダイエット"もその理由の1つだが、さり気なくファイルシステム「HFS+」の改良も行われている。これは、WWDCの基調講演では特に触れられていなかったことだ。
仕様の変更により、一部後方互換性が失われている。Snow Leopardをインストールしたマシンをターゲットモードで起動し、Tigerが動作するマシンにマウントしたところ、通常のフォルダ/ファイルには変わらずアクセスできたが、アプリケーションは変化していた。バンドル内部にある実行ファイルはファイルサイズが「0」、Fileコマンドで確認しても「empty」と表示されるのだ(下図参照)。
HFS+に圧縮機能が追加されていることもわかる。Finderの情報ウインドウでプレビュー(Preview.app)のサイズを確認したところ、Tigerで測ったときは14.6MB、Snow Leopardで測ったときは34.9MB。Tigerで測定したときの容量が物理的なディスク消費量とすると、約4割のサイズにまで圧縮されている計算だ。
旧バージョンのOSでSnow Leopardのアプリケーションを見たとき、車両通行止めのマークが表示されるのは、圧縮されたデータにアクセスさせないという配慮があるのだろう。いずれにしてもこのHFS+の仕様変更は興味深く、検証を重ねたうえで再度ご報告したいと考えている。