前のページ 目次へ

2.NTFSの内部構造

システムファイルシステムはファイルシステムを記述しているファイル レコードであり、ファイルシステムを実装するために使われるものです。

それぞれのシステムファイルは、次のような役割を持っています。

以上が、システムファイルとしてNTFSを管理するためのファイルです。 通常のファイルは、図で示したように、スモールファイル(ディレクトリ) とラージファイル(ディレクトリ)で構造が異なります。NTFSではファイル とディレクトリは同じ形式で扱われます。

スモールファイル(ディレクトリ)は一つのレコードで収まる形になって おり、以下に示す構造をしています。

NTFSファイルはマスタファイルテーブルにファイル管理用8つのファイル レコードを持ち、17番目以降のレコードはユーザファイル(ディレクトリ) に使用されます。このようにマスタファイルテーブルにはユーザファイル (ディレクトリ)のためのスペースがありますが、その配列はレコードを 業とし、属性を列とするリレーショナルデータベースの形式になっています。 このように、NTFSはファイルやディレクトリの属性の集合体として マスタファイルテーブル上で実現しています。

NTFSは以下に示すようにディレクトリやファイルをバイナリデータとして ではなく属性の集合体として扱います。NTFSは各属性をバイトのストリーム として格納しており、属性のストリームを参照します。 このマスタファイルデーぶるの一つのレコードに属性が完全に入りきらない ファイルやディレクトリをラージファイル、ラージディレクトリといい、 エクステント領域をもった形式をとります。

例えば、ファイルの属性の「データ」がマスタファイルテーブルに入らない 場合、以下に示すように、マスタファイルテーブルとは別のディスク スペースに2KBのエクステント領域を取ります。

その後さらに大きくなると別のエクステント領域を取ります。このエクステント はB+ツリー構造の形式で拡張していきます。

2つのデータエクステントのラージファイルのためのMFTファイルレコード

ラージディレクトリの属性のインデックスルートは多くのファイル インデックスを持つためのマスタファイルテーブルに1レコードで 納まりません。そこでインデックスバッファーと呼ばれるエクステント にインデックスルートの一部を格納します。

ラージファイルのMFTファイルレコード


前のページ 目次へ