До сих пор в этой главе описывалась структура файла, при этом предполагалось, что индекс предварительно связывался с файлом и что уже были определены дисковые блоки, содержащие информацию. В следующих разделах описывается, каким образом ядро назначает индексы и дисковые блоки. Чтобы понять эти алгоритмы, рассмотрим структуру суперблока.
Суперблок состоит из следующих полей:
размер файловой системы,
количество свободных блоков в файловой системе,
список свободных блоков, имеющихся в файловой системе,
индекс следующего свободного блока в списке свободных блоков,
размер списка индексов,
количество свободных индексов в файловой системе,
список свободных индексов в файловой системе,
следующий свободный индекс в списке свободных индексов,
заблокированные поля для списка свободных блоков и свободных индексов,
флаг, показывающий, что в суперблок были внесены изменения.
В оставшейся части главы будет объяснено, как пользоваться массивами, указателями и замками блокировки. Ядро периодически переписывает суперблок на диск, если в суперблок были внесены изменения, для того, чтобы обеспечивалась согласованность с данными, хранящимися в файловой системе.