A ptrace Monitoring Framework for Rapid File System Development
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 (), n.
- One who admonishes; one who warns of faults, informs of duty, or gives
advice and instruction by way of reproof or caution.
- Computer Science. A control program within the operating system
that manages the allocation of system resources to active programs.
- 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:
Conference and Workshop Papers:
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: