Can file systems perform adequately and be source-portable at the same time? The answer is yes, and is explored in the rest of this proposal. Section sec-bg provides background on vnode interfaces proposed and used over the past decade. Section sec-design explains the conceptual design of my system, including the current implementation. Section sec-fist details the core of this proposal: the FiST language (with a few extended examples in Appendix sec-appendix-example). I map out the plan for evaluating my work in Section sec-eval and describe related work in Section sec-related. I conclude with a summary in Section sec-summary.
Several appendices follow, expanding on relevant material. These include a tutorial on vnodes for readers not familiar with the details, a list of example file systems that could be generated using FiST, a set of extended examples using FiST and showing code that would be generated, actual working code showing the actions that occur when a file system is stacked on top of another, and the last appendix describes facilities for promoting portability.