Оглавление
- Часть I. Введение в Linux
- Глава 1. Особенности ОС Linux
- DOS
- Windows 3.1x
- OS/2
- Windows 9x
- Windows NT (Windows 2000)
- Mac OS
- Mac OS X
- Семейство UNIX
- FreeBSD, OpenBSD, NetBSD
- Linux
- BeOS
- QNX
- Почему выбирают Linux
- Разные факты
- Ссылки
- Глава 2. Возможности Linux
- Сеть
- Сетевые протоколы и аппаратура
- Сетевые сервисы
- Файловые менеджеры
- Текстовые редакторы
- Графические оболочки
- Графические редакторы
- Web-инструментарий
- Офисные пакеты
- StarOffice 5.2
- OpenOffice
- Koffice
- GNOME Workshop
- Базы данных
- Эмуляторы Windows
- Средства разработки программ
- Kylix
- Develop
- Glade
- VDK Builder
- Motor
- Rhide
- SNiFF+ Penguin IDE
- Code Forge
- CodeWarrior
- CRiSP
- Мультимедиа-приложения
- Аудио
- Видео
- Игры
- Итоги
- Ссылки
- Часть II. Базовая информация о Linux
- Глава 3. Работа в сети. Основные понятия
- Модели сетевых взаимодействий
- Терминология
- Модель взаимодействия открытых систем (OSI)
- Модель сетевого взаимодействия TCP/IP
- Сопоставление сетевых моделей OSI и TCP/IP
- Сетевые протоколы
- Семейство протоколов TCP/IP
- Протоколы межсетевого уровня (интернет)
- Протокол IP
- Сетевые пакеты
- Протокол адресации ARP/RARP
- Протокол ICMP
- Протоколы транспортного уровня
- Протокол TCP
- Протокол UDP
- Протоколы уровня приложений
- Протокол FTP
- Протокол SMTP
- Протокол Telnet
- Сетевая файловая система NFS
- Протокол IPX
- Протокол AppleTalk
- Протокол NetBIOS
- Протокол DECnet
- Стандарты в Интернете
- Ссылки
- Глава 4. Идеология файловой системы
- История развития файловых систем Linux
- Файл
- Типы файлов
- Владельцы файлов
- Права доступа к файлам
- Модификаторы прав доступа
- Файловые системы
- Типы файловых систем
- Установка файловой системы
- Монтирование и демонтирование файловой системы
- Поддержка работоспособности файловых систем
- Виртуальная файловая система (VFS)
- Файловая система Ext2
- Конец ознакомительного фрагмента
- Главная
- Алексей Стахнов
- 📚 Книги
- Linux
- Читать фрагмент
- Виртуальная файловая система (VFS)Виртуальная файловая система (VFS)
Виртуальная файловая система (VFS)
База, на которой основывается использование всего многообразия поддерживаемых файловых систем.
Ядро системы Linux содержит в себе программный код-посредник, выполняющий функции виртуальной файловой системы. Этот код обрабатывает запросы к файлам и вызывает необходимые функции соответствующей файловой системы для выполнения операции ввода/вывода. Такой механизм работы с файлами используется для упрощения объединения и использования нескольких типов файловых систем.
Пусть программа записывает информацию в файл (или считывает ее, не суть важно). Программой вызывается библиотечная функция, отвечающая за запись (или чтение) информации в файл. Эта функция определенным образом подготавливает информацию, которая затем передается в ядро системы. Ядро, в свою очередь, вызывает соответствующую функцию виртуальной файловой системы. Эта функция определяет, с каким типом файловой системы будут производиться манипуляции, подготавливает данные и вызывает необходимую функцию соответствующей файловой системы, с которой производится операция. Такая многоуровневая структура позволяет максимально абстрагироваться от особенностей операционной системы и, в случае необходимости, безболезненно эмулировать недостающие атрибуты файла.
Виртуальная файловая система содержит набор функций, которые должна поддерживать любая файловая система (создание, удаление, модификация файла, каталога и тому подобные действия). Этот интерфейс состоит из функций, которые оперируют тремя типами объектов: файловые системы, индексные дескрипторы и открытые файлы.
Виртуальная файловая система использует таблицу, в которой во время компиляции ядра сохраняется информация о всех типах поддерживаемых файловых систем. Запись в таблице содержит тип файловой системы и указатель на соответствующую функцию монтирования файловой системы. При монтировании файловой системы эта функция возвращает виртуальной файловой системе дескриптор, который используется в дальнейшем в операциях ввода/вывода.
Дескриптор смонтированной файловой системы содержит определенный набор информации: указатели на функции, служащие для выполнения операций данной файловой системы, и данные, используемые этой системой. Указатели на функции, расположенные в дескрипторе файловой системы, позволяют виртуальной файловой системе получить доступ к функциям, специфичным для данной файловой системы.
В виртуальной файловой системе применяются еще два типа дескрипторов: индексный дескриптор и дескриптор открытого файла. Каждый из них содержит информацию, связанную с обрабатываемыми файлами и набором операций, используемых файловой системой. Индексный дескриптор содержит указатели к функциям, применяемым к любому файлу, а дескриптор открытого файла содержит указатели к функциям, оперирующим только с открытыми файлами.