Iノード
iノード(「index node」の略)は、Linuxがファイルに関する情報を保存するために使用するデータ構造です。各iノードには、Linuxのファイルシステム内の個々のファイルやその他のオブジェクトを識別する、一意のIDがあります。
iノードには、次の情報が含まれます。
- ファイルの種類 - ファイル、フォルダー、実行可能プログラムなど
- ファイルサイズ
- タイムスタンプ - 作成、アクセス、変更の時刻
- ファイルのアクセス権 - 読み取り、書き込み、実行
- アクセス制御リスト - 特定のユーザーやグループに対するアクセス権
- ファイル保護フラグ
- ファイルの場所 - ファイルが保存されているディレクトリーパス
- リンク数 - iノードへのハードリンクの数
- 追加のファイルメタデータ
- ファイルポインター - ファイルの内容を保存するストレージブロックのアドレス
重要なのは、iノードにファイル名や実際のデータは含まれないことです。Linuxのファイルシステムでファイルが作成されると、iノード番号とファイル名が割り当てられます。この関連付けられた組み合わせにより、システム内のファイルIDに影響を与えずにファイル名を変更できます。Linuxではディレクトリーもファイルとして扱われるため、ディレクトリーの名前を変更する場合も同じです。
ファイルのデータは、ストレージデバイス上の1つ以上のブロックに分散して保存されます。iノードにはこのデータへのポインターが含まれますが、実際のデータは含まれません。そのため、識別するファイルのサイズにかかわらず、すべてのiノードは比較的小さいサイズになります。
NOTE: Linuxの各ストレージデバイスにはiノードの上限があり、ディスクをフォーマットするときに決まります。まれに、多数の小さなファイルが作成されると、完全なストレージ容量を使い切る前にiノードの上限に達することがあります。
知識をテストする