THE ADVANCED COMPUTING SYSTEMS ASSOCIATION The following paper was originally published in the Proceedings of the USENIX Annual Technical Conference Monterey, California, USA, June 6-11, 1999 Extending File Systems Using Stackable Templates _ Erez Zadok, Ion Badulescu, and Alex Shender Columbia University © 1999 by The USENIX Association All Rights Reserved Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. For more information about the USENIX Association: Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email:
[email protected] WWW: http://www.usenix.org Extending File Systems Using Stackable Templates Erez Zadok, Ion Badulescu, and Alex Shender Computer Science Department, Columbia University ezk,ion,alex @cs.columbia.edu { } Abstract Kernel-resident native file systems are those that inter- Extending file system functionality is not a new idea, act directly with lower level media such as disks[9] and but a desirable one nonetheless[6, 14, 18]. In the several networks[11, 16]. Writing such file systems is difficult years since stackable file systems were first proposed, only because it requires deep understanding of specific operat- a handful are in use[12, 19]. Impediments to writing new ing system internals, especially the interaction with device file systems include the complexity of operating systems, drivers and the virtual memory system. Once such a file the difficulty of writing kernel-based code, the lack of a system is written, porting it to another operating system true stackable vnode interface[14], and the challenges of is just as difficult as the initial implementation, because porting one file system to another operating system.