Уровень обобщенной файловой системы

Уровень обобщенной файловой системы

Общий интерфейс для всех типов файловых систем возможен только благодаря тому, что в ядре реализован обобщающий уровень, который скрывает низкоуровневый интерфейс файловых систем. Данный обобщающий уровень позволяет операционной системе Linux поддерживать различные файловые системы, даже если эти файловые системы существенно отличаются друг от друга своими функциями и особенностями работы. Это в свою очередь становится возможным благодаря тому, что подсистема VFS реализует общую файловую модель, которая в состоянии представить общие функции и особенности работы потенциально возможных файловых систем. Конечно, эта модель имеет уклон в сторону файловых систем в стиле Unix (что представляют собой файловые системы в стиле Unix, будет рассказано в следующем разделе). Несмотря на это в ОС Linux поддерживается довольно большой диапазон различных файловых систем.

Обобщенный уровень работает путем определения базовых интерфейсов и структур данных, которые нужны для поддержки всех файловых систем. Код поддержки каждой файловой системы должен формировать все концепции своей работы в соответствии с шаблонными требованиями подсистемы VFS, например "так открываем файл", а "так представляем каталог". Код файловой системы скрывает все детали реализации. По отношению к уровню VFS и остальным частям ядра все файловые системы выглядят одинаково, т.е. все файловые системы начинают поддерживать такие объекты, как файлы и каталоги, и такие операции, как создание и удаление файла.

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

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

write(f, &buf, len);

Этот системный вызов записывает len байт из области памяти по адресу &buf в файл, представленный с помощью дескриптора f, начиная с текущей позиции файла. Этот системный вызов вначале обрабатывается общей функцией ядра sys_write(), которая определяет функцию записи в файл для той файловой системы, на которой находится файл, представленный дескриптором f. Далее общий системный вызов вызывает найденную функцию, которая является частью реализации файловой системы и служит для записи данных на физический носитель (или для других действий, которые файловая система выполняет при записи файла). На рис. 12.2 показана диаграмма выполнения операции записи, начиная от пользовательской функции write() и заканчивая поступлением данных на физический носитель. Далее в этой главе будет показано, как подсистема VFS позволяет достичь необходимой абстракции и какие для этого обеспечиваются интерфейсы.

Рис. 12.2. Схема прохождения данных из пространства пользователя, где вызывается функция write(), через общий системный вызов VFS, к специфическому методу записи файловой системы и, наконец, поступление на физический носитель

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.14.2 Демонтирование файловой системы

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

5.14.2 Демонтирование файловой системы Синтаксис вызова системной функции umount:umount(special filename);где special filename указывает демонтируемую файловую систему. При демонтировании файловой системы (Рисунок 5.27) ядро обращается к индексу демонтируемого устройства, восстанавливает


5.16.1 Целостность файловой системы

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

5.16.1 Целостность файловой системы Ядро посылает свои записи на диск для того, чтобы свести к минимуму опасность искажения файловой системы в случае системного сбоя. Например, когда ядро удаляет имя файла из родительского каталога, оно синхронно переписывает каталог на


5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ

Из книги Реестр Windows автора Климов Александр

5.18 СОПРОВОЖДЕНИЕ ФАЙЛОВОЙ СИСТЕМЫ Ядро поддерживает целостность системы в своей обычной работе. Тем не менее, такие чрезвычайные обстоятельства, как отказ питания, могут привести к фатальному сбою системы, в результате которого содержимое системы утрачивает свою


4.2.4. Проверка файловой системы

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

4.2.4. Проверка файловой системы Для проверки файловой системы используется программа fsck (сокращение от file system check). С помощью данной программы вы можете проверить не только файловые системы Linux, но и Windows-разделы (только vfat). Единственное требование - перед началом проверки


Ускорение файловой системы

Из книги Установка и настройка Windows XP. Легкий старт автора Донцов Дмитрий

Ускорение файловой системы Можно ускорить действие файловой системы, (если позволяет оперативная память) увеличив параметр типа DWORD °IoPageLockLimit° от заданных по умолчанию 512 КБ до 4 МБ и более в разделе HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementЭтот параметр представляет


4.13. Обслуживание файловой системы

Из книги Новейший самоучитель работы на компьютере автора Белунцов Валерий

4.13. Обслуживание файловой системы Обслуживание файловой системы в ОС Linux сводится к двум операциям:1. Проверка.2. Дефрагментация.Проверка и восстановление файловой системы Linux выполняется программой fsck. Перед проверкой файловая система должна быть смонтирована в режиме


Выбор файловой системы

Из книги Информатика: аппаратные средства персонального компьютера автора Яшин Владимир Николаевич

Выбор файловой системы Файловая система необходима для систематизации файлов и управления ими. Термин FAT образовался от начальных букв словосочетания File Allocation Table (таблица размещения файлов). Файловая система создается при форматировании жесткого диска, который может


Дефрагментация файловой системы

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

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


6.6.1. Назначение и функционирование файловой системы

Из книги Linux: Полное руководство автора Колисниченко Денис Николаевич

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


10.2.3. Идентификатор uid файловой системы

Из книги Linux автора Стахнов Алексей Александрович

10.2.3. Идентификатор uid файловой системы В очень специальных случаях программе может понадобиться сохранять свои права root для всего, кроме доступа к файловой системе, при котором она использует пользовательский uid. Изначально использовавшийся в Linux NFS-сервер пространства


2.2. Изнанка файловой системы

Из книги Операционная система UNIX автора Робачевский Андрей М.

2.2. Изнанка файловой системы С точки зрения операционной системы, под файловой системой понимается внутренняя управляющая структура, заведующая хранением данных на физическом носителе, их поиском, извлечением и записью по запросам программ. Такие управляющие структуры


Глава 4 Идеология файловой системы

Из книги автора

Глава 4 Идеология файловой системы Одним из столпов операционной системы является файловая система. От ее архитектуры, возможностей, надежности во многом зависит работоспособность операционной системы. Помимо продуманной «родной» файловой системы крайне желательно,


Структура файловой системы UNIX

Из книги автора

Структура файловой системы UNIX Использование общепринятых имен основных файлов и структуры каталогов существенно облегчает работу в операционной системе, ее администрирование и переносимость. Эта структура используется в работе системы, например при ее инициализации


Монтирование файловой системы

Из книги автора

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


Целостность файловой системы

Из книги автора

Целостность файловой системы Значительная часть файловой системы находится в оперативной памяти. А именно, в оперативной памяти расположены суперблок примонтированной системы, метаданные активных файлов (в виде системно-зависимых inode и соответствующих им vnode) даже