The
vnode structure ("virtual node") is an essential part of the
virtual file system (VFS) support in Linux.
A definitive paper entitled
"Vnodes: An Architecture for Multiple File System Types in Sun Unix," by S. R. Kleiman, can be found (says Google) at
http://209.85.215.104/search?q=cache...lnk&cd=2&gl=us , which reads in part:
Quote:
The file system dependent/independent split was done just above the UNIX-kernel inode layer. This was an obvious choice, as the inode was the main object for file manipulation in the kernel. [...] The file system dependent inode was renamed vnode (virtual node). All file manipulation is done with a vnode object. Similarly, file systems are manipulated through an object called a vfs (virtual file system). The vfs is the analog to the old mount-table entry. The file system independent layer is generally referred to a the vnode layer.
|
In the original Unix file systems, the "actual" representation of a file (or directory or whatever) was called "an
inode," and it was referenced by number. Directory entries simply contained a list of file-names and corresponding inode-numbers. This scheme exists today.
The VFS system allows filesystems of any type ... both disk-based file systems and network ones ... to be used in Unix/Linux, while retaining the essential concept of "an inode," now called "vnode." This arrangement preserves a nearly one-to-one correspondence between "the old way" and "the new way." The
logical data structure, as seen and manipulated by Unix programs, exists much as it was before, and thereby insulates programs from the (possibly very enormous) actual
physical differences. In typical Unix fashion, the solution is "elegant."