0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

inodeとは?

ファイルのメタデータとデータ位置を管理するためのデータ構造です.
ファイルの実体に1対1で対応する,OSにとっての"ファイル名"と言えるかもしれませんね.

Linuxでは,

ファイル名
↓
inode番号
↓
inode構造体
↓
data

という構造になっています.
つまり,ファイル名そのものがファイルを表しているのではなく,inode値を介して実体にたどり着くようになっています.

inode構造体

ファイル名以外のファイルのメタデータが入っています.

【例】ext4

inode構造体

  • ファイル種別
  • パーミッション
  • 所有者 UID, GID
  • サイズ
  • 作成・更新時刻
  • ハードリンク数
  • データブロックへのポインタ

ファイル名はディレクトリエントリにinodeとともに保存されています.

directory entry
+----------+--------+
| filename | inode  |
+----------+--------+
| foo.txt  | 123    |
| bar.txt  | 456    |
+----------+--------+

余談ですが,inodeを採用していないFATでは,ディレクトリエントリに大体の情報が置かれています.
directory entry
+------------+
| filename   |
| size       |
| time       |
| start=5    |
+------------+

なぜinodeが必要なのか

inode構造とUnixのファイルモデルにより

  • ハードリンク
  • 開いたまま削除
  • パーミッション管理
  • タイムスタンプ管理

などを実現できます.複数のファイル名が同じファイル実体を指すこともできます.

まとめ

inodeとは「ファイルを管理するためのデータ構造」です.
もう,流石に覚えました.


……多分。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?