Виртуальная файловая система

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

Файловая подсистема операционной системы UNIX имеет специальный уровень абстракции для обработки запросов к файлам — переключатель файловых систем или виртуальная файловая система (VFS). VFS предоставляет пользователю стандартный набор функций (интерфейс) для работы с файлами, вне зависимости от места их расположения и принадлежности к разным файловым системам.

Рисунок 1.25. Виртуальная файловая система

 

Пользовательская программа имеет стандартный набор системных вызовов (например, открыть файл, прочитать данные, удалить файл), которые операционная система транслирует соответствующей фаловой системе. Таким образом, приложения становятся независимыми от реализации конкретных файловых систем. Тогда как модуль, предоставляющий доступ к файловой системе, должен быть написан согласно строго определённому внешнему интерфейсу виртуальной файловой системы.

В мире стандартов UNIX определено, что корневой каталог единого дерева файловой системы должен иметь имя /, как и символ-разделитель при формировании полного имени файла. Тогда полное имя файла может быть, например, /usr/share/doc/bzip2/README. Задача VFS — по полному имени файла найти его местоположение в дереве файловой системы, определить её тип в этом месте дерева и «переключить», т. е. передать файл на дальнейшую обработку драйверу конктретной файловой системы. Такой подход позволяет использовать практически неограниченое количество различных файловых систем на одном компьютере под управлением одной операционной системы, а пользователь даже не будет знать, что файлы физически находятся на разных носителях информации.