Spring 2010

6.033 2010 Reading List


  • Jerome H. Saltzer and M. Frans Kaashoek, Principles of Computer System Design: An Introduction, Morgan Kaufmann, 2009. Available from the MIT Coop, Amazon, and Barnes&Noble. You can find more information about the book here.


You should pick up a printed set of these papers from CopyTech (11-004).

Introduction to computer systems

  1. Richard P. Gabriel. The rise of "Worse is better". On-line version of "Worse is Better", From LISP: good news, bad news, how to win BIG, AI Expert 6, 6 (June, 1991) pages 33-35. 
  2. Herbert A. Simon. The architecture of complexity. Proceedings of the American Philosophical Society106, 6 (December, 1962) pages 467-482. Republished as Part 4, pages 84-118, of The Sciences of the Artificial, MIT Press, 1969. ISBN: 0-262-191051-6 (hardbound) 0-262-69023-3 (paperback). 
  3. George D. Gopen and Judith A. Swan. The science of scientific writing. American Scientist 78, 6 (November-December, 1990) pages 550-558. 
  4. Nancy G. Leveson and Clark S. Turner. An investigation of the Therac-25 accidents. Computer 26, 7 (July, 1993) pages 18-41.

Computer system organization

  1. Dennis M. Ritchie and Ken L. Thompson. The UNIX time-sharing system. Bell System Technical Journal 57, 6, part 2 (1978) pages 1905-1930.
  2. Robert Scheifler and Jim Gettys. The X window system. ACM Transactions on Graphics 5, 2 (April, 1986) pages 79-109. 
  3. Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, and Thomas Anderson. Eraser: a dynamic race detector for multithreaded programs. ACM Transaction on Computer Systems 15, 4 (November 1997) pages 391-411. Also appeared in the Proc. Sixteenth ACM Symposium on Operating Systems Principles (October 1997).
  4. Jeffrey Dean 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).


  1. Robert M. Metcalfe and David R. Boggs. Ethernet: Distributed packet switching for local computer networks. Communications of the ACM 19, 7 (July, 1976) pages 395-404. 
  2. J.H. Saltzer, D.P. Reed and D.D. Clark. End-to-end arguments in system design. ACM Trans. on Computer Systems 2, 4 (November, 1984), pp. 277-288.
  3. Hari Balakrishnan. An Introduction to Wide-Area Internet Routing. 6.033 case study MIT (January 2004). 
  4. Geoff Huston, Anatomy: A Look Inside Network Address Translators. The Internet Protocol Journal, 7(3), (September 2004), pages 2-32. 
  5. Stefan Savage, Neal Cardwell, David Wetherall, and Tom Anderson. TCP Congestion Control with a Misbehaving Receiver. ACM SIGCOMM Computer Communication Review, Volume 29, Issue 5 (October 1999), pages 71-78.

Failure recovery, coordination, and atomicity

  1. D. Patterson, G. Gibson, and R.H. Katz. A case for redundant arrays of inexpensive disks (RAID), Proceedings of the ACM SIGMOD Conference, 1988.
  2. Trevor Jim, Benjamin Pierce, and Jerome Vouillon. How to Build a File Synchronizer.
  3. Mendel Rosenblum 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, California (October 13-16, 1991) pages 1-15. Published as Operating Systems Review 25, 5 (1991). Also appeared in ACM Transactions on Computer Systems 10, 1 (February, 1992) pages 26-52. 
  4. Jim Gray, Paul McJones, Mike Blasgen, Bruce Lindsay, Raymond Lorie, Tom Price. The Recovery Manager of the System R Database Manager. ACM Computing Surveys, Vol 13, No 2, June 1981.
  5. Charles Lamb, Gordon Landis, Jack Orenstein, Dan Weinreb. The ObjectStore database system. Communications of the ACM, Volume 34, Issue 10 (October 1991), pages 50-63.
  6. Yasushi Saito, Brian N. Bershad, and Henry M. Levy. Manageability, availability and performance in Porcupine: a highly scalable, cluster-based mail service. Proceeeding of the 17th ACM Symposium on Operating Systems Principles, Kiawah Island, SC, December 1999.


  1. Jonathan Pincus and Brandon Baker. Beyond stack smashing: recent advances in exploiting buffer overruns. IEEE Security and privacy, August 2004.
  2. Ross J. Anderson. Why cryptosystems fail. Proceedings of the 1993 ACM Conference in Computer and Communications Security, (1993) pages 32-40.
  3. A. Kumar, V. Paxson and N. Weaver. Exploiting Underlying Structure for Detailed Reconstruction of an Internet Scale Event. Proc. USENIX/ACM SIGCOMM Conference on Internet Measurement, October 2005.
  4. Ken Thompson. Reflections on Trusting Trust. Communications of the ACM 27, 8 (August 1984) pages 761-763.

More complexity 

  1. Butler W. Lampson. Hints for computer system design.  Proceedings of the Ninth ACM Symposium on Operating Systems Principles, Bretton Woods, New Hampshire (October 10-13, 1983), pages 33-48. Published as Operating Systems Review 17, 5 (1983)

Questions or comments regarding 6.033? Send e-mail to the 6.033 staff at or to the 6.033 TAs at

Top // 6.033 home //