В информатике inode (произносится а́йнод или ино́д), индексный дескриптор — это структура данных в традиционных для ОС UNIX файловых системах (ФС), таких как UFS, ext4. В этой структуре хранится метаинформация о стандартных файлах, каталогах или других объектах файловой системы, кроме непосредственно данных и имени.
При создании файловой системы создаются также и структуры данных, содержащие информацию о файлах. Каждый файл имеет свой индексный дескриптор, идентифицируемый по уникальному номеру (часто называемому 'i-номером' или 'инодом'), в файловой системе, в которой располагается сам файл.
Индексные дескрипторы хранят информацию о файлах, такую как принадлежность владельцу (пользователю и группе), режим доступа (чтение, запись, запуск на выполнение) и тип файла. Существует определенное число индексных дескрипторов, которое указывает максимальное количество файлов, допускаемое определенной файловой системой. Обычно, при создании файловой системы примерно 1 % её объёма выделяется под индексные дескрипторы.
Термин индексный дескриптор обычно указывает на иноды блочных устройств, управляющие постоянными файлами, каталогами и, по возможности, символьными ссылками. Подобная концепция играет важную роль при восстановлении поврежденных файловых систем.
stat
— системным вызовом, поставляющим информацию программам.Имена файлов и содержимое каталогов:
Представление ядром этих данных в памяти называется struct inode
(структурным инодом) (в ОС Linux). В BSD системах используется термин vnode
, буква v в котором указывает на виртуальную файловую систему уровня ядра.
Стандарты POSIX описывают поведение файловой системы как потомка традиционных файловых систем UNIX — UFS. Регулярные файлы должны иметь следующие атрибуты:
Системный вызов stat
считывает номер индексного дескриптора файла и некоторую информацию из него.
Что в названии «и-нод» обозначает «и» — неизвестно. В ответ на вопрос об этом один из создателей Unix Деннис Ритчи ответил:
Честно говоря, я тоже не знаю. Это был всего лишь термин, который мы начали использовать. Из-за немного необычной структуры файловой системы, при которой информация о доступе к файлам хранится в виде плоского массива на диске, отдельно от всей информации об иерархии каталогов, лучшее, что я могу предположить (для «и») — это «индекс». Таким образом, и-номер являлся индексом в этом массиве, и-нод — выбираемым элементом массива. (Приставка «и-» использовалась в первой версии руководства; со временем дефис перестали употреблять).
Оригинальный текст (англ.)In truth, I don't know either. It was just a term that we started to use. "Index" is my best guess, because of the slightly unusual file system structure that stored the access information of files as a flat array on the disk, with all the hierarchical directory information living aside from this. Thus the the i-number is an index in this array, the i-node is the selected elementof the array. (The "i-" notation was used in the 1st edition manual; its hyphen became gradually dropped).
— What does the "i" in inode stand for? Dennis Ritchie doesn't know either. . Проверено 3 августа 2010. Архивировано 23 августа 2011 года.
То есть index node (индексный узел, элемент) → index-node → i-node → inode — постепенное укорочение и слияние словосочетания index node. По другим версиям, начальная буква i в i-node может происходить, в том числе, от слов information (информация), incore, indirection.
Файловые системы, использующие индексные дескрипторы, имеют несколько неочевидных особенностей:
Множество программ, используемых системными администраторами в операционной системе (ОС) UNIX, часто используют номера индексных дескрипторов для обозначения файлов. Популярная встроенная программа проверки жестких дисков fsck
или команда pfiles
могут послужить в данном случае примерами, так как у них есть необходимость естественным образом конвертировать номера индексных дескрипторов в пути файлов и обратно. Это может быть дополнено использованием программы поиска файлов find
с ключом -inum
или командой ls
с соответствующим ключом (которым на большинстве платформ является -i
).
Одна из проблем - inode могут 'закончиться'. В этом случае нельзя будет создать новый файл или каталог на устройстве, даже если там достаточно свободного места. При этом уже имеющиеся файлы можно полноценно изменять.
Таким образом файловые системы можно разделить на две группы
Некоторые файловые системы, основанные на индексных дескрипторах, защищены от проблемы Y2038 (известной как Unix time) с учетом предотвращения 'переполнения' даты, но далеко не все. При настройке сервера отказ от использования подобных POSIX-несовместимых файловых систем становится более важным. Последняя версия POSIX поддерживает системное время и вызовы даты, устойчивые к проблеме Y2038.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .