Annotation for Automation: Rapid Generation of File System Tools

Kuei Sun, Daniel Fryer, Angela Demke Brown, Ashvin Goel

Proceedings of the 7th Workshop on Programming Languages and Operating Systems (PLOS'13), Farmington, PA, November 2013

 

Abstract

Today file system tools and file-system aware storage applications are tightly coupled with file system implementations. Developing these applications is challenging because it requires detailed knowledge of the file system format, and the code for interpreting file system metadata has to be written manually. This code is complex and file-system specific, and so the application requires significant re-engineering to support different file systems. We propose a file system annotation language for specifying a file system's on-disk metadata format. File system developers are asked to annotate the data structure definitions of a file system's metadata. The annotated code is parsed and used by tool-specific code templates to create interpretation routines (e.g., a metadata parser) for the desired file system tool. The benefit is that different tools can reuse the interpretation routines, and they are much less dependent on file system formats and implementations. We show the feasibility of this approach by implementing a compiler that generates a runtime metadata interpreter for an annotated toy file system. The generated code has low overhead (roughly 3%) compared to a hand-written version of the same application.

 

Manuscript

Pdf

 

Bibtex

Bib