Система адресации данных
Система адресации данных — это одна из самых существенных составных частей файловой системы. Именно система адресации позволяет находить нужный файл среди множества как пустых, так и занятых блоков на диске. В ext2fs система адресации реализуется полем i_block индексного дескриптора файла.
Поле i_block в индексном дескрипторе файла представляет собой массив из 15 адресов блоков. Первые 12 адресов в этом массиве (EXT2_NDIR_BLOCKS [12]) представляют собой прямые ссылки (адреса) на номера блоков, в которых хранятся данные из файла. Следующий адрес в этом массиве (EXT2_IND_BLOCK) является косвенной ссылкой, т. е. адресом блока, в котором хранится список адресов следующих блоков с данными из этого файла. В этом блоке могут быть записаны адреса (размер_блока / размер_ULONG) блоков с данными файла.
Следующий адрес в поле i_block индексного дескриптора (EXT2_DIND_BLOCK) указывает на блок двойной косвенной адресации (double indirect block). Этот блок содержит список адресов блоков, которые в свою очередь содержат списки адресов следующих блоков данных того файла, который задается данным индексным дескриптором.
И, наконец, последний адрес (EXT2_TIND_BLOCK) в поле i_block индексного дескриптора задает адрес блока тройной косвенной адресации, т. е. блока со списком адресов блоков, которые являются блоками двойной косвенной адресации.
Теперь вы знаете, как устроены индексные дескрипторы файлов, т. е. можете представить, как в файловой системе ext2fs осуществляется запись в файл и чтение из файла.
Может быть здесь еще надо бы рассказать о команде mkfs, которая служит для создания файловой системы в разделе диска. Но вкратце мы ее рассмотрели в разд. 4.12, а за более подробными пояснениями читатель может обратиться к интерактивным руководствам.