The vnode interface3 was invented over a decade ago to facilitate the implementation of multiple file systems in one operating system [Kleiman86], and it has been very successful at that. It is now universally present in Unix operating systems. Readers not familiar with the vnode interface may refer to Appendix sec-appendix-vnode for a tutorial on the subject.
The designers of the original vnode interface envisioned ``pluggable'' file system modules [Rodriguez86], but this capability was not present at the beginning. Through the 1980s Sun made at least three revisions of the interface designed to enhance plugability [Rosenthal90]. However, during the same period Sun lost control of the vnode definition as other operating system vendors made slight, incompatible, changes to their vnode interfaces.