A vnode
is a
data structure introduced by the
SunOS
Virtual file system to represent a file in an actual
file system.
[1]
It provides an
abstract interface to the underlying file system, allowing a clean interface between the
kernel and different file systems.
The name vnode is suggested by " virtual inode", where an inode is the data structure used by UFS to hold metadata about the file on disk.
The vnode interface is an example of
object oriented programming techniques being used to achieve
polymorphism. Each vnode contains a pointer to a
vnodeops
structure which is itself a list of pointers to functions that implement the various file system operations on that vnode, for example as part of the process of removing a file the kernel would make the call:
vp->v_op->vn_remove (vp, filename, credentials);
Where vp
is a pointer to the vnode for the directory containing the file.
The actual function pointed to by vn_remove
depends on the file system holding the file, it might be the function for removing a file from a
UFS files system, or the function for sending a
RPC message to another machine to remove a file on
NFS filesystem.
The calling code does not need to know which underlying file system is being used, they all implement the same list of operations.
Compaq Servernet http://findarticles.com/p/articles/mi_m0EKF/is_n2088_v41/ai_17496302 Compaq taps Tandem's ServerNet I/O scheme Electronic News, Oct 23, 1995
User:HughesJohn/Sandbox/MINIMOP
User:HughesJohn/Sandbox/ALGOL 68RS
INT n = 2;
CO n is a fixed constant of 2.CO
INT m := 3;
CO m is a newly created local variable whose value is initially set to 3.
This is short for REF INT m = LOC INT := 3; CO
REAL avogadro = 6.0221415⏨23; CO Avogadro's number CO
LONG LONG REAL pi = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510;
COMPL square root of minus one = 0 ⊥ 1
FORMAT fred = $"silly format"d$;
Criticism: should replace uppercase words by bold as in publication style. Maybe need "lang"'s for each of the stropping regimes (POINT, UPPER, RES).
Criticism: Does nothing with non-builtin bold words (user modes, operators).
Criticism: Doesn't recognise multi-line comment. How does C do that?
Criticism: Doesn't know about formats.
int fred; /* Multiline
comments are
handled? */