Ответ:
Inode (индексный узел) — это структура данных в файловой системе Unix и Unix-подобных операционных систем, которая хранит информацию о файле или каталоге, за исключением его имени и содержания. Каждый файл или каталог в файловой системе имеет связанный с ним inode.
Основная информация, хранящаяся в inode:
- Тип файла (обычный файл, каталог, символическая ссылка и т.д.).
- Права доступа (чтение, запись, выполнение для владельца, группы и остальных пользователей).
- Владелец файла (UID — идентификатор пользователя).
- Группа владельца (GID — идентификатор группы).
- Размер файла.
- Время создания, модификации и последнего доступа (timestamps).
- Количество жёстких ссылок на файл.
- Указатели на блоки данных файла (блоки, где хранятся фактические данные на диске).
Особенности inode:
- Номер inode: Каждый inode в файловой системе имеет уникальный номер, называемый номер inode. Системные утилиты, такие как
ls -i
, могут отображать номер inode для файлов и каталогов.
- Связь с файлами: Файлы и каталоги ссылаются на inode через запись в каталоге. Запись в каталоге содержит имя файла и его номер inode. Это означает, что несколько файлов могут ссылаться на один и тот же inode (как в случае с hard links).
- Ограничение на количество файлов: Количество файлов, которое может быть создано на файловой системе, зависит от количества доступных inode. Если все inode исчерпаны, на файловой системе не удастся создать новые файлы, даже если есть свободное место.
Как inode работает:
Когда создаётся файл, для него выделяется inode, в котором хранятся метаданные. Содержимое файла, т.е. его данные, размещается в блоках данных, на которые inode содержит указатели. При каждом обращении к файлу операционная система сначала находит его inode, используя его номер из каталога, а затем, используя указатели на блоки данных в inode, получает доступ к самим данным.