15-410 Approved Readings
Advanced Configuration And Power Interface Specification
Daniel Bovet and Marco Cesati.
Understanding the Linux Kernel (2nd Edition)
Note: this book has some tendency to function as
a play-by-play of what happens inside Linux (on an x86) as opposed to
a design book.
You may find the BSD book
or the Love book
Eppinger, Mummert, and Spector, ed.
Camelot and Avalon: a distributed transaction facility
Maurice J. Bach.
Design of the Unix Operating System
This is a very clear overview of how Unix kernels
used to be constructed.
Some people have found this book dry due to extensive
Joshua J. Bloch.
Joseph Boykin, David Kirschen, Alan Langerman, Susan LoVerso.
Programming under Mach,
Addison-Wesley Unix and Open Systems Series;
Addison-Wesley Publishing Company, Inc. 1993.
Niels Ferguson and Bruce Schneier.
This is a good nuts-and-bolts book; if you
are interested in the human-factors, managerial,
political, or social implications of computer
security, you might prefer Secrets and Lies
Linux Kernel Development
We received some complaints about the 2003 edition
containing too much play-by-play material, but the
2005 edition has received favorable student reviews.
You may find that the BSD book
provides more historical and design perspective.
These both count as "the BSD book":
- Marshall Kirk McKusick, George V. Neville-Neil.
The Design and Implementation of the FreeBSD Operating System,
Pearson Education, 2004.
- Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S.
The Design and Implementation of the 4.4 BSD Operating
Addison-Wesley Publishing Company, Inc., 1996.
Efficient Memory Programming
Note that some students reported a distracting
number of minor errors in this book.
Jim Mauro, Richard McDougall.
Solaris Internals: Core Kernel Architecture
Secrets and Lies
Note: his Beyond Fear is probably
too layman-targeted for this class. Meanwhile,
Applied Cryptography is probably too dry.
If you're looking for nuts and bolts, try
Practical Cryptography (above).
Performance Measurements of the First RAID Prototype
Note: this is a very dense piece of work,
but it is an excellent
example of what must be done to make real systems go fast. It is
also a good example of how to graduate even if your system doesn't
go as fast as you expected it to.
Synthesis: An Efficient Implementation of Fundamental
Operating System Services
The practical implications of this work are very unclear, but
it's definitely a good vehicle for thinking differently about
what a kernel might be.
Disconnected Operation in a Distributed File System
Disconnected operation is a very timely topic.
Lily B. Mummert,
Exploiting weak connectivity
in a distributed file system
Adaptive mobility from the file system perspective.
Alfred Z. Spector,
Multiprocessing Architectures for Local Computer Networks,
This is old and not trivial to find (I think the E&S Library
has a copy), but it's fascinating...
Michael Wayne Young,
Exporting a User Interface to Memory Management
from a Communication-Oriented Operating System,
The exokernel approach to extensibility (panel statement)
The operating system kernel as a secure programmable machine
Exterminate all operating system abstractions
Exokernel: an operating system architecture for
application-level resource management
Application performance and flexibility on exokernel systems
Fast and flexible Application-Level Networking on Exokernel Systems
- EROS - Yes, you can read about
but you need
to propose a particular list of papers, see below.
- Plan 9
- File system track
Plan 9 From Bell Labs
The Plan 9 File Server
Venti: A new approach to archival storage
- Network track
Plan 9 From Bell Labs
The Organization of Networks in Plan 9
The IL protocol
- Naming track
Plan 9 From Bell Labs
The Use of Name Spaces in Plan 9
Lexical File Names in Plan 9, or, Getting Dot-Dot Right
- Or suggest your own track of two to three other papers...
Remember, you are not required to read something on this list.
This is the list of pre-approved readings. If you want to
read something else,
make a suggestion on the book choice page.
If you are proposing a collection of papers
which has not already been approved,
please send me a list of titles, page counts, and URLs.
I would appreciate it if you would make submissions in
HTML according to the format used in this document so I
can easily add approved readings. For example:
<LI>Paper collection name
<LI><CITE>Paper Title 1</CITE> (NN pages),
<LI><CITE>Paper Title 2</CITE> (NN pages),
(Back to Book Report page)