Andrew S. Tanenbaum. Modern Operating Systems. Prentice-Hall,
1992. ISBN 0-13-588187-0. (This book is not required, but is
strongly recommended.)
Frederick P. Brooks, Jr. The Mythical Man-Month.
Addison-Wesley, 1995. ISBN: 0-201-83595-9. (The 1974 edition is also
usable in 6.033.) (This book is primarily used at the end of the term.)
Papers
Introduction to computer systems
Robert Lucky. Bozos on the bus. IEEE
Spectrum 33, 7 (July, 1996) page 19.
Richard P. Gabriel. Worse is better. From
LISP: good news, bad news, how to win BIG, AI Expert 6, 6 (June, 1991) pages 33-35.
Jerome H. Saltzer. The study of systems. Chapter 1 of The Engineering of Computer Systems, MIT Department of Electrical Engineering and Computer Science (in preparation, February, 1985).
Herbert A. Simon. The architecture of complexity. Proceedings American Philosophical Society 106, 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).
George D. Gopen and Judith A. Swan. The science of scientific writing. American Scientist 78, 6 (November-December, 1990) pages 550-558.
Jerome H. Saltzer. Objectives of an information system. Chapter 2 of The Engineering of Computer Systems, MIT Department of Electrical Engineering and Computer Science (in preparation, February, 1985).
Nancy G. Leveson and Clark S. Turner. An investigation of the Therac-25 accidents. Computer 26, 7 (July, 1993) pages 18-41.
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).
Computer system organization
Robert Scheifler and Jim Gettys. The X window
system. ACM Transactions on Graphics 5, 2 (April, 1986) pages
79-109.
Ted Kaehler. Virtual memory for an object-oriented
language. BYTE 6, 6 (August, 1981) pages 378-387.
Dennis M. Ritchie and Ken L.Thompson. The UNIX time-sharing
system. Bell System Technical Journal 57, 6, part 2 (1978) pages
1905-1930.
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).
Networking
Andrew D. Birrell and Bruce Jay Nelson. Implementing
remote procedure calls. ACM Transactions on Computer Systems 2,
1 (February, 1984) pages 39-59.
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.
David B. Johnson. Scalable support for transparent
mobile host Internetworking. Mobile
Computing. Ed. T. Imielinski and H. Korth, Kluwer Academic
Publishers, 1996.
Jerome H. Saltzer, David P. Reed, and
David. D. Clark. End-to-end arguments in system design. ACM Transactions
on Computer Systems 2, 4 (November, 1984) pages 277-288.
Naming
David K. Gifford, Pierre Jouvelot, Mark Sheldon,
and James O'Toole. Semantic File Systems. Proc. of the 12th ACM
Symposium on Operating Systems Principles, October 1991, pages
16-25.
Andrew D. Birrell, Roy Levin, Roger M. Needham, and Michael
D. Schroeder. Grapevine: An exercise in distributed
computing. Communications of the ACM 25, 4 (April, 1982) pages
260--274.
Security
Eugene H. Spafford. Crisis and aftermath.
Communications of the ACM 32, 6 (June, 1989) pages 678-687.
Steven R. Lerman, James D. Bruce, and Jerome H.
Saltzer. Teaching students about responsible use of computers.
Communications of the ACM 32, 6 (June, 1989) page 704. The
publication omits the names of the first two authors.
Steven P. Miller, B. Clifford Neuman, Jeffrey
I. Schiller, and Jerome H. Saltzer. Kerberos authentication and
authorization system. Section E.2.1 of Athena Technical Plan,
MIT Project Athena, October 27, 1988.
Ross. J. Anderson. Why cryptosystems
fail. Communications of the ACM 37, 11 (November 1994) pages 32-40.
Jerome H. Saltzerand Michael D.
Schroeder. The protection of information in computer systems.
Chapter 6 of The Engineering of Computer Systems, MIT
Department of Electrical Engineering and Computer Science (in
preparation, July, 1975). Also published, omitting appendix 6-A, in
Proceedings of the IEEE 63, 9 (September, 1975) pages
1278-1308.
Note: A more timely set of society-impact papers will be handed out
later.
Failure recovery, coordination, and atomicity
Henry Petroski. Engineering: History and
failure. American Scientist 80, 6 (November-December, 1992)
pages 523-526.
Phillip J. Plauger. Chocolate. Embedded
Systems Programming 7, 3 (March, 1994) pages 81-84.
Jim Gray and Daniel P. Sieworek. High-availability
computer systems. Computer 24, 9 (September, 1991) pages 39-48.
Randy H. Katz, Garth A. Gibson, and David A.
Patterson. Disk system architectures for high performance computing.
Proceedings of the IEEE 77, 12 (December, 1989) pages
1842-1857.
Alfred Spector and David Gifford. The space shuttle
primary computer system. Communications of the ACM 27, 9
(September, 1984) pages 874-900.
Jim Gray, 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, 2 (June,
1981) pages 223-242.
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.
James J. Kistler and Mahadarev Satyanarayanan.
Disconnected operation in the Coda file system. Proceedings of
the Thirteenth ACM Symposium on Operating Systems Principles,
October 13-16, 1991, Pacific Grove, California. In Operating
Systems Review 25, 5 (December, 1991) pages 213-225.
More complexity
Effy Oz. When professional standards are lax: the
CONFIRM failure and its lessons. Communications of the ACM 37,
10 (October 1994) pages 29-36.
James L. Woodward. What makes business
programming hard? BYTE 7, 10 (October, 1982) pages 68-72.
Historical perspective
Larry Press. Before the Altair: The history of
personal computing. Communications of the ACM 36, 9
(September, 1993) pages 27-33.
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). Note: we suggest you read this paper twice: once at the
beginning of the term and once at the end.