R1 Worse is better  
R2 The architecture of complexity

Read Simon paper.

Simon, Herbert. "The Architecture of Complexity." Proceedings of the American Philosophical Society 106, no. 6 (1962): 467-482.

Instructions (PDF)

R3 Therac-25

Read Therac-25 paper.

Leveson, Nancy, and Clark Turner. "An Investigation of the Therac-25 Accidents." Computer 26, no. 7 (1993): 18-41.

R4 UNIX file system

Read UNIX paper, sections III and IV.

Ritchie, Dennis, and Ken Thompson. "The UNIX Time-Sharing System." Bell System Technical Journal 57, no. 6, part 2 (1978): 1905-1930.

R5 X window system

Read X Window System paper.

Scheifler, Robert, and Jim Gettys. "The X Window System." ACM Transactions on Graphics 5, no. 2 (1986): 79-109.

R6 Eraser

Read Eraser paper.

Savage, Stefan, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. "Eraser: A Dynamic Race Detector for Multithreaded Programs." ACM Transaction on Computer Systems 15, no. 4 (1997): 391-411.

Instructions (PDF)

R7 More UNIX

Read UNIX paper.

Ritchie, Dennis, and Ken Thompson. "The UNIX Time-Sharing System." Bell System Technical Journal 57, no. 6, part 2 (1978): 1905-1930.

R8 MapReduce

Read MapReduce paper.

Dean, Jeffrey, and Sanjay Ghemawat. "MapReduce: Simplified Data Processing on Large Clusters." Sixth Symposium on Operating Systems Design and Implementation (OSDI), San Francisco, CA, December 2004.

Instructions (PDF)

R9 Ethernet

Read Ethernet paper.

Metcalfe, Robert, and David Boggs. "Ethernet: Distributed Packet Switching for Local Computer Networks." Communications of the ACM 19, no. 7 (1976): 395-404.

Instructions (PDF)

R10 End-to-end arguments

Read End-to-End paper.

Saltzer, J. H., D. P. Reed, and D. D. Clark. "End-to-End Arguments in System Design." ACM Transactions on Computer Systems 2, no. 4 (1984): 277-288.

Instructions (PDF)

R11 Internet routing

Read Wide-Area Routing paper.

Balakrishnan, Hari. "An Introduction to Wide-Area Internet Routing." 6.033 case study, MIT, January 2009. (PDF) (Courtesy of Hari Balakrishnan. Used with permission.)

Instructions (PDF)

R12 NFS protocol

Read section 4.5 of the textbook, Case Study: The Network File System (NFS).

Instructions (PDF)

R13 NATs

Read Anatomy paper.

Huston, Geoff. "Anatomy: A Look Inside Network Address Translators." The Internet Protocol Journal 7, no. 3 (2004): 2-32.

Instructions (PDF)

R14 Congestion control

Read Misbehaving Receiver paper.

Savage, Stefan, Neal Cardwell, David Wetherall, and Tom Anderson. "TCP Congestion Control with a Misbehaving Receiver." ACM SIGCOMM Computer Communication Review 29, no. 5 (1999): 71-78.

Instructions (PDF)

R15 Durability

Read RAID paper.

Patterson, David, Garth Gibson, and Randy Katz. "A Case for Redundant Arrays of Inexpensive Disks (RAID)." Proceedings of the ACM SIGMOD Conference (1998): 109-116.

Instructions (PDF)

R16 Unison

Read Unison paper.

Jim, Trevor, Benjamin Pierce, and Jerome Vouillon. "How to Build a File Synchronizer." Unpublished paper, 2002.

Instructions (PDF)


Read LFS paper.

Rosenblum, Mendel, and John Ousterhout. "The Design and Implementation of a Log-Structured File System." ACM Transactions on Computer Systems 10, no. 1 (1992): 26-52.

Instructions (PDF)

R18 System R

Read System R paper.

Gray, Jim, et al. "The Recovery Manager of the System R Database Manager." Computing Surveys 13, no. 2 (1981): 223-242.

Instructions (PDF)

R19 ObjectStore

Read ObjectStore paper.

Lamb, Charles, Gordon Landis, Jack Orenstein, and Dan Weinreb. "The ObjectStore Database System." Communications of the ACM 34, no. 10 (1991): 50-63.

R20 Porcupine

Read Porcupine paper.

Saito, Yasushi, Brian Bershad, and Henry Levy. "Manageability, Availability and Performance in Porcupine: A Highly Scalable, Cluster-Based Mail Service." Operating Systems Review 34, no. 5 (1999): 1-15.

R21 Buffer overrun attacks

Read Buffer Overrun paper.

Pincus, Jonathan, and Brandon Baker. "Beyond Stack Smashing: Recent Advances in Exploiting Buffer Overruns." IEEE Security and Privacy 2, no. 4 (2004): 20-27.

Instructions (PDF)

R22 Why do cryptosystems fail?

Read Cryptosystems paper.

Anderson, Ross. "Why Cryptosystems Fail." Proceedings of the 1993 ACM Conference in Computer and Communications Security (1993): 215-227.

Instructions (PDF)

R23 Tracking Witty

Read Witty paper.

Kumar, Abishek, Vern Paxson, and Nicholas Weaver. "Exploiting Underlying Structure for Detailed Reconstruction of an Internet-scale Event." Proceedings of the ACM Internet Measurement Conference (2005): 351-364.

Instructions (PDF)

R24 Trusting trust

Read Trusting Trust paper.

Thompson, Ken. "Reflections on Trusting Trust." Communications of the ACM 27, no. 8 (1984): 761-763.

Instructions (PDF)

R25 Design project 2 presentations  
R26 Hints for system design

Read Computer System Design paper.

Lampson, Butler. "Hints for Computer System Design." Operating Systems Review 17, no. 5 (1983): 33-48.

Instructions (PDF)