Так же как файл должен быть открыт перед использованием, и файловая
система, хранящаяся на разделе диска, должна быть смонтирована,
чтобы стать доступной процессам системы.
Функция mount (монтировать) связывает файловую систему из
указанного раздела на диске с существующей иерархией файловых
систем, а функция umount (демонтировать) выключает файловую систему
из иерархии. Функция mount, таким образом, дает пользователям
возможность обращаться к данным в дисковом разделе как к файловой
системе, а не как к последовательности дисковых блоков.
Процедура монтирования состоит в следующем. Пользователь (в Unix
это суперпользователь) сообщает ОС имя устройства и место в
файловой структуре (имя пустого каталога), куда нужно присоединить
файловую систему (точка монтирования) (см. рис. 12.9 и рис. 12.10).
Hапример, в ОС Unix библиотечный вызов mount имеет вид:
mount(special pathname,directory pathname,options);
где special pathname - имя специального файла устройства (в общем
случае имя раздела), соответствующего дисковому разделу с
монтируемой файловой системой, directory pathname - каталог в
существующей иерархии, где будет монтироваться файловая система
(другими словами, точка или место монтирования), а options
указывает, следует ли монтировать файловую систему "только для
чтения" (при этом не будут выполняться такие функции, как write и
create, которые производят запись в файловую систему). Затем ОС
должна убедиться, что устройство содержит действительную файловую
систему ожидаемого формата с суперблоком, списком индексов и
корневым индексом.
Некоторые ОС осуществляют монтирование автоматически, как только
встретят диск в первый раз (жесткие диски на этапе загрузки, гибкие
- когда они вставлены в дисковод), ОС ищет файловую систему на
устройстве. Если файловая система на устройстве имеется, она
монтируется на корневом уровне, при этом к цепочке имен абсолютного
имени файла (pathname) добавляется буква раздела.
Рис. 12.9. Две файловые системы до монтирования
Рис. 12.10. Общая файловая система после монтирования
Ядро поддерживает таблицу монтирования с записями о каждой
смонтированной файловой системе. В каждой записи содержится
информация о вновь смонтированном устройстве, о его суперблоке и
корневом каталоге, а также сведения о точке монтирования. Для
устранения потенциально опасных побочных эффектов число линков (см.
следующий раздел) к каталогу - точке монтирования - должно быть
равно 1. Занесение информации в таблицу монтирования производится
немедленно, поскольку может возникнуть конфликт между двумя
процессами. Например, если монтирующий процесс приостановлен для
открытия устройства или считывания суперблока файловой системы, а
тем временем другой процесс может попытаться смонтировать файловую
систему.
Наличие в логической структуре файлового архива точек монтирования
требует аккуратной реализации алгоритмов, осуществляющих навигацию
по каталогам. Точку монтирования можно пересечь двумя способами: из
файловой системы, где производится монтирование, в файловую
систему, которая монтируется (в направлении от глобального корня к
листу), и в обратном направлении. Алгоритмы поиска файлов должны
предусматривать ситуации, в которых очередной компонент пути к
файлу является точкой монтирования, когда вместо анализа индексного
узла очередной директории приходится осуществлять обработку
суперблока монтированной системы.