タイトルTechnical Q&A》Carbon File Managerのファイルアクセスの仕組みカテゴリーTechnical Q&A, Mac OS X, Carbon/CF
作成日2002/2/16 15:1:59作成者新居雅行
fs_usageコマンドでのファイルアクセスを見ていると、Carbonアプリケーションは、/.volというディレクトリをアクセスしている点についての解説が掲載されている。これはvolfsというファイルシステムが利用しているディレクトリである。volfsはBSDシステムの上位にあって、CarbonのFile ManagerとBSDとの仲立ちをしている。BSDシステムではPOSIX形式のパスを利用したファイルアクセスしかできないが、volfsがノードIDによるアクセスなどを可能にしている。CarbonのFile Managerは、FSSpec形式のアクセスがあったとき、「/.vol/ボリュームID/ディレクトリID/ファイル名」あるいは「/.vol/ボリュームID/ノードID」形式のファイルを作るなどして、.volディレクトリ化に項目を一時的に作り、それに対してファイルの読み書きを行う。パスに変換して処理をしないのは、処理速度をかせぐためである。エイリアスはファイルのノードIDを記憶するが、こうしたアクセス方法をとっておくことで、Alias Managerはvolfs経由でアクセスを行うことで、元のファイルを移動しても参照が途切れることがないようになっている。
Mac OS X 10.1でvolfsがサポートしているボリュームはHFS Plus、HFS、AppleShare、ISO-9660、UDFとなっている。一方、サポートしていないボリュームはUFS、NFS、DOS/FAT、CDDA、SMB、WebDAVとなっている。サポートしていない場合、CarbonのFile Managerは、ノードIDについてはミュレートをしているため完全ではないため、結果的にUFSボリュームで作ったエイリアスについてはフォルダを移動するとオリジナルを見つけることはできなくなる。
この文書には、VFSのプラグインを独自に作成している場合に、volfs対応するために必要な情報も掲載されている。
関連リンクQA1113: The "/.vol" directory and "volfs"