IFS --- an Intensional File System
UCLA Computer Science Dept.
3532 Boelter Hall
(310) 825-6871 (OFC)
(310) 825-1322 (SEC)
(310) 825-2273 (FAX)

IFS --- Publications and Implementation

  • IFS -- an Intensional File System
    full version (abstract) (ps)
    early, short version (abstract) (ps)

  • IFS implementation for SunOS 4.0.1
    (compressed tar file)

  • Oracle's Internet File System (iFS)
    Summary for Oracle iDevelop '99:
    Oracle's Internet File System (iFS) is a file system that is seamlessly integrated with the Oracle8i database providing a single facility to store and manage all information - files, voice mails, e-mail messages, multimedia information, database data, and any XML information. IFS eliminates "islands of information" in your organization and radically simplifies how you develop Internet applications. iFS provides integrated facilities to store all types of Internet information, to search them efficiently, to version and manage them, and to access them from a variety of clients including Internet browsers, e-mail clients, and Windows clients.

IFS -- an Intensional File System

File Systems in User Space

P.R. Eggert, D.S. Parker

appeared in: Proceedings of the Winter 1993 USENIX Conference, pp. 229-240, San Diego, CA, January 1993.

Current methods for interfacing file systems to user programs suffer two major drawbacks: they require kernel modifications or root privileges, and they are too complicated to be given to ordinary users. In this paper we show alternative methods are possible. The recent rise of dynamic linking provides a new way for users to develop their own file systems: by interposing a layer of user code between a program and the system call interface, a user can alter or extend a file system's behavior.

For greatest power and reliability, such changes to file system behavior must be managed systematically. We present two user-extensible file systems that are loosely modeled on intensional logic. IFS0 is simple, and supports only extended pathname interpretation for files: it permits certain shell-like expressions as pathnames. To this, IFS1 adds directory lookup and an escape mechanism for interpreting pathnames that can be modified by the user at any point. These file systems operate by modifying the semantics of Un*x system calls that take pathname arguments.

With IFS1 a user can develop a wide range of useful file systems without writing a line of C code. We have developed a variety of sample file systems with IFS1, including tar image navigation and a software development file system resembling 3DFS. IFS1 can thus be thought of as a simple user-programmable file system toolkit.

IFS Overview

An Intensional File System

P.R. Eggert, D.S. Parker

appeared in: Proceedings of the 1993 USENIX Workshop on File Systems, Ann Arbor, MI, May 21-22, 1992.

This paper summarizes a general file system extension of Unix called IFS, implemented and available at UCLA. IFS permits files to be represented as descriptions (arbitrary user programs) that yield a desired object file as output. This permits a variety of powerful extensions by users currently being proposed by many ad hoc file system research proposals.

Today's file systems store files extensionally, as a sequence of data items like bytes or blocks. This scheme is the simplest and most efficient method for traditional computers where main memory can be assumed to be limited and disk-to-memory bandwidth adequate. However, these traditional assumptions are becoming obsolete: in more modern, distributed systems, file system clients typically have both cycles to burn and adequate memory for caches. In this new environment, it is often more efficient and convenient to store files intensionally, that is, as a description of how to compute the data items instead of as the data items themselves. In other words, an intensional file is a program that produces the corresponding extensional file as output.

This new opportunity meets a long-standing need for user-extensible file systems, a need that was recognized by earlier researchers. For example, this need is partially addressed by mechanisms provided by recent work in object-oriented file systems. However, most previously proposed mechanisms suffer two major drawbacks: they require kernel modifications or root privileges, and they are too complicated to be given to ordinary users. Much of this complexity stems from the ad hoc nature of the mechanisms' designs.

Intensional file systems provide a simple, easy-to-explain abstraction for implementing one file system on top of another, an abstraction that provides motivating design principles for file system designers, and that makes it easy for programmers to define new file system types.

D. Stott Parker (stott@cs.ucla.edu)
Sat Apr 17 12:50:58 PDT 1999