Читаем Linux для пользователя полностью

Название поляТипНазначение
bg_block_bitmapULONGАдрес блока, содержащего битовую карту блоков (block bitmap) данной группы
bg_inode_bitmapULONGАдрес блока, содержащего битовую карту индексных дескрипторов (inode bitmap) данной группы
bg_inode_tableULONGАдрес блока, содержащего таблицу индексных дескрипторов (inode table) данной группы
bg_free_blocks_countUSHORTСчетчик числа свободных блоков в данной группе
bg_free_inodes_countUSHORTЧисло свободных индексных дескрипторов в данной группе
bg_used_dirs_countUSHORTЧисло индексных дескрипторов в данной группе, которые являются каталогами
bg_padUSHORTЗаполнение
bg_reservedULONG[3]Заполнение

Размер описания группы блоков можно вычислить как

(размер_группы_блоков_в_ext2* число_групп) / размер_блока,

при необходимости округляем.

Информация, которая хранится в описании группы, используется для того, чтобы найти битовые карты блоков и индексных дескрипторов, а также таблицу индексных дескрипторов. Не забывайте, что блоки и группы блоков нумеруются, начиная с 1.

Битовая карта блоков (block bitmap) - это структура, каждый бит которой показывает, отведен ли соответствующий ему блок какому-либо файлу. Если бит равен 1, то блок занят. Эта карта служит для поиска свободных блоков в тех случаях, когда надо выделить место под файл, Битовая карта блоков занимает число блоков, равное (число_блоков_в_группе / 8) / размер_блока (при необходимости округляем).

Битовая карта индексных дескрипторов выполняет аналогичную функцию по отношению к таблице индексных дескрипторов: показывает, какие именно дескрипторы заняты.

Следующая область в структуре группы блоков служит для хранения таблицы индексных дескрипторов файлов. Структура самого индексного дескриптора подробнее рассматривается ниже в разд. 16.3.

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

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

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

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

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

Название поляТипОписание
i_modeUSHORTТип и права доступа к данному файлу
i_uidUSHORTИдентификатор владельца файла (Owner Uid)
i_sizeULONGРазмер файла в байтах
i_atimeULONGВремя последнего обращения к файлу (Access time)
i_ctimeULONGВремя создания файла
i_mtimeULONGВремя последней модификации файла
i_dtimeULONGВремя удаления файла
i_gidUSHORTИдентификатор группы (GID)
i_link_scountUSHORTСчетчик числа связей (Links count)
i_blocksULONGЧисло блоков, занимаемых файлом
i_flagsULONGФлаги файла (File flags)
i_reserved1ULONGЗарезервировано для ОС
i_blockULONG[15]Указатели на блоки, в которых записаны данные файла (это поле подробно описано в разд. 16.4)
i_versionULONGВерсия файла (для NFS)
i_file_aclULONGACL файла
i_dir_aclULONGACL каталога
i_faddrULONGАдрес фрагмента (Fragment address)
i_fragUCHARНомер фрагмента (Fragment number)
i_fsizeUCHARРазмер фрагмента (Fragment size)
i_pad1USHORTЗаполнение
i_reserved2ULONG[2]Зарезервировано
Перейти на страницу:

Похожие книги