Michael J. Karels
Marshall Kirk McKusick
Computer Systems Research Group
Computer Science Division
Department of Electrical Engineering and Computer Science
University of California, Berkeley
Berkeley, California 94720
As network or remote filesystems have been implemented for UNIX,** several stylized interfaces between the filesystem implementation and the rest of the kernel have been developed. Notable among these are Sun Microsystems' Virtual Filesystem interface (VFS) using vnodes, Digital Equipment's Generic File System (GFS) architecture, and AT&T's File System Switch (FSS). Each design attempts to isolate filesystem-dependent details below a generic interface and to provide a framework within which new filesystems may be incorporated. However, each of these interfaces is different from and incompatible with the others. Each of them addresses somewhat different design goals. Each was based on a different starting version of UNIX, targetted a different set of filesystems with varying characteristics, and uses a different set of primitive operations provided by the filesystem. The current study compares the various filesystem interfaces. Criteria for comparison include generality, completeness, robustness, efficiency and esthetics. Several of the underlying design issues are examined in detail. As a result of this comparison, a proposal for a new filesystem interface is advanced that includes the best features of the existing implementations. The proposal adopts the calling convention for name lookup introduced in 4.3BSD, but is otherwise closely related to Sun's VFS. A prototype implementation is now being developed at Berkeley. This proposal and the rationale underlying its development have been presented to major software vendors as an early step toward convergence on a compatible filesystem interface.