Unix Man (Справочное руководство)


FS(4) - часть 2


#define FsMAGIC 0xfd187e20 /* Значение s_magic */

#define Fs1b 1 /* Блок по 512 байт */ #define Fs2b 2 /* Блок по 1024 байта */

#define FsOKAY 0x7c269d38 /* s_state: нормальная */ #define FsACTIVE 0x5e72d81a /* s_state: активная */ #define FsBAD 0xcb096f43 /* s_state: плох.корень */ #define FsBADBLK 0xbadbc14b /* s_state: есть плохие блоки */

Поле s_type определяет тип файловой системы. В настоящее время поддерживаются два типа файловых систем: старая, с 512-байтными логическими блоками и новая, улучшенная, с 1024-байтными блоками. Поле s_magic используется для того, чтобы отличить старую 512-байтную систему от новой. Если значение этого поля не совпадает с магическим числом FsMAGIC, то тип файловой системы принимается равным Fs1b, то есть система считается старой; в противном случае используется значение s_type. Операционная система заботится о корректности преобразования номеров логических блоков в номера физических секторов.

Поле s_state определяет состояние файловой системы. Для успешно размонтированной, неповрежденной файловой системы s_state имеет значение FsOKAY. После того, как система была смонтирована с целью внесения изменений, состояние изменяется на FsACTIVE. По-особому обрабатывается корневая файловая система. Если во время загрузки ОС обнаруживается, что корневая файловая система повреждена, она монтируется, но отмечается признаком FsBAD. Позже, после того, как она будет размонтирована, будет установлено состояние FsOKAY.

Поле s_isize задает адрес первого блока данных после списка описателей файлов; сам список описателей начинается со второго блока. Таким образом, список описателей файлов имеет длину s_isize-2 блока. Значение s_fsize есть первый блок, который потенциально недоступен для размещения файлов. Эти два числа используются системой для выявления плохих номеров блоков; если неверный номер блока получается из списка свободных блоков или, наоборот, освобождается, то на системную консоль выводится диагностическое сообщение. Более того, список свободных блоков очищается, чтобы предотвратить дальнейшее получение номеров блоков из возможно поврежденного списка.




Начало  Назад  Вперед



Книжный магазин