Readings

Amazon logo Help support MIT OpenCourseWare by shopping at Amazon.com! MIT OpenCourseWare offers direct links to Amazon.com to purchase the books cited in this course. Click on the book titles and purchase the book from Amazon.com, and MIT OpenCourseWare will receive up to 10% of all purchases you make. Your support will enable MIT to continue offering open access to MIT courses.

Readings are also listed by session.

Class Notes

Saltzer, Jerome H., and M. Frans Kaashoek. Principles of Computer System Design. (6.033 class notes, draft release 2.0, MIT, February 2005.)

Textbook

Brooks, Frederick P., Jr. The Mythical Man-Month. Reading, MA: Addison-Wesley, 1995. ISBN: 0201835959. (This book is primarily used at the end of the term. The 1974 edition is also usable in 6.033.)

Papers

Introduction to Computer Systems

Gabriel, Richard P. "The Rise of 'Worse is better'." On-line version of "Worse is Better". LISP: Good News, Bad News, How to Win BIG, AI Expert 6, no. 6 (June 1991): 33-35.

Simon, Herbert A. "The Architecture of Complexity." Proceedings of the American Philosophical Society 106, no. 6 (December 1962): 467-482. Republished as The Sciences of the Artificial. Part 4. Cambridge, MA: MIT Press, 1969, pp. 84-118. ISBN: 02621910516 (hardbound). ISBN: 0262690233 (paperback).

Gopen, George D., and Judith A. Swan. "The Science of Scientific Writing." American Scientist 78, no. 6 (November-December 1990): 550-558.

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

Computer System Organization

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

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

Pai, Vivek S., Peter Druschel, and Willy Zwaenepoel. "Flash: An Efficient and Portable Web Server." Proc of 1999 Annual Usenix Technical Conference. Monterey, CA, June 1999, pp. 199-212.

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

Networking

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

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

Balakrishnan, Hari. "An Introduction to Wide-Area Internet Routing." 6.033 Case Study. MIT, January 2004.

Sandberg, Russell, David Goldberg, Steve Kleiman, Dan Walsh, and Bob Lyon. "Design and Implementation of the Sun Network Filesystem." Proc of the 1985 Summer Usenix Technical Conference. El Cerrito, CA, June 1985, pp. 119-130.

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

Failure Recovery, Coordination, and Atomicity

Rosenblum, Mendel, and John K. Ousterhout. "The Design and Implementation of a Log-structured File System." Proceedings of the Thirteenth ACM Symposium on Operating Systems Principles. Pacific Grove, CA, October 13-16, 1991, pp. 1-15. Published as Operating Systems Review 25, no. 5 (1991). Also appeared in ACM Transactions on Computer Systems 10, no. 1 (February 1992): 26-52.

Petroski, Henry. "Engineering: History and failure." American Scientist 80, no. 6 (November-December 1992): 523-526.

Gray, Jim, Paul McJones, Bruce Lindsay, Raymond Lorie, Tom Price, Franco Putzolu, and Irving Traiger. "The Recovery Manager of the System R Database Manager." ACM Computing Surveys 13, no. 2 (June 1981): 223-242.

Plauger, Phillip J., "Chocolate." Embedded Systems Programming 7, no. 3 (March 1994): 81-84.

Security

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

Anderson, Ross J. "Why Cryptosystems Fail." Proceedings of the 1993 ACM Conference in Computer and Communications Security. 1993, pp. 32-40.

Handley, Mark. "Internet Denial of Service Considerations," Internet Engineering Task Force, (January 9 2004).

Saltzer, Jerome H. "Slammer: An urgent wake-up call." In Andrew Herbert and Karen Spärck Jones, editors.Computer Systems:Theory, technology and applications, A tribute to Roger Needham. New York, NY: Springer-Verlag, 2003. ISBN: 0387218211. (E-Book format).

More Complexity

Lampson, Butler W. "Hints for Computer System Design." Proceedings of the Ninth ACM Symposium on Operating Systems Principles. Bretton Woods, NH, October 10-13, 1983, pp. 33-48. Published as Operating Systems Review 17, no. 5 (1983).

Readings by Session


ses # Topics readings
R1 Worse is Better
L1 Introduction to Systems Chapter 1 (Sections A, B, C)
R2 The Architecture of Complexity Simon Paper
L2 Complexity in Computer Systems Chapter 1 (Sections D, E)
R3 Therac-25 Leveson Paper
L3 Abstractions Chapter 2 (pp. 2-9 through 2-13)

Chapter 3
R4 UNIX® (Ritchie and Thompson) Ritchie Paper
W1 Writing Program Lecture
L4 Naming Chapter 2 (except Appendix 2-A)
R5 More UNIX®
L5 Fault Isolation with Clients and Servers Chapter 4 (except Appendix 4-A)
R6 X Window System Scheifler Paper
T1 Design Project 1 Introduction
L6 Virtualization

Virtual Memory
Chapter 5 (Section A)
L7 Virtual Processors: Threads and Coordination Chapter 5 (Sections B-F)
R7 Flash Web Server Pai Paper
T2 Design Project 1 Discussion
L8 Performance Chapter 6
R8 MapReduce Dean Paper
L9 Introduction to Networks Chapter 7 (Section A)
R9 Ethernet Metcalfe Paper
Q1 Quiz 1: Material through R8
L10 Layering and Link Layer Chapter 7 (Sections B, C)
R10 End-to-end Arguments Sandberg Paper
L11 Network Layer, Routing Chapter 7 (Section D)
R11 Internet Routing Balakrishnan Paper
T3 Design Project 1 + Writing
L12 End-to-end Layer Chapter 7 (Section E)
R12 NFS Protocol (first five pages) Sandberg Paper
L13 Congestion Control Chapter 7 (Section F)
R13 NATs Huston Paper
L14 Distributed Naming Chapter 4 (Appendix A)
R14 9/11 Wiggins Paper
L15 Reliability Chapter 8
R15 Fault-tolerance War Stories
L16 Atomicity Concepts Chapter 9 (Section A)
R16 LFS Rosenblum Paper
L17 Recoverability Chapter 9 (Sections B, C)
R17 System R Gray Paper
T4 Tutorial
L18 Isolation Chapter 9 (Sections D, E)
R18 More System R + Chocolate Rosenblum and Plauger Papers
L19 Transactions and Consistency Chapter 10 (Sections A, B)
R19 Unison Please read chapter 10 (section D) before reading the paper
Q2 Quiz 2: Material from L9 through R15
L20 Multi-site Atomicity Chapter 10 (Section E)
R20 Durability Chapter 10 (Section C) with Chapter 8 (Appendix B) and Chapter 9 (Appendix B) for background
T5 Tutorial
L21 Security Introduction Chapter 11 (Section A)
R21 Security War Stories Chapter 11 (Appendix B)
L22 Authentication Chapter 11 (Section B)
R22 Trusting Trust Thompson Paper
L23 Authorization and Confidentiality Chapter 11 (Sections C, D)
R23 Why DO Cryptosystems Fail? Anderson Paper
R24 Slammer and DoS Handley and Saltzer Papers
L24 Advanced Authentication Chapter 11 (Section F)
R25 Design Project 2 Presentations
L25 Complex, Trusted Systems
(Guest Lecture by Professor Hal Abelson)
R26 Hints for System Design Lampson Paper
Q3 Quiz 3: Material from L16 through R26