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

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

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

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

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

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

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

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

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_link_scount USHORT Счетчик числа связей (Links count)
i_blocks ULONG Число блоков, занимаемых файлом
i_flags ULONG Флаги файла (File flags)
i_reserved1 ULONG Зарезервировано для ОС
i_block ULONG[15] Указатели на блоки, в которых записаны данные файла (это поле подробно
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

3

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату