Поле | Описание |
---|---|
u_short vflag | Флаги vnode |
u_short v_count | Число ссылок на vnode |
struct filock *v_filocks | Блокировки файла |
struct vfs *v_vfsmountedhere | Указатель на подключенную файловую систему, если vnode является точкой монтирования |
struct vfs *v_vfsp | Указатель на файловую систему, в которой находится файл |
enum vtype v_type | Тип vnode: обычный файл, каталог, специальный файл устройства, символическая связь, сокет |
caddr_t v_data | Указатель на данные, относящиеся к реальной файловой системе |
struct op | Операции vnode |
Каждый vnode содержит число ссылок v_count
, которое увеличивается при открытии процессом файла и уменьшается при его закрытии. Когда число ссылок становится равным нулю, вызывается операция vn_inactive()
, которая сообщает реальной файловой системе, что на vnode никто больше не ссылается. После этого файловая система может освободить vnode (и, например, соответствующий ему inode) или поместить его в кэш для дальнейшего использования.
Поле v_vfsp
указывает на файловую систему (структуру vfs
, о которой мы поговорим в следующем разделе), в которой расположен файл, адресованный данным vnode. Если vnode является точкой монтирования, то поле v_vfsmountednere
указывает на подключенную файловую систему, "перекрывающую" данный vnode.
Поле v_data
указывает на данные, относящиеся к конкретной реализации реальной файловой системы. Например, для дисковой файловой системы ufs, v_data
указывает на запись в таблице in-core inode.
Набор операций над vnode указан полем v_op
. В терминах объектно-ориентированного программирования этот набор представляет собой виртуальные методы класса vnode. Он является своего рода шлюзом к реальной файловой системе, позволяя предоставить общий интерфейс виртуальной файловой системы и в то же время обеспечить специфические реализации функций работы с файлами, необходимые для различных типов файловых систем. Некоторые операции, большинство из которых уже знакомы читателю по системным вызовам, приведены в табл. 4.2.
Таблица 4.2. Операции с vnode виртуальной файловой системы
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии