"Stacking/" Vnodes: A Progress Report

People are dissatisfied with the file system services that come with their UNIX systems. They want to add new and better features. At present they have two choices: express their service as a user-level NFS server, or use the vnode/VFS interface to build at least part of it into the kernel. Although the vnode/VFS interface has been remarkably successful as a kernel structuring concept, it has failed to provide source portability between UNIX versions or even binary compatibility between releases of the same UNIX version. It has been obvious for some time that a redesign of the vnode/VFS interface that allowed file systems to be shipped as binary kernel modules that survive from release to release is needed. We describe a prototype kernel with a vnode/VFS interface that would allow this. It is based on earlier work on "stacking" vnodes at Sun and at UCLA, but it replaces the stacking concept by a more strictly object-oriented concept of interposition.