Файловые индексные дескрипторы операционной системы
Использование номеров индексных дескрипторов для обозначения файлов в программах для системных администраторов в операционной системе UNIX. Описание индексного дескриптора в POSIX. Адрес индексного дескриптора в записи директории, относящейся к файлу.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 18.06.2014 |
Размер файла | 31,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
"Уфимский государственный авиационный технический университет"
Кафедра АСУ
Расчетно-графическая работа
на тему:
"Файловые индексные дескрипторы операционной системы"
Выполнила: студентка гр. ИВТ-301
Валеева Л.Т.
Проверил: старший преподаватель
Лянцев О.Д.
Уфа 2014
Оглавление
- Введение
- Файловая система ОС UNIX
- Подробности
- Описание индексного дескриптора в POSIX
- Этимология inode
- Значение
- Практическое применение
- Заключение
- Список литературы
Введение
В информатике inode (произносится амйнод или иномд) или индексным дескриптором называют метаданные файлов, отражающих структуру данных и другую необходимую для их работы информацию, в традиционных файловых системах (ФС) UNIX, таких как UFS.
Наиболее распространенный метод выделения файла, блоков диска - это связать с каждым файлом небольшую таблицу, называемую индексом дескриптора или индексным узлом, который перечисляет атрибуты и индексные адреса блоков файла. Запись директории, относящейся к файлу содержит адрес индексного дескриптора.
Файловая система ОС UNIX
Начнем с самого понятия файла и файловой системы.
Под файлом понимается набор данных, организованных в виде совокупности записей одинаковой структуры. Для управления этими данными создаются системы управления файлами. Возможность иметь дело с логическим уровнем структурных данных и операциями по их обработке предоставляет файловая система (ФС).
Фамйловая системма (англ. file system) - порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т.п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов и (каталогов), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные
В мире UNIX существует несколько разных видов файловых систем со своей структурой внешней памяти. Наиболее известны традиционная файловая система UNIX System V (s5) и файловая система семейства UNIX BSD (ufs).
Файл в системе UNIX представляет собой множество символов с произвольным доступом. Файл имеет такую структуру, которую налагает на него пользователь. Файловая система Unix, это иерархическая, многопользовательская файловая система.
Физически UFS состоит из следующих частей:
· несколько блоков в начале раздела отводится под загрузочную область (которая должна инициализироваться отдельно от файловой системы)
дескриптор операционная система индексный
· суперблок, включающий магическое число, инициализирующее файловую систему, и некоторые другие важные числа, описывающие геометрию и настройку некоторых параметров файловой системы
· описание групп цилиндров. Каждая группа включает следующие компоненты:
· Резервную копию суперблока
· Заголовок группы цилиндров, статистические данные и т.д., информацию аналогичную содержащейся в суперблоке, но для конкретной группы
· Некоторое количество индексных дескрипторов, каждый из которых содержит атрибуты файлов
· Некоторое количество блоков данных
Индексные дескрипторы нумеруются последовательно. Несколько первых индексных дескрипторов сохранены по историческим причинам, далее следуют индексные дескрипторы корневого каталога. Каталог файлов содержит только список файлов в директории и индексный дескриптор, связанный с каждым файлом. Все метаданные файла хранятся в индексном дескрипторе.
Подробности
При создании файловой системы создаются также и структуры данных, содержащие информацию о файлах. Каждый файл имеет свой индексный дескриптор, идентифицируемый по уникальному номеру (часто называемому 'i-номером' или 'инодом'), в файловой системе, в которой располагается сам файл.
Индексные дескрипторы хранят информацию о файлах, такую как принадлежность владельцу (пользователю и группе), режим доступа (чтение, запись, запуск на выполнение) и тип файла. Существует определенное число индексных дескрипторов, которое указывает максимальное количество файлов, допускаемое определенной файловой системой. Обычно, при создании файловой системы примерно 1 % её выделяется под индексные дескрипторы.
Термин индексный дескриптор обычно указывает на иноды блочных устройств, управляющие постоянными файлами, каталогами и, по возможности, символьными ссылками. Подобная концепция играет важную роль при восстановлении поврежденных файловых систем.
· Номер индексного дескриптора заносится в таблицу индексных дескрипторов в определенном месте устройства; по номеру индексного
· дескриптора ядро системы может считать содержимое инода, включая указатели данных и прочий контекст файла.
· Номер индексного дескриптора файла можно посмотреть используя команду ls - i, а команда ls - l покажет информацию, хранящуюся в индексном дескрипторе.
· Файловые системы, не относящиеся к традиционным ФС UNIX, такие как ReiserFS, могут обходиться без таблицы индексных дескрипторов, но должны хранить аналогичную информацию схожим способом, обеспечивающим эквивалентную функциональность. Такие данные могут называться статистической информацией, по аналогии со stat - системным вызовом, поставляющим информацию программам.
Имена файлов и содержимое каталогов:
· индексные дескрипторы не хранят имена файлов, только информацию об их содержимом;
· каталоги в Unix являются списками 'ссылочных' структур, каждая из которых содержит одно имя файла и один номер индексного дескриптора;
· ядро должно просматривать каталог в поисках имени файла, затем конвертировать это имя в соответствующий номер индексного дескриптора, в случае успеха;
· содержимое файлов располагается в блоках данных, на которые ссылаются индексные дескрипторы.
Представление ядром этих данных в памяти называется struct inode (структурным инодом) (в ОС Linux). В BSD системах используется термин vnode, буква v в котором указывает на виртуальную файловую систему уровня ядра.
Строение индексного дескриптора файла приведено в табл.1
Таблица 1. Структура индексного дескриптора
Название поля |
Тип |
Описание |
|
i_mode |
USHORT |
Тип и права доступа к данному файлу |
|
i_uid |
USHORT |
Идентификатор владельца файла (Owner Uid) |
|
i_size |
ULONG |
Размер файла в байтах |
|
i_atime |
ULONG |
Время последнего обращения к файлу (Access time) |
|
i_ctime |
ULONG |
Время создания файла |
|
i_mtime |
ULONG |
Время последней модификации файла |
|
i_dtime |
ULONG |
Время удаления файла |
|
i_gid |
USHORT |
Идентификатор группы (GID) |
|
i_links_count |
USHORT |
Счетчик числа связей (Links count) |
|
i_blocks |
ULONG |
Число блоков, занимаемых файлом |
|
i_flags |
ULONG |
Флаги файла (File flags) |
|
i_reserved1 |
ULONG |
Зарезервировано для ОС |
|
i_block |
ULONG [15] |
Указатели на блоки, в которых записаны данные файла (это поле подробно описано в разд.16.4) |
|
i_version |
ULONG |
Версия файла (для NFS) |
|
i_file_acl |
ULONG |
ACL файла |
|
i_dir_acl |
ULONG |
ACL каталога |
|
i_faddr |
ULONG |
Адрес фрагмента (Fragment address) |
|
i_frag |
UCHAR |
Номер фрагмента (Fragment number) |
|
i_fsize |
UCHAR |
Размер фрагмента (Fragment size) |
|
i_pad1 |
USHORT |
Заполнение |
|
i_reserved2 |
ULONG [2] |
Зарезервировано |
Поле типа и прав доступа к файлу представляет собой двухбайтовое слово, каждый бит которого служит флагом, индицирующим отношение файла к определенному типу или установку одного конкретного права на файл.
Таблица 2. Структура поля, задающего тип и права доступа
Идентификатор |
Значение |
Назначение флага (поля) |
|
S_IFMT |
F000 |
Маска для типа файла |
|
S_IFSOCK |
A000 |
Доменное гнездо (socket) |
|
S_IFLNK |
C000 |
Символическая ссылка |
|
S_IFREG |
8000 |
Обычный (regular) файл |
|
S_IFBLK |
6000 |
Блок-ориентированное устройство |
|
S_IFDIR |
4000 |
Каталог |
|
S_IFCHR |
2000 |
Байт-ориентированное (символьное) устройство |
|
S_IFIFO |
1000 |
Именованный канал (fifo) |
|
S_ISUID |
0800 |
SUID - бит смены владельца |
|
S_ISGID |
0400 |
SGID - бит смены группы |
|
S_ISVTX |
0200 |
Бит сохранения задачи (sticky bit) |
|
S_IRWXU |
01C0 |
Маска прав владельца файла |
|
S_IRUSR |
0100 |
Право на чтение |
|
S_IWUSR |
0080 |
Право на запись |
|
S_IXUSR |
0040 |
Право на выполнение |
|
S_IRWXG |
0038 |
Маска прав группы |
|
S_IRGRP |
0020 |
Право на чтение |
|
S_IWGRP |
0010 |
Право на запись |
|
S_IXGRP |
0008 |
Право на выполнение |
|
S_IRWXO |
0007 |
Маска прав остальных пользователей |
|
S_IROTH |
0004 |
Право на чтение |
|
S_IWOTH |
0002 |
Право на запись |
|
S_IXOTH |
0001 |
Право на выполнение |
Среди индексных дескрипторов имеется несколько дескрипторов, которые зарезервированы для специальных целей и играют особую роль в файловой системе (табл.16.6).
Таблица 3. Особые индексные дескрипторы
Идентификатор |
Значение |
Описание |
|
EXT2_BAD_INO |
1 |
Индексный дескриптор, в котором перечислены адреса дефектных блоков на диске (Bad blocks inode) |
|
EXT2_ROOT_INO |
2 |
Индексный дескриптор корневого каталога файловой системы (Root inode) |
|
EXT2_ACL_IDX_INO |
3 |
ACL inode |
|
EXT2_ACL_DATA_INO |
4 |
ACL inode |
|
EXT2_BOOT_LOADER_INO |
5 |
Индексный дескриптор загрузчика (Boot loader inode) |
|
EXT2_UNDEL_DIR_INO |
6 |
Инлексный дескриптор каталога для удаленных файлов (Undelete directory inode) |
|
EXT2_FIRST_INO |
11 |
Первый незарезервированный индексный дескриптор |
Самый важный дескриптор в этом списке - дескриптор корневого каталога. Этот дескриптор указывает на корневой каталог, который, подобно всем каталогам, представляет собой связанный список, состоящий из записей переменной длины. Каждая запись имеет следующую структуру (табл.16.7):
Таблица 4. Структура дескриптора, описывающего корневой каталог
Название поля |
Тип |
Описание |
|
Inode |
ULONG |
Номер индексного дескриптора (индекс) файла |
|
Rec_len |
USHORT |
Длина этой записи |
|
Name_len |
USHORT |
Длина имени файла |
|
Name |
CHAR [0] |
Имя файла |
Использование записей переменной длины позволяет использовать длинные имена файлов без пустой траты дискового пространства. Отдельная запись в каталоге не может пересекать границу блока (т.е. должна быть расположена целиком внутри одного блока). Поэтому, если очередная запись не помещается целиком в данном блоке, она переносится в следующий блок, а предыдущая запись продолжается таким образом, чтобы она заполнила блок до конца.
Для повышения эффективности обработки данных в файловой системе при открытии любого файла его индексный дескриптор считывается в таблицу индексных дескрипторов, которая резидентна в RAM. Резидентный образ индексного дескриптора файла возвращается в индексный файл после завершения работы с данным файлом во всех процессах.
Чтобы динамически поддерживать соответствие резидентных копий индексных дескрипторов с их оригиналами в индексном файле, содержание таблицы индексных дескрипторов файлов периодически копируется в индексный файл следящим процессом (демоном) update, который запускается при переходе OS UNIX в многопользовательский режим. Указанная процедура синхронизации позволяет минимизировать нарушение корректности файловой системы при аппаратных сбоях, когда возможность приведения в соответствие индексного файла и модифицированных резидентных копий индексных дескрипторов будет потеряна. Хотя в OS UNIX предусмотрены административные средства ремонта файловой системы, но исправление существенных нарушений может привести к потере данных.
Описание индексного дескриптора в POSIX
Стандарты POSIX описывают поведение файловой системы как потомка традиционных файловых систем UNIX - UFS. Постоянные файлы должны иметь следующие атрибуты:
· длина файла в байтах;
· идентификатор (ID) устройства (это идентифицирует устройство, содержащее файл);
· ID пользователя, являющегося владельцем файла;
· ID группы файла;
· режим файла, определяющий какие пользователи могут считывать, записывать и запускать файл;
· Timestamp указывает дату последнего изменения инода (ctime, change time), последней модификации содержимого файла (mtime,modification time), и последнего доступа (atime, access time);
· счетчик ссылок указывают количество жестких ссылок, указывающих на индексный дескриптор;
· указатели на блоки диска, хранящие содержимое файла (подробнее.).
Системный вызов stat считывает номер индексного дескриптора файла и некоторую информацию из него.
Этимология inode
Точная причина использования "и" в узлах (нодах) неизвестна. В ответ на вопрос об этом один из пионеров Unix-систем Деннис Ритчи ответил:
"Честно говоря, я мало об этом знаю. Это был всего лишь термин, который мы начали использовать. 'Индекс', как я полагаю, использовался из-за несколько необычной структуры файловой системы, хранившая информацию о доступе к файлам в плоском (двумерном) массиве на диске, а вся информация об иерархии каталогов хранилась отдельно. Таким образом, и-номер являлся индексом в этом массиве, и-нод - выбранным элементом массива. (Приставка 'и-' использовалась в первой версии руководства; со временем дефис перестали употреблять). "
То есть index node (индексный узел, элемент) > index-node > i-node > inode - постепенное укорочение и слияние словосочетанияindex node. По другой версии, начальная буква i в i-node происходит от слова information (информация).
Значение
Особенности файловой системы, которые приводят к использованию индексных дескрипторов, обескураживают многих пользователей, не знакомых с этой концепцией:
· Если несколько имен указывают на один и тот же индексный дескриптор (жесткие ссылки), то все имена считаются эквивалентными. Первое созданное имя никаким особым положением не обладает. Это отличается от поведения похожих символьных ссылок, которые зависят от первоначального имени.
· Индексный дескриптор может совсем не иметь ссылок. Обычно такой файл должен быть удален с диска (именно поэтому программы типа undelete в Unix не позволяют установить точное имя удалённого файла), а его ресурсы должны освободиться (это нормальный процесс удаления файла), но если какие-либо процессы держат файл открытым, то они могут удерживать доступ к нему, а файл будет окончательно удален только когда будет закрыто последнее обращение к нему. Это относится и к исполняемым копиям, которые удерживаются открытыми процессами, их выполняющими. По этой причине, при обновлении программы рекомендуется удалять старую копию и создавать новый индексный дескриптор для обновленной версии, чтобы никакие экземпляры старой версии не продолжали выполняться.
· Обычно нет возможности сопоставить открытый файл и его имя, по которому он был открыт. Операционная система преобразует имя файла в номер индексного дескриптора при первом же удобном случае, а затем "забывает" про имя файла. Таким образом, функции библиотек getcwd () и getwd () начинают искать в родительском каталоге файл с индексным дескриптором, совпадающим с файлом"." каталога; затем ищут родительский каталог для текущего, и так далее пока не достигнут "/" каталога. SVR4 и Linux используют дополнительную информацию (поля) в индексных дескрипторах для избежания подобного неудобства.
· Ранее было возможно применять жесткие ссылки на каталоги. Это делало структуру каталогов ориентированным графом вместо дерева, то есть связного графа с N-1 ребрами и N узлами. Например, каталог имел возможность быть собственным родителем. Современные системы не допускают подобных двусмысленностей, за исключением корневого каталога, который считается собственным родителем.
Практическое применение
Множество программ, используемых системными администраторами в операционной системе (ОС) UNIX, часто используют номера индексных дескрипторов для обозначения файлов. Популярная встроенная программа проверки жестких дисков fsck или команда pfiles могут послужить в данном случае примерами, так как у них есть необходимость естественным образом конвертировать номера индексных дескрипторов в пути файлов и обратно. Это может быть дополнено использованием программы поиска файлов find с ключом - inum или командой ls с соответствующим ключом (которым на большинстве платформ является - i).
Иноды могут 'закончиться'. В этом случае нельзя записать информацию на устройство, даже если там достаточно свободного места.
Заключение
Индексирование поддерживает прямой доступ к файлу без ущерба от внешней фрагментации. Индексированное размещение широко распространено и поддерживает как последовательный, так и прямой доступ к памяти. Обычно применяется комбинация одноуровневых и многоуровневых индексов. Первые несколько адресов блоков файлов хранятся непосредственно в индексном дескрипторе. Таким образом, для маленьких файлов индексный дескриптор хранит всю необходимую информацию об адресах блоков. Для больших файлов один из адресов индекс. дескриптора указывает на блок косвенной адресной. Этот блок содержит адреса дополнительных блоков дисков, если этого недостаточно, то используется блок двойной косвенной адресации, который содержит адреса блоков косвенной адресации. Если этого не хватает, то используется третья косвенная адресация. Данную схему используют Unix и файловые системы HPFS, NTFS.
Такой подход позволяет при фиксированном относительно небольшом размере индексного дескриптора, поддерживать работу с файлами, размер которых изменяется от нескольких байтов до нескольких Гб.
Список литературы
1. Inodes and Operations (11.1999). - Уровень виртуальной файловой системы Linux: Иноды и Действия - Иноды в Linux.
2. Робачевский А.Н., Немнюгин С.А., Стесик О.Л. Индексные дескрипторы / Базовая файловая система System V / Глава 4. Файловая система // Операционная система UNIX. - 2-е изд. - СПб.: БХВ-Петербург, 2008. - С.334-. - 656 с. - ISBN 978-5-94157-538-1
3. http://litrus.net/book/read/60177? p=127 - Костромин В.А. "Linux для пользователя"
Размещено на Allbest.ru
Подобные документы
Основные структуры процессов в операционной системе Unix. Возможные состояния процесса в Unix и способы перехода между ними. Планирование и выполнение процессов. Различия между родительским и дочерним процессом. Ожидание завершения и выполнения процесса.
курсовая работа [673,0 K], добавлен 24.02.2012История появления операционной системы Unix. Перекомпиляция Unix в коды любой аппаратной платформы, ее многозадачность и многотерминальность. Основные отличия Unix от других операционных систем. Использование Unix в качестве сервера и рабочей станции.
реферат [28,1 K], добавлен 05.04.2010Понятие операционной системы (ОС) как базового комплекса компьютерных программ для управления аппаратными средствами компьютера и работы с файлами. Файловые системы и их основные функции. Способы именования файлов при создании диска, совместимость с ОС.
контрольная работа [36,8 K], добавлен 20.11.2009Права доступа к файлам и управление ими и другими атрибутами. Значения прав доступа для файлов и директорий. Набор файловых флагов. Команды управления процессами в операционной системе UNIX. Опции и значения программ архивации и сжатия - tar и gzip.
контрольная работа [234,4 K], добавлен 16.01.2014Основные защитные механизмы операционной системы семейства Unix, недостатки ее защитных механизмов. Идентификаторы пользователя и группы пользователей. Защита файлов, контроль доступа, уязвимость паролей. Проектирование символов для матричных принтеров.
курсовая работа [488,8 K], добавлен 22.06.2011История разработки многозадачной операционной системы POSIX-стандарта - FreeBSD; описание ее виртуальной памяти, файловой системы, уровня защиты. Описание основных средств синхронизации процессов - сигналов и семафоров. Способы блокировки файлов.
презентация [584,2 K], добавлен 02.06.2011Разграничение прав пользователя в операционной системе. Предварительная настройка операционной системы с последующей установкой драйверов для периферийных устройств и системных комплектующих. Классификация операционных систем и периферийных устройств.
реферат [2,1 M], добавлен 26.10.2022Правила монтирования и демонтирования файловых систем на диске. Описание полей файла /etc/fstab. Создание суперблока, таблицы индексного дескриптора, совокупности блоков данных. Строение и структура описания группы блоков. Система адресации данных.
презентация [143,1 K], добавлен 20.12.2013Различные составляющие операционной системы. Основные функции Unix системы. Подключение к системе с терминалов. Syslog. Графический интерфейс пользователя. Подключение к системе через сеть. Файловая система. Запуск системы и перезагрузка.
курсовая работа [34,9 K], добавлен 06.10.2006Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.
курсовая работа [183,0 K], добавлен 29.04.2015