2009-05-05 9 views
3

は、Iはiノード番号の定義で仰天しています:Inode番号のデータ構造はどのようなものですか?

iノードは、UFSやext3のような伝統的なUnixスタイルのファイルシステム 上のデータ構造です。 inodeは、通常の ファイル、ディレクトリ、またはその他のファイルシステムオブジェクトに関する基本情報を格納します。 Source

したがって、すべてのiノード番号に論理的な順序がなければなりません。正面の数字から何かを直接結論できますか?

4214970 0 drwx------ 102 user staff 3.4K Feb 2 22:34 new 
5728909 0 drwx------ 3 user staff 102B Mar 25 22:11 new_new 
5415906 0 drwx------ 15 user staff 510B Mar 19 02:28 stdout_TEST 

そうでなければ、データ構造のおかげでどのようなことが分かりますか?

答えて

3

正面の番号から何かを直接結論できますか?

必ずしもそうである必要はありません。 iノードはリサイクルされます。

そうでなければ、データ構造のおかげでどのようなことが分かりますか?

チェック特定のファイルシステム(ext2とext3のための例えば/usr/include/linux/ext2_fs.h)に適切なstructの定義を含むヘッダファイル。

+0

+1を割り当てるのに問題があります –

6

iノード番号はiノードではありません。 :) inode番号をinodeの主キーと考えることができます。

inode番号の決定方法は、ファイルシステムによって異なります。いくつかのファイルシステムでは、空気中のinode番号(特にいくつかのFUSEファイルシステム)を作ることさえあります。それ以外の時間には、ディスク上の場所に直接マップされることがあります。不幸なことに、これはやや古いコンセプトです。多くの現代のファイルシステムでは、最近、内部の位置情報を32ビットの数値に圧縮することが困難です。

いずれにしても、アプリケーションプログラマーとしては、iノード番号を不透明な値として扱う必要があります(等価比較のみに適しています)。 ...)

+0

「仮想メモリのinode」という語句は、「inode numbers out of thin air」というフレーズで参照してください。 –

+0

つまり、iノード番号自体を意味します。いくつかのファイルシステムでは、inode番号を作成するための妥当な方法はありません。たとえば、FTPの上に構築されたFUSEファイルシステムがWindowsサーバーに組み込まれています。これらのファイルシステムは、それらを一意にするために必要な情報を持っていないため、実際にはそれらを一意に保つためにinode _numbers_ up-_hopefully_する必要があります。同様に、(潜在的に)2^32以上のiノードを持つ仮想ファイルシステムは、パスにユニークなinode番号 – bdonlan

関連する問題