Виртуальная файловая система - ТЕЗИСЫ из одноимённой главы книги Роберта Лава " Разработка ядра Линукс"

Тезисы о виртуальной файловой системе (ВФС) по материалам главы "Виртуальная файловая система" книги Роберта Лава " Разработка ядра Linux"

  1. Виртуальная файловая система предоставляет программам обобщённый интерфейс доступа к файлам, представленным в различных файловых системах
  2. Такое обобщение возможно благодаря определению базовых интерфейсов и структур данных, которые необходимы для поддержки взаимодействия со всеми файловыми системами
  3. Виртуальная система пишется в соответствии с шаблоном и с помощью кода отвечает на вопросы типа "как открыть файл?" - "каким образом будет представляться директория?" и т.д.
  4. Исторически сложилось так, что ОС Юникс поддерживает четыре абстракции для файловых систем =
    1. файлы,
    2. элементы каталогов
    3. индексы
    4. точки монтирования
  5. Файловая система - это иерархическое хранилище данных, имеющее определённую структуру
  6. Обычные операции выполняемые с файловыми системами =
    • создание
    • удаление
    • монтирование
  7. В юникс файловая система монтируется на определённую точку в файловой иерархии - называемую пространством имён - таким образом файлы группируются в одну древовидную структуру
  8. Файл - это упорядоченный поток байтов, где первый байт -начало файла, а второй байт - конец файла. Операции, определённые для файла =
    1. создание
    2. запись
    3. чтение
    4. удаление
  9. В юникс каталог - это файл, содержащий список вложенных в него файлов и подкаталогов - соответственно, операции для каталога идентичны операциям для файла
  10. Данные о файле - мета-информация вроде прав доступа и времени создания хранятся в отдельной структуре - индексах
  11. Суперблок— это структура данных, которая содержит информацию о файловой системе в целом а также информацию об отдельных файлах (видимо - их индексы)
  12. Виртуальная файловая система поддерживает четыре основных типа объектов =
    • Объект суперблок - представляет определённую смонтированную файловую систему
    • Объект файловый индекс - представляет определённый файл
    • Объект элемент каталога - представляет определённый элемент каталога
    • Объект файл - представляет открытый файл ,связанный с каким-либо процессом

    Каждый из этих основных объектов содержит объект, описывающий операции - методы , которые ядро может применить по отношению к основным объектам

  13. Объекты операций , представляют собой структуры, содержащие указатели на функции , которые и содержат определение действий в виде кода.
  14. В ВФС есть и другие типы структур в частности - каждый процесс имеет три структуры, которые описывают файловую систему и файлы, связанные с процессом=
    • file_struct
    • fs_struct
    • namespace