Check out the new USENIX Web site. USENIX - Summaries

A Novel Way of Extending the Operating System at the User Level: The UFO Global File System

By Albert D. Alexandrov, Maximilian Ibel, Klaus E. Schauser, and Chris Scheiman, University of California, Santa Barbara

Summary by Michael Stok

The UFO (User-level File Organizer) global filesystem was implemented using user-level facilities to allow individual users to construct views of a filesystem that can include remote files accessible by HTTP or FTP. This provides a vehicle to demonstrate the performance of user-level operating system extensions as well as a convenient tool for individuals to access files on sites without requiring system administrators' assistance.

The mechanism used to perform this, called the catcher, uses the /proc filesystem, available on many UNIX(like) systems, to intercept specific system calls and use the UFO module to handle them specially before finally returning some reasonable value to the user-level application. The UFO module currently makes use of FTP and HTTP, but it could accommodate other protocols as needed.

The mapping from filenames and paths at the application level and the transport mechanism and real location of the file is contained in a file similar to fstab.

UFO's method of operation is to intercept open and closed system calls to allow it to create a local stub for a file (when reading a directory) or transfer the real thing when the file is opened to read and to write back the copy when the user saves it.

In presenting an individually selectable view of the world, it's possible to choose an appropriate coherency policy between the files UFO creates on the local system and the "real" files on the remote system-effectively UFO builds a populate-on-demand cache where the acceptable level of staleness while a file is in use and the acceptable delay between closing the file and the remote copy being brought up to date are configurable.

UFO creates local stubs with the right size and inode information (within reason) for the remote file, and as a file is read or written, the remote file is fetched before the operation is allowed to continue. Once the local stub or copy has been created, the reading and writing and other file operations can be performed locally. The results presented showed that there was little impact on the time taken to do these operations if UFO was operating on a locally cached copy. The results also showed an expected increase in the time taken to service open, closed, and stat calls.

As the UFO makes use of stateless transfer protocols, some filesystem semantics are changed, but this doesn't impact its usefulness as a tool. The presenter uses it as a tool on a daily basis.

Originally published in ;login: Vol. 22, No.2, April 1997.
Last changed: May 28, 1997 pc
Summaries Index
Anaheim Index
Proceedings Index