第7回 HFS、HFS Plusの基本的概念【前編】:Undocumented Mac OS X(4/4 ページ)
Mac OS XのデフォルトファイルシステムHFS Plus。今回はその基本的概念をはじめ、HFSおよびHFS Plus共通の機能を解説する。
エクステントオーバーフローファイル
カタログノードには、8つのエクステントが記録される。8つ以下のエクステントで表現されている限りは、ディスクの連続領域に対する直接参照となるため高速にアクセスできる。しかし、ディスクの断片化が進んだ、またあるいはファイルが非常に大きくなってくると連続領域が確保できなくなり、8つのエクステントでは足りなくなることもある。そんなときに使われるのがエクステントオーバーフローファイルだ。 エクステントオーバーフローファイルは、カタログファイルと同じB-Tree構造を持つ。そのキーとなる構造(HFSPlusExtentKey)はファイルのCNIDに加え、どのフォークなのか、そしてファイルの先頭から通算で何アロケーションブロック目からを格納しているか(startBlock)を格納している(リスト4)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
このキーでエクステントオーバーフローファイルを検索すると、また8つのエクステントを取得できる。16のエクステント以上になった場合は、またエクステントオーバーフローファイルを検索する。このとき、startBlockが加算されているため、別のキーになることに注意されたい。
エクステントによる効率の良いディスク領域の管理と、カタログファイルのB-Treeを用いた強力な検索能力を伴うファイル情報の管理、この2つがHFS Plusの要だ。
次回は
今回紹介したもの以外にもHFS Plusにはいろいろと興味深い機能や仕様がある。次回は、そうしたものをトピックごとに説明しよう。
本記事は、オープンソースマガジン2006年2月号「Undocumented Mac OS X」を再構成したものです。
関連記事
- 連載第1回 initを置き換えるlaunchd【前編】
UNIX使いに真のMACPOWERを! 本連載では、UNIX使いに向け、UNIX系OSとしてのMac OS Xを解説していく。記念すべき第1回では、initに代わるものとしてMac OS X Tigerで採用された、launchdを紹介しよう。 - 連載第2回 initを置き換えるlaunchd【後編】
- 連載第3回:plist(プロパティリスト)とFoundation【前編】
Mac OS Xにおいてオブジェクトの永続化に用いられるファイル形式plist。今回から2回にわたって、plistとこれに対応するFoundationフレームワークがMac OS Xをどのように支えているのか解説する。 - 連載第4回:plist(プロパティリスト)とFoundation【後編】
- 連載第5回:OpenDirectory
Mac OS Xにはじめて触ったUNIX使いが戸惑う要素として、先進的なアカウント管理機構OpenDirectoryがある。今回はその仕組みを解き明かしていく。 - 連載第6回:迷走の痕跡を抱えるMac OS XのOpenDirectory
Copyright © ITmedia, Inc. All Rights Reserved.