Выбрать главу

Виртуальная файловая система использует таблицу, в которой во время компиляции ядра сохраняется информация о всех типах поддерживаемых файловых систем. Запись в таблице содержит тип файловой системы и указатель на соответствующую функцию монтирования файловой системы. При монтировании файловой системы эта функция возвращает виртуальной файловой системе дескриптор, который используется в дальнейшем в операциях ввода/вывода.

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

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

Файловая система Ext2

Файловая система Ext2 (The Second Extended File System, вторая расширенная файловая система) была разработана с целью устранения ошибок, обнаруженных в предыдущей системе Ext (Extended File System), и снятия некоторых ее ограничений.

Стандартные возможности Ext2

Файловая система Ext2 поддерживает стандартные типы файлов UNIX:

• файлы;

• каталоги;

• файлы устройств;

• символические ссылки.

Ext2 может управлять файловыми системами, установленными на очень больших дисковых разделах. Система поддерживает имена файлов большой длины – до 255 символов. Ext2 резервирует некоторое количество блоков для пользователя root, что позволяет системному администратору избежать нехватки объема жесткого диска при его заполнении другими пользователями.

Дополнительные возможности Ext2

В файловой системе Ext2 может использоваться синхронная модификация данных. Она применяется для достижения высокой плотности записи информации, но одновременно приводит к ухудшению производительности.

Ext2 позволяет при создании файловой системы выбрать размер логического блока. Он может быть определен в 1024, 2048 или 4096 байтов. Организация блоков большого объема приводит к ускорению операций чтения/записи, но при этом дисковое пространство используется нерационально.

Ext2 позволяет применять ускоренные символические ссылки. В этом случае блоки данных файловой системы не используются. Имя файла назначения хранится не в блоке данных, а в самом индексном дескрипторе. Такая структура позволяет сохранить дисковое пространство и ускорить обработку символических ссылок. Максимальная длина имени файла в ускоренной ссылке равна 60 символам.

Ext2 использует отдельное поле в суперблоке для индикации состояния файловой системы. Если файловая система смонтирована в режиме read/write, то ее состояние устанавливается как Not Clean. Если же она демонтирована или смонтирована заново в режиме read-only, то ее состояние устанавливается в Clean. Во время загрузки операционной системы и проверки состояния файловой системы эта информация используется для определения необходимости такой проверки. Ядро также помещает в это поле некоторые ошибки. При определении ядром какого-либо несоответствия файловая система помечается как Erroneous.

Длительное отсутствие проверки может привести к проблемам функционирования файловой системы, поэтому Ext2 включает в себя два метода для организации принудительной проверки. В суперблоке содержится счетчик монтирования системы. Этот счетчик увеличивается каждый раз, когда система монтируется в режиме read/write. Если его значение достигает максимального значения (оно также хранится в суперблоке), то запускается программа проверки файловой системы, даже если ее состояние является Clean. В суперблоке также хранится последнее время проверки, и максимальный интервал между проверками. При превышении этого интервала также запускается программа проверки файловой системы.

В системе Ext2 имеются утилиты для ее настройки. Так, программа tune2fs используется для определения порядка действий при обнаружении ошибки. Может быть выполнено одно из трех следующих действий:

• продолжение выполнения;

• монтирование файловой системы заново в режиме read-only;

• перезагрузка системы для проверки файловой системы.