My thesis is that it is possible to implement vnode stacking in a fashion that is portable across operating systems, without the need for kernel source code, without having to change the existing vnode interface, and with only a negligible decrease in file system performance.
In particular, I propose to demonstrate a language and compiler called FiST (for File System Translator). New types of file systems -- such as the compressing or encrypting file systems mentioned above -- are described as FiST programs. The FiST compiler then produces C code matched to the internal interfaces of the target operating system. Besides ease of implementation and portability, a further advantage of implementing file systems in FiST is that the resulting C code can be tailored for either in-kernel or out-of-kernel use, according to whether performance or flexibility is the primary goal.