私は現在Linuxファイルシステムについて学んでいます。これまでに私が学んだことは次のとおりです。
- ディレクトリは、ファイル名やinode番号などの情報を含むファイルです。
- 各inode番号のデータ構造を含むinodeテーブルがあります。このデータ構造には、所有者ID、グループID、ファイルサイズ、その他の情報が含まれます。
今、inodeデータ構造にはディスク上のファイルの物理アドレスも含まれていますか?または、ディスク上のファイルの物理アドレスを知っている他のデータ構造のアドレスのみが含まれていますか?
答え1
これはファイルシステムの種類によって異なります。ただし、ほとんどのファイルシステムでは、inode(またはdinode)には最初のいくつかのデータブロック(「直接ブロック」と呼ばれる)のアドレスが含まれ、より大きなファイルの場合は「間接ブロック」自体のアドレスが次のポイントに格納されます。 。データブロックを追加するためのポインタです。
バラよりインデックスノードポインタ構造詳しくはWikipediaのページをご覧ください。
学習目的のために、比較的単純な構造を持つUFSファイルシステムを調べることをお勧めします。バラよりUFSダイオード構造、特に直接および間接ブロックへのポインタdi_db
の場合。di_ib