# Stackable Layers: an Architecture for File System Development

John S. Heidemann
University of California, Los Angeles

## Abstract

This thesis proposes the \em stackable layers\/ method of file system design. This approach constructs file systems from a number of independently developed \em layers. Each layer is bounded by a symmetric interface, syntactically identical above and below. Layers combine in \em stacks, linear or tree-shaped collections, each layer building on the functionality of those beneath it.

Stackable filing improves file system development in several ways. Stacking encourages code re-use by building upon already existing layers. Incremental improvement is possible by substitution of existing layers. The layer interface is extensible, allowing new operations to be easily added by third-parties. Each operation is carefully described, permitting existing layers to adjust automatically to the addition of new operations.

The feasibility of stackable filing is demonstrated by the development of a prototype layer interface and several file system layers. The performance of multi-layer stacks is found comparable to that of monolithic file systems. Through the re-use of existing services, we find development of new filing services with stackable layers significantly easier than development with traditional methods.

## Availability

This paper is available in several formats: abstract web page with pointers and cites, gzip'ed postscript, PDF, paper copies can be obtained by mail to the authors. Copyright terms for this paper appear below.

## Reference

Heidemann91c
John S. Heidemann. Stackable Layers: an Architecture for File System Development. Technical Report CSD-910056, University of California, Los Angeles, July, 1991. Master's Thesis.. <http://www.isi.edu/~johnh/PAPERS/Heidemann91c.html>.
@techreport{Heidemann91c,
author = "John S. Heidemann",
title = "Stackable Layers: an Architecture for
File System Development",
institution = "University of California, Los Angeles",
year = "1991",
number = "CSD-910056",
month = "July",
pages = "100",
keywords = "stackable layers, Ficus",
note = "Master's Thesis.",
keywords = "stackable layers, Ficus",
url = "http://www.isi.edu/~johnh/PAPERS/Heidemann91c.html",
psurl = "http://www.isi.edu/~johnh/PAPERS/Heidemann91c.ps.gz",
pdfurl = "http://www.isi.edu/~johnh/PAPERS/Heidemann91c.pdf",
oldurl = "ftp://ftp.cs.ucla.edu/pub/ficus/ucla_csd_910056.ps.gz",
organization = "University of California, Los Angeles",
}