スーパーブロック、アノード、ディレクトリエントリ、ファイルとは何ですか?

スーパーブロック、アノード、ディレクトリエントリ、ファイルとは何ですか?

記事からLinuxファイルシステムの分析著者:M. Tim Jones私は、Linuxがすべてのファイルシステムを共通のオブジェクトセットの観点から見ることを読んだ。スーパーブロックインデックスノードディレクトリエントリそして文書。この段落の残りの部分では上記を説明していますが、この説明はあまり満足できません。

誰かが私にこの用語を説明できますか?

答え1

まず第一に、私はこれがあなたの質問の用語の1つではないことを知っています。メタデータ。簡単に言えば、メタデータはWikipediaから盗まれたものであり、データに関するデータです。つまり、メタデータにはデータに関する情報が含まれています。たとえば、私が車​​を所有している場合は、自動車に関する一連の情報がありますが、その情報は自動車自体の一部ではありません。登録番号、メーカー、モデル、製造年度、保険情報およびその他の情報。これらすべての情報を総合的にメタデータと呼びます。将来的には、LinuxおよびUNIXファイルシステムでは、メタデータが複数の組織レベルに存在します。

これスーパーブロックデフォルトでは、ファイルシステムメタデータは、ファイルシステムの種類、サイズ、状態、およびその他のメタデータ構造(メタデータのメタデータ)を定義する情報です。スーパーブロックはファイルシステムにとって非常に重要であるため、各ファイルシステムに対して複数の重複コピーに保存されます。スーパーブロックは、ファイルシステムの非常に「高レベル」のメタデータ構造です。たとえば、パーティションのスーパーブロック/ varが破損している場合、オペレーティングシステムは問題のあるファイルシステム(/ var)をマウントできません。通常、この場合はfsckスーパーブロックの代替バックアップコピーを自動的に選択し、ファイルシステムの復元を試みる必要があります。バックアップコピー自体はファイルシステム全体に分散したブロックグループに保存され、最初のコピーはパーティションの先頭から1ブロックオフセットに保存されます。これは、手動回復が必要な場合に重要です。次のコマンドを使用すると、ext2/ext3/ext4スーパーブロックバックアップに関する情報を表示できます。dumpe2fs /dev/foo | grep -i superblockこれは手動で復元しようとするときに便利です。 dumpe2fsコマンドが次の行を出力するとしますBackup superblock at 163840, Group descriptors at 163841-163841。この情報とファイルシステム構造に関するその他の知識を使用して、このスーパーブロックバックアップを試すことができます/sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo。この例では、ブロックサイズを1024バイトと仮定しています。

一つインデックスノードファイルシステムに存在するか、ファイルシステムに存在し、ファイルのメタデータを表します。明確に言えば、LinuxまたはUNIXシステムのすべてのオブジェクトは、物理ファイル、ディレクトリ、デバイスなどです。 inodeに含まれているメタデータには、人間が認識できるファイル名がなく、後で重要になります。 Inodeには、本質的に所有権(ユーザー、グループ)、アクセスモード(読み取り、書き込み、実行権限)、ファイルタイプ、およびファイルの内容を含むデータブロックに関する情報が含まれています。

ディレクトリエントリinode番号をファイル名に関連付けてinodeとファイルを一緒に固定する接着剤です。ディレクトリエントリもディレクトリキャッシュで機能し、より高速なアクセスに最も頻繁に使用されるファイルを理想的に保存します。ファイルシステムの巡回はディレクトリとそのファイルとの関係を維持するので、dentryのもう一つの側面です。

文書、人間が単語を見るときに一般的に考えているだけでなく、実際には論理的に関連するランダムなデータの集まりです。上記の追跡のために行われたすべての作業を考慮すると、比較的退屈です。

私はいくつかの文だけではこれらの概念の完全な説明を提供することができないことを理解しているので、必要に応じて詳細についてお問い合わせください。

答え2

文書

ファイルは特定の順序で並べられたバイトバンドルです。これは一般の人々がファイルの内容と呼ぶものです。 Linux は、ファイルを開くと、ファイルが保存されている場所とそのファイルを使用するプロセスに関するデータを保持するファイルオブジェクトも作成します。ファイルが閉じられると、ファイルオブジェクト(ファイルデータ自体ではない)が削除されます。

インデックスノード

inode(「インデックスノード」の略)は、Linuxに格納されているファイルの属性のセットです。すべてのファイルにはinodeがあります(一部のファイルシステムでは、情報はファイルシステム全体に分散されるため、Linuxは独自のinodeを生成する必要があります)。 inodeには、ファイル所有者、ファイルサイズ、ファイルを開くことができる人などの情報が格納されます。各inodeには、ファイルシステムパーティションに固有の番号も含まれています。これは inode が記述するファイルのシリアル番号と同じです。

デンツリー

dentry(「ディレクトリエントリ」の略)は、Linuxカーネルがディレクトリのファイル階層を追跡するために使用することです。各ディレクトリエントリは、inode番号をファイル名と親ディレクトリにマッピングします。

スーパーブロック

スーパーブロックはファイルシステムのユニークなデータ構造です(損傷を防ぐために複数のコピーがありますが)。スーパーブロックは、どのinodeが最上位ディレクトリであるか、使用しているファイルシステムの種類など、ファイルシステムのメタデータを保持します。

答え3

スーパーブロック、インデックスノード(またはインデックスノード)、ディレクトリエントリ(またはディレクトリエントリ) ついに、文書オブジェクトは次の一部です。VFS(仮想ファイルシステム)または仮想ファイルシステムスイッチ。 VFSの目的は、クライアントアプリケーションが均一な方法でさまざまな種類の特定のファイルシステムにアクセスできるようにすることです。

VFSの主要オブジェクト間の関係

ここに画像の説明を入力してください。


一つインデックスノードUnix/Linux ファイルシステムのデータ構造です。 Inodeは、一般的なファイル、ディレクトリ、またはその他のファイルシステムオブジェクトのメタデータを保存します。 Inodeはファイルとデータの間のインタフェースとして機能します。 inodeはファイルやディレクトリを参照したり、他のオブジェクトへのシンボリックリンクを参照したりできます。これには、一意の番号(i番号)、ファイル属性(日付、サイズ、読み取り/書き込み権限を含む)、およびファイルの場所へのポインタ(ファイル名とファイルデータではありません)が含まれます。これはDOS / Windowsの世界のFATテーブルに対応します。

プログラム、サービス、テキスト、画像など文書。入力および出力デバイス、および一般にすべてのデバイスが考慮されます。文書、システムに応じて。

これスーパーブロックファイルシステムの上位レベルのメタデータのコンテナ。スーパーブロックは、ディスク(実際には冗長性のためにディスク上の複数の場所)とメモリに存在する構造です。これはファイルシステムの管理パラメータ(ブロックの総数、空きブロック、ルートinodeなど)を定義し、ディスクファイルシステムを操作するための基盤を提供します。

Dentry はファイルと Inode 間のインタフェースです。ディレクトリエントリもディレクトリキャッシュで機能し、より高速なアクセスに最も頻繁に使用されるファイルを理想的に保存します。

源泉

答え4

この用語は Linux に限定されず、ファイルシステムにのみ適用されます。現在、UnixおよびUnixファミリーシステムで使用されているほとんどのファイルシステムは、スーパーブロックとinodeイディオムを定義した元のUnixファイルシステムから派生またはインスピレーションを受けました。 Linuxはまた、スーパーブロックおよび/またはinodeの概念なしに複数のファイルシステムをマウントすることができ、最も一般的なものはFATです。もう1つはスーパーブロックを使用しないZFSです。

関連情報