ファイルシステムの比較


Mac OS X上の二つの主要なファイルシステム、HFS+とUFSの間には、重要な違いが多数存在します。多くの場合に、こうした違いはMac OS Xのために開発されたプログラムに影響を与えます。以下の一覧は、これらのファイルシステムの間の主な違いを要約したものです(これらの記述の多くは、HFS+同様にHFSにも適用されます)…

  • 大文字と小文字の区別。UFSは大文字と小文字を区別します。HFS+は大文字と小文字を区別しませんが、大文字と小文字の違いを維持します。 【10.4では大文字と小文字を区別するHFS+も選択可能。】
  • 複数フォーク。HFS+は複数フォーク(および追加メタデータ)に対応するのに対し、UFSは単一フォークにのみ対応しています。(UFSのような、複数フォークに非対応のファイルシステム上では、Carbonが複数フォークをシミュレートします。)
  • パスの区切り文字。HFS+はパスの区切り文字にコロンを用いるのに対し、UFSはフォワードスラッシュの慣例に従います。システムはこれらの区切り文字の間で変換を行います。
  • 日付の変更。HFS+はファイルのメタデータとして、作成日と変更日の両方に対応しています。UFSは変更日には対応するものの、作成日には対応しません。もしあなたが、変更日は理解しても作成日を理解しないコマンドでファイルをコピーしたら、コマンドはコピーされた新しいファイルの作成日に合わせて、変更日をリセットしてしまうでしょう。この振る舞いのために、変更日よりも作成日が遅いファイルがありえます。
  • 希薄ファイルとゼロ埋めUFSは希薄ファイル、すなわち、ファイルのために確保された未使用の空間を記録せずに、ファイルにデータを記録する、ファイルシステムのための方法に対応しています。HFS+は希薄ファイルに対応しておらず【ディスクユーティリティの「スパースディスクイメージ」は別物なのだろうか?】、そのため、ファイルのために確保されたすべてのバイトは、end-of-fileまでゼロで埋められます。
  • ファイルシステムへの軽量な参照。「エイリアスとシンボリックリンク」(57ページ)を参照してください。

加えて、各ファイルシステムに歴史的に結び付いているインタフェースは、時として異なる振る舞いを持ちます。たとえば、BSD(またはBSD派生)インタフェースを用いるプログラムは、開いているファイルを削除できます。一方、Carbonプログラムは閉じたファイルだけを削除することができます。

表 1はUFSとHFS+ファイルシステムにおける機能の比較の要約を提供しています。

表 1 機能の比較

機能 HFS+ UFS
大文字と小文字の区別 しない【10.4では選択可能】 する
複数ファイルフォーク対応 する しない
パス区切り文字 ":" "/"

機能 HFS+ UFS
変更日の対応 する する
作成日の対応 する しない
希薄ファイルの対応 しない する
ファイルのゼロ埋めの対応 する しない
エイリアスの対応 する しない
シンボリックリンクの対応 する する
ACLsの対応 する しない