Spring 2009

Reading List

Class notes

  • Jerome H. Saltzer and M. Frans Kaashoek. Principles of Computer System Design.  M.I.T. 6.033 class notes, draft release 4.1 (January 2009).

The class notes are a work in progress. (The class notes will be available  as a separate package.)


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. Robert Scheifler and Jim Gettys. The X window system. ACM Transactions on Graphics 5, 2 (April, 1986) pages 79-109. 
  2. Dennis M. Ritchie and Ken L. Thompson. The UNIX time-sharing system. Bell System Technical Journal 57, 6, part 2 (1978) pages 1905-1930.
  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. 


  1. Sergy Brin and Lawrence Page. The anatomy of a large-scale hypertextual web search engine. Proc. of the 7th WWW Conference, Brisbane, Australia (April 1998). Published in: COMPUTER NETWORKS, (formerly Computer Networks and ISDN Systems), Vol 30, 1998, pp 107-117.

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


  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. ACM IMC, 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)

Additional readings 

  1. Michael Isard, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis Fetterly. Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks. Eurosys '07, March 2007.
  2. Tom Jagatic, Nathaniel Johnson, Markus Jakobsson, and Filippo Menczer. Social Phishing. Communications of the ACM, Vol. 50 No. 10, October 2007, pages 94-100.

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 // $Revision: 14 $, last modified on $Date: 2009-02-02 14:35:35 -0500 (Mon, 02 Feb 2009) $ GMT by $Author: cowling $