Алексей Стахнов

Linux


Скачать книгу

пространства. При старте операционной системы суперблок считывается в память, и все изменения файловой системы сначала записываются в копию суперблока, находящуюся в оперативной памяти, и только затем сохраняются на диске. При описании структуры суперблока используются следующие значения:

      • SHORT – короткое целое – 1 байт;

      • USHORT – беззнаковое короткое целое – 1 байт;

      • LONG – длинное целое – 4 байта;

      • ULONG – беззнаковое длинное целое – 4 байта.

      Структура суперблока приведена в приложении I (табл. П1.1).

      После суперблока следует являющееся массивом описание группы блоков (Group Descriptors). Структура описания группы блоков приведена в приложении I (табл. П1.2).

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

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

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

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

      Поле типа и прав доступа к файлу (i_mode) представляет собой слово, каждый бит которого служит флагом. Список флагов, описывающих тип и права доступа к файлу, приведен в приложении 1 (табл. П1.4).

      Некоторые индексные дескрипторы используются файловой системой в специальных целях. Описание специальных индексных дескрипторов приведено в приложении 1 (табл. П1.5).

      Каталог, по сути, является специальным файлом, содержимое которого состоит из записей определенной структуры. Структура записи в файле каталога приведена в приложении 1 (табл. П1.6).

      Система адресации данных

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

      Поле i_block в индексном дескрипторе файла представляет собой массив из 15 адресов блоков. Первые 12 адресов в этом массиве (EXT2 NDIR BLOCKS [12]) представляют собой прямые ссылки на номера блоков, в которых хранятся данные из файла. Следующий адрес в этом массиве является косвенной ссылкой (адресом блока), в котором хранится список адресов следующих блоков с данными из этого файла. Следующий адрес в поле i_block индексного дескриптора указывает на блок двойной косвенной адресации (double indirect block). Этот блок содержит список адресов блоков, которые, в свою очередь, содержат списки адресов следующих блоков данных того файла, который задается индексным дескриптором.

      Последний адрес в поле i_block индексного