Inode (індексний дескриптор)

inode (вимовляється айнод або инод), індексний дескриптор - це структура даних в традиційних для ОС UNIX файлових системах (ФС), таких як UFS. У цій структурі зберігається метаінформація про стандартні файлах, каталогах або інших об'єктах файлової системи, крім безпосередньо даних і імені. Кожен файл асоційований з одним inode, хоча може мати кілька імен в системі, кожне з яких вказує на один і той же inode [1].

Inode (індексний дескриптор)

суть 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 змінюється, коли змінюється розмір файлу, власник, група або число зв'язків.

Примітка

Схожі статті