Thursday, Feb 23rd

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Обзор системы ввода/вывода Операции vnode

Операции vnode

Vnode разработаны как объектно-ориентированный интерфейс. Соответственно ядро манипулирует ими, передавая запросы нижележащему объекту посредством набора определенных операций. Из-за множества различающихся файловых систем, которые поддерживаются в FreeBSD, набор операций, определенных для vnode, и большой, и расширяемый. В отличие от первоначальной реализации vnode фирмой Sun Microsystems, реализация в FreeBSD допускает динамическое добавление операций vnode либо во время загрузки системы, либо в ходе динамической загрузки в ядро новой файловой системы. В процессе активации файловая система регистрирует набор операций vnode, которые она поддерживает. Затем ядро строит таблицу, которая перечисляет объединение всех операций, поддерживаемых любой файловой системой. Из этой таблицы оно строит вектор операций для каждой файловой системы. Поддерживаемые операции заполняются точками входа, зарегистрированными системой. Файловые системы могут предпочесть, чтобы неподдерживаемые операции заполнялись либо процедурой по умолчанию (обычно процедурой для передачи операции на следующий,

Либо процедурой, возвращающей типичную ошибку «операция не поддерживается» [Heidenamm & Popek, 1994].

В 4.3BSD код локальной файловой системы предоставлял как семантику иерархического именования файловой системы, так и детали управления дисковой памятью. Эти функции связаны лишь незначительно. Чтобы дать возможность экспериментировать с другими методиками дисковой памяти без необходимости воспроизводить всю семантику именования, 4.4BSD разнесла код именования и код хранения в отдельные модули. Операции уровня vnode определяют набор иерархических операций файловой системы. Ниже уровня именования находится отдельный набор операций, определенных для хранения объектов различного размера с использованием плоского пространства имен. Около 60 процентов традиционного кода файловой системы стали кодом управления пространством имен, а оставшиеся 40 процентов стали кодом реализации дискового хранилища файлов. Система 4.4BSD использовала это разделение для поддержки двух отдельных схем дисков: традиционной быстрой файловой системы и файловой системы, структурированной для журналирования. В FreeBSD поддержка файловой системой со структурированием для журналирования была опущена из-за отсутствия тех, кто хотел бы ее поддерживать, но она остается основной файловой системой в NetBSD.


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 28 гостей онлайн