A ptrace Monitoring Framework for Rapid File System Development

A Goanna
This picture of a Goanna (more specifically, a Lace monitor) was taken in Australia's Northern Territories on a remote island on the Adelaide River by Trevor Smith.
   mon·i·tor (Pronounciation
key for monitor.), n.
  1. One who admonishes; one who warns of faults, informs of duty, or gives advice and instruction by way of reproof or caution.
  2. Computer Science. A control program within the operating system that manages the allocation of system resources to active programs.
  3. Biology Any of various tropical carnivorous lizards of the family Varanidae, living in the East Indies, southern Asia, Africa, Australia, and New Guinea and ranging in length from several centimeters to 3 meters (10 feet).

Goanna (named after the Australian genus of monitor lizard) is our user-space file system framework based on Unix's process tracing framework, ptrace.

Developing kernel-level file systems is a difficult task that requires a significant time investment. For experimental file systems, it is desirable to develop a prototype first before investing the time in developing a kernel-level file system. We have developed a ptrace monitoring infrastructure for file system prototyping. As our system runs entirely in user-space, debugging is made easier and it is possible to leverage existing tested user-level libraries. Because our monitor intercepts all OS entry points (i.e., system calls and signals) it is able to provide more functionality than other prototyping techniques, which are limited by the VFS interface (e.g., FUSE) or network protocols (e.g., user-level NFS servers). In addition, our framework exists outside the large base of existing kernel code, giving the developer a clean slate to work from. We have developed several example file systems using our framework, including a pass-through layered file system, a layered encryption file system, and a user-level ISO9660 file system. We analyzed the complexity of our code, and show savings for a pass-through file system of 53% compared to user-level pass-through file systems and a factor of 4.7 for an in-kernel pass-through file system. Our performance evaluation demonstrates that our infrastructure has an acceptable overhead of 18.4% for a pass-through file system.

Download Goanna

Goanna was developed on Fedora Core 4 with a Linux 2.6 kernel. Goanna can be run with a vanilla (or Fedora kernel), or for better performance using a modified kernel that has improved ptrace primitives. We will release the source code under the GPL imminently (after cleaning up the build process and writing some user documentation). In the mean time you can contact us for a pre-release.

Journal Articles:

# Title (click for html version) Formats Published In Date Comments
1 Extending ACID Semantics to the File System PS PDF BibTeX ACM Transactions on Storage (TOS) Jun 2007  

Conference and Workshop Papers:

# Title (click for html version) Formats Published In Date Comments
1 Enabling Transactional File Access via Lightweight Kernel Extensions PS PDF BibTeX Seventh USENIX Conference on File and Storage Technologies (FAST 2009) Feb 2009  
2 Rapid File System Development Using ptrace PS PDF BibTeX Proceedings of the Workshop on Experimental Computer Science (EXPCS 2007), in conjunction with ACM FCRC Jun 2007  

Technical Reports:

# Title (click for html version) Formats Published In Date Comments
1 Extending ACID Semantics to the File System via ptrace PS PDF BibTeX Stony Brook U. CS TechReport FSL-06-04 May 2006 Ph.D. Thesis

Past Students:

# Name (click for home page) Program Period Current Location
1 Gopalan Sivathanu PhD Sep 2003 - May 2008 Software Engineer, Systems Infrastructure group, Google (Mountain View, CA)
2 Charles P. Wright PhD May 2003 - May 2006 Partner, Senior Software Architect, Illumon (New York, NY)
3 Rick Spillane BS/MS Jan 2005 - Dec 2007 Stony Brook U. CS Ph.D. program (Stony Brook, NY)

Sponsors:

# Sponsor Amount Period Type Title (click for award abstract)
1 NSF CSR--PDOS $561,727 2006-2009 Lead-PI Support for Atomic Sequences of File System Operations
2 NSF Trusted Computing (TC) $400,000 2003-2006 Sole PI A Layered Approach to Securing Network File Systems