Размер описания группы блоков можно вычислить как
при необходимости округляем.
Информация, которая хранится в описании группы, используется для того, чтобы найти битовые карты блоков и индексных дескрипторов, а также таблицу индексных дескрипторов. Не забывайте, что блоки и группы блоков нумеруются, начиная с 1.
Битовая карта блоков (block bitmap) - это структура, каждый бит которой показывает, отведен ли соответствующий ему блок какому-либо файлу. Если бит равен 1, то блок занят. Эта карта служит для поиска свободных блоков в тех случаях, когда надо выделить место под файл, Битовая карта блоков занимает число блоков, равное
Битовая карта индексных дескрипторов выполняет аналогичную функцию по отношению к таблице индексных дескрипторов: показывает, какие именно дескрипторы заняты.
Следующая область в структуре группы блоков служит для хранения таблицы индексных дескрипторов файлов. Структура самого индексного дескриптора подробнее рассматривается ниже в разд. 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] | Указатели на блоки, в которых записаны данные файла (это поле подробно |
