<<
>>

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

Семинары 10—11 были посвящены устройству файловой системы s5fs. Существуют и другие файловые системы, имеющие архитектуру, отличную от архитектуры s5fs (иные способы отображения файла на пространство

физического носителя, иное построение директорий и т.

д.). Современные версии UNIX-подобных операционных систем умеют работать с разнообразными файловыми системами, различающимися своей организацией. Такая возможность достигается с помощью разбиения каждой файловой системы на зависимую и независимую от конкретной реализации части, подобно тому, как в лекции 13, посвященной вопросам ввода-вывода, мы отделяли аппаратно-зависимые части для каждого устройства — драйверы — от общей базовой подсистемы ввода-вывода. Независимые части всех файловых систем одинаковы и представляют для всех остальных элементов ядра абстрактную файловую систему, которую принято называть виртуальной файловой системой. Зависимые части для различных файловых систем могут встраиваться в ядро на этапе компиляции либо добавляться к нему динамически по мере необходимости, без перекомпиляции системы (как в системах с микроядерной архитектурой).

Рассмотрим схематично устройство виртуальной файловой системы. В файловой системе s5fs данные о физическом расположении и атрибутах каждого открытого файла представлялись в операционной системе структурой данных в таблице индексных узлов открытых файлов (см. семинар 10—11, раздел «Системные вызовы и команды для выполнения операций над файлами и директориями»), содержащей информацию из индексного узла файла во вторичной памяти. В виртуальной файловой системе, в отличие от s5fs, каждый файл характеризуется не индексным узлом inode, а некоторым виртуальным узлом vnode. Соответственно, вместо таблицы индексных узлов открытых файлов в операционной системе появляется таблица виртуальных узлов открытых файлов.

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

При выполнении операций над файлами по таблице операций, чей адрес содержится в vnode, определяется системный вызов, который будет на самом деле выполнен над реальными физическими данными файла, чей адрес также находится в vnode. В случае с s5fs данные, на которые ссылается vnode, — это как разданные индексного узла, рассмотренные на семинарах 10—11 и на лекции 12. Заметим, что таблица операций является общей для всех файлов, принадлежащих одной и той же файловой системе.

<< | >>
Источник: В.Е. Карпов К.А. Коньков. Основы операционных систем. 2005

Еще по теме Понятие виртуальной файловой системы:

  1. Виртуальное послесловие
  2. ГЛАВА 11 ПРАВОВЫЕ ПРОБЛЕМЫ ВИРТУАЛЬНОЙ СРЕДЫ ИНТЕРНЕТ
  3. Виртуальное сексуальное насилие над детьми
  4. § 2. Понятие и система обязательств по страхованию
  5. III. 1. 4. Система понятий.
  6. § 1. Понятие и значение системы гражданских договоров
  7. 1. Понятие смешанных правовых систем
  8. § 1. Понятие и система источников
  9. § 1. Понятие и система источников
  10. § 1. Понятие и система источников
  11. 2. Правовая система – основное понятие сравнительного правоведения