Carnegie Mellon
SCS logo
Computer Science Department

15-410 Approved Readings


Advanced Configuration And Power Interface Specification Revision 3.0a Available here

Daniel Bovet and Marco Cesati. Understanding the Linux Kernel (2nd Edition or newer)
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 more design-oriented.

Eppinger, Mummert, and Spector, ed. Camelot and Avalon: a distributed transaction facility
This is the story of Mach the platform as opposed to Mach the OS: Mach served as the basis for Camelot, a distributed transaction system based on transactional virtual memory, and Avalon, a high-level language built on Camelot. The system as developed didn't enter popular use, but it's an interesting case study.

Maurice J. Bach. Design of the Unix Operating System
This is a very clear overview of how Unix kernels used to be constructed (some time ago).

Bar, Moshe. Linux Internals
Some people have found this book dry due to extensive source-code walk-throughs.

Joshua J. Bloch. Effective Java
Though this isn't a book about an OS, there are many related topics covered from a different perspective (races and synchronization; access control and integrity). Also, this book is full of things Java programmers need to know (but often don't know they need to know).

Joseph Boykin, David Kirschen, Alan Langerman, Susan LoVerso. Programming under Mach, Addison-Wesley Unix and Open Systems Series; Addison-Wesley Publishing Company, Inc. 1993. ISBN 0-201-52739-1
This is perhaps the most straightforward book on what Mach provided to programmers. Students have found it somewhat dry in the past.

Niels Ferguson and Bruce Schneier. Practical Cryptography
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 (below).

Robert Love. 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. You should also know that people familiar with other operating systems may dispute some historical descriptions and claims of architectural novelty.

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. ISBN: 0-201-70245-2
  • Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman. The Design and Implementation of the 4.4 BSD Operating System, Addison-Wesley Publishing Company, Inc., 1996. ISBN:0-201-54979-4

You may read either of these, though the older one will describe a system which seems oddly and perhaps frustratingly old.

David Loshin. 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

Bruce Schneier. 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); this is a more conceptual/high-level book.


Ann Chervenak. Performance Measurements of the First RAID Prototype (ps)
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.

Henry Massalin. Synthesis: An Efficient Implementation of Fundamental Operating System Services (ps.gz)
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.

Jay Kistler, Disconnected Operation in a Distributed File System (PDF)
Disconnected operation is a very timely topic.

Lily B. Mummert, Exploiting weak connectivity in a distributed file system (PDF)
Adaptive mobility from the file system perspective.

Alfred Z. Spector, Multiprocessing Architectures for Local Computer Networks, STAN-CS-81-874.
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, CMU-CS-89-202.

Paper collections

If multiple tracks are listed for an area, the suggestion is to read one track's worth of papers on the expectation that they have been chosen because they work well together.

  • Autonet
  • Exokernel (see also Xen)
    • 1994: The exokernel approach to extensibility (panel statement) (PS)
    • 1995: The operating system kernel as a secure programmable machine (PS)
    • 1995: Exterminate all operating system abstractions (PS)
    • 1995: Exokernel: an operating system architecture for application-level resource management (PS)
    • 1997: Application performance and flexibility on exokernel systems (HTML) (PS)
    • 2002: Fast and flexible Application-Level Networking on Exokernel Systems (PS)
  • EROS - Yes, you can read about EROS, but you need to propose a particular list of papers, see below.
  • Plan 9
    • File system track
      • Introduction: Plan 9 From Bell Labs (PDF)
      • The Plan 9 File Server (PDF)
      • Venti: A new approach to archival storage (PDF)
    • Network track
      • Introduction: Plan 9 From Bell Labs (PDF)
      • The Organization of Networks in Plan 9 (PDF)
      • The IL protocol (PDF)
    • Naming track
      • Introduction: Plan 9 From Bell Labs (PDF)
      • The Use of Name Spaces in Plan 9 (PDF)
      • Lexical File Names in Plan 9, or, Getting Dot-Dot Right (PDF)
    • Or suggest your own track of two to three other papers...
  • Xen (see also Exokernel)
    • Xen and the Art of Virtualization (PDF)
    • Safe Hardware Access with the Xen Virtual Machine Monitor (PDF)
    • Live Migration of Virtual Machines (PDF)
  • Scheduler activations (a different threading approach)
    • Scheduler Activations: Effective Kernel Support for the User Level Management of Parallelism (PDF)
    • An Implementation of Scheduler Activations on the NetBSD Operating System (PS)

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:

<A HREF="...">(PDF)</A></P>

<LI>Paper collection name
<LI><CITE>Paper Title 1</CITE> (NN pages),
<A HREF="...">(PDF)</A>
<LI><CITE>Paper Title 2</CITE> (NN pages),
<A HREF="...">(PDF)</A>

(Back to Book Report page)

[Last modified Wednesday February 28, 2007]