Поле типа и прав доступа к файлу представляет собой двухбайтовое слово, каждый бит которого служит флагом, индицирующим отношение файла к определенному типу или установку одного конкретного права на файл.
Таблица 16.5. Структура поля, задающего тип и права доступа
Идентификатор | Значение | Назначение флага (поля) |
---|---|---|
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).
Таблица 16.6. Особые индексные дескрипторы
Идентификатор | Значение | Описание |
---|---|---|
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):
Таблица 16.7. Структура дескриптора, описывающего корневой каталог
Название поля | Тип | Описание |
---|---|---|
Inode | ULONG | Номер индексного дескриптора (индекс) файла |
Rec_len | USHORT | Длина этой записи |
Name_len | USHORT | Длина имени файла |
Name | CHAR[0] | Имя файла |
Использование записей переменной длины позволяет использовать длинные имена файлов без пустой траты дискового пространства. Отдельная запись в каталоге не может пересекать границу блока (т. е. должна быть расположена целиком внутри одного блока). Поэтому, если очередная запись не помещается целиком в данном блоке, она переносится в следующий блок, а предыдущая запись продолжается таким образом, чтобы она заполнила блок до конца.
16.4. Система адресации данных
Система адресации данных - это одна из самых существенных составных частей файловой системы. Именно система адресации позволяет находить нужный файл среди множества как пустых, так и занятых блоков на диске. В ext2fs система адресации реализуется полем i_block индексного дескриптора файла.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии