メインコンテンツへ
ソフトウェア

Linuxのファイルシステムにおける iノード(inode)の説明として、適切なものはどれか。

ア.ファイルのデータが格納されたディスクブロックの位置、ファイルサイズ、パーミッション、所有者などのメタデータを管理する。正解
イ.ファイルの実際のデータ(内容)を格納する領域であり、ファイルごとに1つ割り当てられる。
ウ.ファイル名とファイルの実体を対応付けるエントリであり、ディレクトリ検索の際に参照される。
エ.ファイルシステム全体の空きブロック数や総ブロック数などの管理情報を保持する特殊な領域である。

解説

iノードは「ファイルの住民票」です。名前も引越し先(データ本体)も書いてあるわけではなく、そのファイルのサイズ・属性・データの所在地(ブロック番号)だけが記録されています。

なぜ ア が正解か

Linuxのファイルシステムでは、ファイルごとにiノードが1つ割り当てられ、データブロックへのポインタ・ファイルサイズ・タイムスタンプ・所有者・パーミッションなどのメタデータを保持します。重要なのは「ファイル名」はiノードに含まれないという点で、名前はディレクトリエントリ側に記録されます。これがハードリンクで複数の名前から同じiノードを指せる仕組みの根拠になっています。

なぜ イ は間違いか

ファイルの実データはiノードではなく「データブロック」に格納されます。iノードはそのデータブロックへの「ポインタ(住所)」を持っているだけで、データ本体は別の場所にあります。「iノード=データの器」と混同しやすいので注意です。

なぜ ウ は間違いか

「ファイル名 → iノード番号」の対応付けをしているのはiノードではなく「ディレクトリエントリ」です。Linuxではディレクトリ自体がこのマッピングテーブルを格納したファイルとして実装されており、だからこそ1つのiノードに複数の名前(ハードリンク)を付けることができます。

なぜ エ は間違いか

空きブロック数・総ブロック数・ブロックサイズなどファイルシステム全体の管理情報を保持しているのは「スーパーブロック(superblock)」です。mkfsでフォーマットした際に先頭付近に書き込まれ、マウント時にOSが最初に読み込む重要な領域です。

出典: AI生成問題(学習用)