... ``device.''1
While NFS does not use the network as a persistent storage medium, it uses it to communicate to servers that, in turn, store the files on local disks.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... machines.2
For example our department uses the Amd automounter and has seen more than once the severe effects of its aborting. Shells hang because of attempts to access auto-mounted paths in users' $PATH variables, so no new programs can be started. Long-running programs such as emacs also hang because they often perform file systems access for user files, auto-saves, auto-loading emacs-lisp files, etc. Within a few minutes of Amd's abnormal exit, the machine becomes unusable and needs a reboot.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... interface3
When I speak of the ``vnode interface,'' it should be taken to include the vnode interface that provides operations on files and the VFS interface that provides operations on file systems.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ``chain''4
Actually a DAG, to provide fan-in and fan-out.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... ``prepare''5
In transaction terminology, ``prepare'' means to stop processing and prepare to either commit or abort.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Skinner6
Both currently working at Sun Microsystems.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Wrapfs.7
I do not change system call interface functions such as create(2); the kernel is responsible for calling a particular file systems' vnode operations, and those I may modify.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... portability.8
Most kernels (as well as Amd) were written in C, and cannot handle module linkage of objects that are written in C++. There are more C compilers available than C++ compilers, and C compilers generally produce faster and smaller object modules.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... backups.9
This is what's called ``security by obscurity.''
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... unintentionally.10
At least once, we all have intended to type rm *.o, but instead typed rm * .o.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Erez Zadok
1999-12-07