File -System
13
CHAPTER
Interface
For most users, the file system is the most visible aspect of a general-purpose
operating system. It provides the mechanism for on-line storage of and access
to both data and programs of the operating system and all the users of the
computer system. The file system consists of two distinct parts: a collection of
files, each storing related data, and a directory structure, which organizes and
provides information about all the files in the system. Most file systems live on
storage devices, which we described in Chapter 11 and will continue to discuss
in the next chapter. In this chapter, we consider the various aspects of files and
the major directory structures. We also discuss the semantics of sharing files
among multiple processes, users, and computers. Finally, we discuss ways to
handle file protection, necessary when we have multiple users and we want to
control who may access files and how files may be accessed.
Bibliographical Notes
Database systems and their file structures are described in full in [Silberschatz
et al. (2010)].
A multilevel directory structure was first implemented on the MULTICS
system ([Organick (1972)]). Most operating systems now implement multi-
level directory structures. These include Linux ([Love (2010)]), macOS ([Singh
(2007)]), Solaris ([McDougall and Mauro (2007)]), and all versions of Windows
([Russinovich and Solomon (2005)]).
The network file system (NFS), designed by Sun Microsystems, allows
directory structures to be spread across networked computer systems. NFS
Version 4 is described in RFC3505 (http://www.ietf.org/rfc/rfc3530.txt). A gen-
eral discussion of Solaris file systems is found in the Sun System Administration
Guide: Devices and File Systems (http://docs.sun.com/app/docs/doc/817-5093).
DNS was first proposed by [Su (1982)] and has gone through several revi-
sions since. LDAP, also known as X.509, is a derivative subset of the X.500
distributed directory protocol. It was defined by [Yeong et al. (1995)] and has
been implemented on many operating systems.
187
188 Chapter 13 File-System Interface
Bibliography
[Love (2010)] R. Love, Linux Kernel Development, Third Edition, Developer’s
Library (2010).
[McDougall and Mauro (2007)] R. McDougall and J. Mauro, Solaris Internals,
Second Edition, Prentice Hall (2007).
[Organick (1972)] E. I. Organick, The Multics System: An Examination of Its Struc-
ture, MIT Press (1972).
[Russinovich and Solomon (2005)] M. E. Russinovich and D. A. Solomon,
Microsoft Windows Internals, Fourth Edition, Microsoft Press (2005).
[Silberschatz et al. (2010)] A. Silberschatz, H. F. Korth, and S. Sudarshan,
Database System Concepts, Sixth Edition, McGraw-Hill (2010).
[Singh (2007)] A. Singh, Mac OS X Internals: A Systems Approach, Addison-
Wesley (2007).
[Su (1982)] Z. Su, “A Distributed System for Internet Name Service”, Network
Working Group, Request for Comments: 830 (1982).
[Yeong et al. (1995)] W. Yeong, T. Howes, and S. Kille, “Lightweight Directory
Access Protocol”, Network Working Group, Request for Comments: 1777 (1995).