私はなぜ私たちにinodeが必要なのか本当に理解していません。マニュアルを検索した後、マニュアルがファイルまたはディレクトリに関するいくつかのメタデータを保存することがわかりました。しかし、それはすでにディレクトリの役割ではありませんか? (サイズ、名前などを保持するファイル項目を保存します。)
ベストアンサー1
まさに実装方法です。
一部のディレクトリに対してモードを設定してみてください。
読み取ることができますがインターリーブされないように設定しますug=r
。ファイル名は表示されますが、モード、ファイルサイズなどは表示されません。
インターリーブ処理が読み取れないようにしてくださいug=x
。名前は表示されませんが、名前がわかるとモード、ファイルサイズなどがわかります。
なぜ
メタデータをディレクトリ構造の外に保持すると(つまり、名前のみ)、速度が速くなる可能性があります。不要な大量のデータを処理する必要はありません。その後、必要に応じて読むことができます。
各inodeは0個以上の名前を持つことができます(おそらく別のディレクトリにあります)。その名前を削除すると、ファイル名はゼロになりますが、そのファイルはプロセスによって開かれ続けます。名前が複数ある場合もあります。
名前を変更する方が簡単になります。 inodeの新しいディレクトリエントリ(名前)を作成し(おそらく別のディレクトリに)、古いディレクトリエントリ(名前)を削除します。
以前のファイルシステムでは、ディレクトリに..
親ディレクトリのinodeを指すエントリがありました。これを行うには、単一のファイルに複数の名前を許可することが重要です(ディレクトリはファイル形式です)。インデックスノードを複製しないことは良いことです(矛盾がなく、無駄が少なくなります)。最新のファイルシステム(例:ext3、ext4)では、これは(私が知っている限り)エミュレートされます。