Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

2004 г.

Linux для пользователя

Виктор Костромин, http://rus-linux.net/

Глава 16. Обратная сторона файловой системы

Предыдущий разделОглавлениеСледующий раздел

16.3. Индексные дескрипторы файлов

Каждому файлу на диске соответствует один и только один индексный дескриптор файла, который идентифицируется своим порядковым номером — индексом файла. Это означает, что число файлов, которые могут быть созданы в файловой системе, ограничено числом индексных дескрипторов, которое либо явно задается при создании файловой системы, либо вычисляется исходя из физического объема дискового раздела.

Строение индексного дескриптора файла приведено в табл. 16.4.

Таблица 16.4. Структура индексного дескриптора

Название поля

Тип

Описание

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]

Зарезервировано

Поле типа и прав доступа к файлу представляет собой двухбайтовое слово, каждый бит которого служит флагом, индицирующим отношение файла к определенному типу или установку одного конкретного права на файл.

Таблица 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]

Имя файла

Использование записей переменной длины позволяет использовать длинные имена файлов без пустой траты дискового пространства. Отдельная запись в каталоге не может пересекать границу блока (т. е. должна быть расположена целиком внутри одного блока). Поэтому, если очередная запись не помещается целиком в данном блоке, она переносится в следующий блок, а предыдущая запись продолжается таким образом, чтобы она заполнила блок до конца.
Предыдущий разделОглавлениеСледующий раздел

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...