int (*vn_open)() | Открыть vnode. Если операция предусматривает создание клона (размножение), то в результате будет размещен новый vnode. Обычно операции такого типа характерны для специальных файлов устройств. |
int (*vn_close)() | Закрыть vnode. |
int (*vn_read)() | Чтение данных файла, адресованного vnode. |
int (*vn_write)() | Запись в файл, адресованный vnode. |
int (*vn_ioctl)() | Задание управляющей команды. |
int (*vn_getaddr)() | Получить атрибуты vnode: тип vnode, права доступа, владелец-пользователь, владелец-группа, идентификатор файловой системы, номер inode, число связей, размер файла, оптимальный размер блока для операций ввода/вывода, время последнего доступа, время последней модификации, время последней модификации vnode, число занимаемых блоков. |
int (*vn_setaddr)() | Установить атрибуты vnode. Могут быть изменены UID, GID, размер файла и времена доступа и модификации. |
int (*vn_access)() | Проверить права доступа к файлу, адресованному vnode. При этом производится отображение между атрибутами доступа файлов UNIX и атрибутами реальной файловой системы (например, DOS). |
int (*vn_lookup)() | Произвести трансляцию имени файла в соответствующий ему vnode. |
int (*vn_create)() | Создать новый файл и соответствующий ему vnode. |
int (*vn_remove)() | Удалить имя файла в указанном vnode каталоге. |
int (*vn_link)() | Создать жесткую связь между именем файла и vnode. |
int (*vn_mkdir)() | Создать новый каталог в указанном vnode каталоге. |
int (*vn_rmdir)() | Удалить каталог. |
int (*vn_readdir)() | Считать записи каталога, адресованного vnode. |
int (*vn_symlink)() | Создать символическую связь между новым именем и именем файла, расположенном в указанном vnode каталоге. |
int (*vn_readlink)() | Чтение файла — символической связи. |
int (*vn_fsync)() | Синхронизировать содержимое файла — записать все кэшированные данные. |
int (*vn_inactive)() | Разрешить удаление vnode, т.к. число ссылок на vnode из виртуальной файловой системы стало равным нулю. |
Взаимосвязь между независимыми дескрипторами (vnode) и зависимыми от реализации метаданными файла показана на рис. 4.8.
Рис. 4.8. Метаданные файла виртуальной файловой системы
Монтирование файловой системы
Прежде чем может состояться работа с файлами, соответствующая файловая система должна быть встроена в существующее иерархическое дерево.
Только после этого ядро сможет выполнять файловые операции, такие как создание, открытие, чтение или запись в файл. Эта операция встраивания получила название
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии