Теперь переходим к инодам (информационным узлам, i-узлам, или inodes в англ. литературе). Мы установили, что наш раздел поделен на логические блоки размером минимум 512 байтов каждый. В каждом блоке данных содержится какая-то информация. Откуда система знает, какой блок относится к тому или иному файлу? — ведь запись на жесткий диск идет не последовательно (как на магнитную ленту), а произвольно. Например, блоки с номерами 1, 2, 5 и 7 могут принадлежать файлу А, а блоки 3, 4, 6 — файлу Б.
Вот для решения этой задачи и используется индексная таблица, она же таблица индексных дескрипторов, или таблица инодов. Каждая запись в таблице inodes содержит следующую информацию:
уникальный номер inode — каждому файлу присваивается свой уникальный номер inode, по сути inode — это счетчик файлов, создаваемых в файловой системе. При создании нового файла inode увеличивается на единицу;
тип файла — обычный файл, файл устройства, именованный канал (pipe), сокет, символическая ссылка или каталог;
размер файла — задается в таблице в байтах;
|
|
количество ссылок на файл — если на файл есть хотя бы одна ссылка, он не может быть удален;
адреса логических блоков — таблица инодов содержит адреса всех блоков, относящихся к файлу. Для нашего файла А здесь будут номера 1, 2, 5 и 7;
число блоков — общее число блоков, занимаемых файлом;
атрибуты файла — содержат информацию о владельце файла, правах доступа, времени создания/модификации и т. д.
Введите команду ls -i /, и вы увидите список файлов и каталогов корневой файловой системы и номера их инодов