На ранних UNIX-системах элементы файлов непосредственно ссылались на inode локальной файловой системы, inode представляет собой структуру данных, которая описывает содержимое файла. Этот подход замечательно работал, когда была единственная реализация файловой системы. Однако с появлением множества типов файловых систем архитектуру пришлось обобщить. Новая архитектура должна была поддерживать импортирование файловых систем с других машин, включая машины, которые работали с другими операционными системами.
Одной из альтернатив могло бы быть объединение множества файловых систем в систему в виде различных типов файлов. Однако этот подход потребовал бы значительного реструктурирования внутренней работы системы, поскольку текущие каталоги, ссылки на исполняемые файлы и несколько других интерфейсов использовали в качестве точки привязки inode вместо элементов файлов. Таким образом, было проще и логичнее добавить к системе новый объектно-ориентированный уровень ниже элемента файла и выше inode. Этот новый уровень впервые был реализован компанией Sun Microsystems, которая назвала его уровнем виртуального узла или уровнем vnode2. Интерфейсы в системе, которые ранее ссылались на inode, были изменены для ссылки на общие vnode. vnode, используемый локальной файловой системой, ссылался бы на inode. vnode, используемый удаленной файловой системой, ссылался бы на управляющий блок протокола, который описывал расположение и сведения об именовании, необходимые для доступа к удаленному файлу.
- 16/11/2010 03:20 - Службы экспортированных файловых систем
- 15/11/2010 15:49 - Трансляция имен путей
- 14/11/2010 09:58 - Операции vnode
- 12/11/2010 12:38 - Содержимое vnode
- 09/11/2010 19:30 - Перемещение данных внутри ядра
- 09/11/2010 18:56 - Реализация select
- 08/11/2010 02:22 - Мультиплексирование ввода/вывода для дескрипторов
- 04/11/2010 08:33 - Блокировка дескриптора файла
- 03/11/2010 00:01 - Асинхронный ввод/вывод