inode データ構造にはディスク上のファイルの実際のアドレスが含まれていますか?

inode データ構造にはディスク上のファイルの実際のアドレスが含まれていますか?

現在、Linux ファイルシステムについて学習中です。これまでに学習した内容は次のとおりです。

  • ディレクトリは、ファイル名と inode 番号などの情報を含むファイルです。
  • 各 inode 番号のデータ構造を含む inode テーブルがあります。このデータ構造には、所有者 ID、グループ ID、ファイルのサイズなどの情報が含まれています。

では、inode データ構造にはディスク上のファイルの実際のアドレスも含まれるのでしょうか、それともディスク上のファイルの実際のアドレスを認識している他のデータ構造のアドレスのみが含まれるのでしょうか?

答え1

これはファイルシステムの種類によって異なります。ただし、ほとんどのファイルシステムでは、inode (または dinode) には最初の 2 つのデータ ブロック (「直接ブロック」と呼ばれる) のアドレスが含まれ、さらに大きなファイルの場合は、追加のデータ ブロックへのポインタを格納する「間接ブロック」のアドレスが含まれます。

見るInode_pointer_structure詳細についてはWikipediaのページをご覧ください。

学習目的であれば、比較的単純な構造を持つUFSファイルシステムを見ることをお勧めします。UFSダイオード構造、具体的にはdi_dbdi_ib直接ブロックと間接ブロックへのポインター用です。

関連情報