inode (вимовляється айнод або инод), індексний дескриптор - це структура даних в традиційних для ОС UNIX файлових системах (ФС), таких як UFS. У цій структурі зберігається метаінформація про стандартні файлах, каталогах або інших об'єктах файлової системи, крім безпосередньо даних і імені. Кожен файл асоційований з одним inode, хоча може мати кілька імен в системі, кожне з яких вказує на один і той же inode [1].
суть inode
Опис індексного дескриптора в POSIX
Стандарти POSIX описують поведінку файлової системи як нащадка традиційних файлових систем UNIX - UFS. Регулярні файли повинні мати такі атрибути:
- довжина файлу в байтах;
- ідентифікатор (ID) пристрою (це ідентифікує пристрій, що містить файл);
- ID користувача, що є власником файла;
- ID групи файлу;
- режим файлу, який визначає які користувачі можуть зчитувати, записувати і запускати файл;
- Timestamp вказує дату останньої зміни инода (ctime, change time), останньої модифікації вмісту файлу (mtime, modification time), і останнього доступу (atime, access time);
- лічильник посилань вказують кількість жорстких посилань, що вказують на індексний дескриптор;
- покажчики на блоки диска, що зберігають вміст файлу (докладніше.).
- Системний виклик stat зчитує номер індексного дескриптора файлу і деяку інформацію з нього.
Індексний дескриптор не містить:
- імені файлу, яке міститься в блоках зберігання даних каталогу;
- вмісту файлу, яке розміщене в блоках зберігання даних.
Практичне застосування
Безліч програм, що використовуються системними адміністраторами в операційній системі (ОС) UNIX, часто використовують номери індексних дескрипторів для позначення файлів. Популярна вбудована програма перевірки жорстких дисків fsck або команда pfiles можуть послужити в даному випадку прикладами, так як у них є необхідність природним чином конвертувати номера індексних дескрипторів в дорозі файлів і назад. Це може бути доповнено використанням програми пошуку файлів find з ключем -inum або командою ls з відповідним ключем (яким на більшості платформ є -i). Иноді можуть 'закінчитися'. У цьому випадку не можна записати інформацію на пристрій, навіть якщо там досить вільного місця.
Структура дискового inode
Тип файлу, додаткові атрибути виконання і права доступу
Поле di_mode зберігає кілька атрибутів файлу: тип файлу (IFREG - для звичайних файлів, IFDIR - для каталогів, IFBLK або IFCHR для спеціальних файлів блокових і символьних пристроїв відповідно); права доступу до файлу для трьох класів користувачів і додаткові атрибути виконання (SUID, SGID і sticky bit). Зауважимо, що в індексному дескрипторі відсутня інформація про час створення файлу. Замість цього inode зберігає три значення часу: останнього доступу (di_atime), час останньої модифікації вмісту файлу (di_mtime) і час останньої модифікації метаданих файлу (di_ctime). В останньому випадку не враховуються модифікації полів di_atime і di_mtinie. Таким чином, di_ctime змінюється, коли змінюється розмір файлу, власник, група або число зв'язків.