Introduction to Computer Systems Gabriel, Richard. "The Rise of 'Worse is Better'." AI Expert 6, no. 6 (1991): 33-35. Simon, Herbert. "The Architecture of Complexity." Proceedings of the American Philosophical Society 106, no. 6 (1962): 467-482. Gopen, George, and Judith Swan. "The Science of Scientific Writing." American Scientist 78, no. 6 (1990): 550-558. Leveson, Nancy, and Clark Turner. "An Investigation of the Therac-25 Accidents." Computer 26, no. 7 (1993): 18-41. |
Computer System Organization Scheifler, Robert, and Jim Gettys. "The X Window System." ACM Transactions on Graphics 5, no. 2 (1986): 79-109. [abstract] Ritchie, Dennis, and Ken Thompson. "The UNIX Time-Sharing System." Bell System Technical Journal 57, no. 6, part 2 (1978): 1905-1930. 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. [abstract] 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. |
Networking Metcalfe, Robert, and David Boggs. "Ethernet: Distributed Packet Switching for Local Computer Networks." Communications of the ACM 19, no. 7 (1976): 395-404. [abstract] 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. [abstract] Balakrishnan, Hari. "An Introduction to Wide-Area Internet Routing." 6.033 case study, MIT, January 2009. Huston, Geoff. "Anatomy: A Look Inside Network Address Translators." The Internet Protocol Journal 7, no. 3 (2004): 2-32. |
Naming Brin, Sergey, and Lawrence Page. "The Anatomy of a Large-Scale Hypertextual Web Search Engine." Computer Networks and ISDN Systems 30 (1988): 107-117. |
Failure Recovery, Coordination, and Atomicity 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. [abstract] 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. [abstract] |
Security Pincus, Jonathan, and Brandon Baker. "Beyond Stack Smashing: Recent Advances in Exploiting Buffer Overruns." IEEE Security and Privacy 2, no. 4 (2004): 20-27. [abstract] Anderson, Ross. "Why Cryptosystems Fail." Proceedings of the 1993 ACM Conference in Computer and Communications Security (1993): 215-227. [abstract] 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. ( PDF) Thompson, Ken. "Reflections on Trusting Trust." Communications of the ACM 27, no. 8 (1984): 761-763. [abstract] |
More Complexity Lampson, Butler. "Hints for Computer System Design." Operating Systems Review 17, no. 5 (1983): 33-48. [abstract] |
Additional Readings Isard, Michael, Mihai Budiu, Yuan Yu, Andrew Birrell, and Dennis Fetterly. "Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks." ACM SIGOPS Operating Systems Review 41, no. 3 (2007): 59-72. ( PDF) [abstract] Jagatic, Tom, Nathaniel Johnson, Markus Jakobsson, and Filippo Menczer. "Social Phishing." Communications of the ACM 50, no. 10 (2007): 94-100. [abstract] |