Монтирование файловых систем
Прежде чем ОС сможет использовать файловую систему,
она должна выполнить над этой системой операцию, называемую монтированием
(mount). В общем случае операция монтирования включает следующие
шаги.
- Проверку типа монтируемой ФС.
- Проверку целостности ФС.
- Считывание системных структур данных и инициализацию
соответствующего модуля файлового менеджера (драйвера файловой системы).
- В некоторых случаях — модификацию ФС с тем, чтобы указать,
что она уже смонтирована. При этом устанавливается так называемый флаг
загрязнения (dirty flag). Смысл этой операции будет объяснен
и разд. Устойчивость ФС к сбоям.
- Включение новой файловой системы в общее пространство
имен (рис. 11.1). В различных системах это делается различными способами.
Многие пользователи MS/DR DOS никогда не сталкивались
с понятием монтирования. Дело в том, что эта система (как и многие другие
ДОС, например RT-11) выполняет упрощенную процедуру монтирования при каждом
обращении к файлу. Упрощения состоят в пропуске шагов 1 и 2 и отсутствии
шага 4 (ФС MS/DR DOS устойчива к сбоям).
ДОС, как правило, помещают в пространство имен все доступные блочные устройства,
не выполняя полной процедуры монтирования. Если какое-то из этих устройств
не содержит ФС известного типа, то система будет возмущаться при обращениях
к такому устройству, но не удалит его из списка доступных ФС. А иногда
даже не будет возмущаться — попробуйте поставить в дисковод машины под
управлением MS/DR DOS-дискету, не содержащую файловой системы (например,
созданную программой tar) и в командной строке набрать DIR
А:. Скорее всего, вы увидите несколько экранов мусора, но ни одного
сообщения об ошибке!
Рис. 11.1. Пространство имен ОС с несколькими ФС
Если мы монтируем ФС, размещенную на удаленной машине
(файловом сервере), то шаги 1 и 2 заменяются на установление соединения
этим сервером. В системах семейства СР/М при работе с файловыми серверами
Novell Netware монтирование серверных файловых систем производится командой
MAP, а с файловыми серверами, поддерживающими
протокол SMB, — командой
NET USE.
Обычно имя файла в подмонтированной файловой системе имеет вид 'ИМЯ_ФС:\имена\каталогов\имя.файла'.
При этом вместо разделителей ':' и '/' могут использоваться другие символы.
Имена файловых систем в RT-11, RSX-11,
VMS
В RT-11, RSX-11 и VMS в качестве имени файловой системы используется имя
физического устройства, на котором размещена ФС. Если применяется DECNet,
перед именем устройства можно поместить имя узла сети, на котором это
устройство находится. Полное имя файла в VMS выглядит так: DUAO-lUSERS.FAT_BROTHER.WORKJtest.exe.
При этом DUAO означает дисковое устройство 0, присоединенное к дисковому
контроллеру A: Disk Unit д [device #] О, [USERS.FAT_BROTHER.WORK] означает
каталог WORK в каталп FAT_BROTHER в каталоге USERS.
Имена файловых систем в ОС семейства
СР/М
В системах семейств СР/М имена файловых систем обозначаются буквами ла
тинского алфавита, а сами файловые системы часто почему-то называются
"драйвами". При некотором желании можно использовать в качестве
имен фг также символы '[' и ']'. Устройства А: и В: — это всегда приводы
гибких дисков устройство С: — обычно первый жесткий диск, или первый раздел
на первом жестком диске.
Автора всегда интересовал вопрос: "Что будет делать пользователь,
когда у него кончатся доступные буквы алфавита?" При использовании
только локальных дисков такая ситуация кажется маловероятной, но при подключении
к нескольким файловым серверам количество используемых файловых систем
резко возрастает...
В OS/2 и Windows for Workgroups эта проблема решена использованием так
называемых UNC-имен, задающих имя файла в виде \\NODE\SHARE\ PATH\FILE.NAM
(рис. 11.2), где NODE — имя сетевого узла, SHARE — имя разделяемого ресурса
на этом узле (это может быть не только разделяемый каталог, но и принтер,
а в OS/2 также и модем), a PATH\FILE.NAM — путь к файлу относительно разделяемого
каталога. К сожалению, далеко не все старые (и даже многие не очень уж
старые) программы понимают такие имена. Например, даже стандартный командный
процессор системы Windows NT не может исполнить команду cd \\NODE\SHARE\DIR
(проверялось на NT 4.0 sp4-6, 2000 sp 1 и ХР).
Рис. 11.2. UNC-имена
Структура пространства имен в Unix
В операционных системах семейства Unix смонтированные ФС выглядят как
каталоги единого дерева (строго говоря, структура каталогов в UNIX не
обязана являться деревом; но об этом см. разд. Cложные
файловые системы), Это дерево начинается с корневого каталога, выделенной
ФС, называемой корневой (root). Администратор системы может подмонтировать
новую ФС к любому каталогу, находящемуся на любом уровне дерева (рис.
11.3). Такой каталог после этого называют точкой монтирования, но это
выражение отражает только текущее состояние каталога. После того как мы
размонтируем ФС, мы сможем использовать этот каталог как обычный, и наоборот,
мы можем сделать точкой монтировки любой каталог.
Рис. 11.3. Структура пространства имен в Unix
Такой подход имеет неочевидное, на первый взгляд, но серьезное
преимущество перед раздельными пространствами имен для разных физических
файловых систем. Преимущество состоит в том, что пространство имен оказывается
не связанным с физическим размещением файлов. Следовательно, администратор
может поддерживать неизменную структуру дерева каталогов, перемещая при
этом отдельные ветви по дискам ради более эффективного использования дискового
пространства или даже просто ради удобства администрирования.
По традиции все Unix-системы имеют примерно одинаковую структуру дерева
каталогов: системные утилиты находятся в каталоге /bin, системные библиотеки
— в каталоге /lib, конфигурационные файлы — в каталоге /etc и т. д. Например,
база данных об именах пользователей всегда находится в файле /etc/passwd.
Точки монтирования реализованы и в некоторых ОС, не относящихся к семейству
Unix. Так, свободно распространяемый продукт TVFS (Toronto Virtual File
System) для OS/2 позволяет объединять несколько различных файловых систем
(как локальных, так и сетевых) в один логический диск, монтируя реальные
ФС в каталоги виртуальной. Аналогичная функциональность была реализована
в Windows 2000, но почему-то только в поставке Advanced Server.
|