| SES # | TOPICS | READINGS |
|---|---|---|
| 1 | Operating Systems | Ritchie, Dennis M. "The Evolution of the Unix Time-sharing System." AT&T Bell Laboratories Technical Journal 63, no. 6, Part 2 (October 1984): 1577-93. |
| 2 | PC Hardware and x86 Programming | Carter, Paul A. PC Assembly Language. July 23, 2006. (Note: Do not read chapters 5, 6, and 7.2.) |
| 3 | OS Organization | Engler, Dawson R., M. Frans Kaashoek, and James O'Toole Jr. "Exokernel: An Operating System Architecture for Application-Level Resource Management." In Proceedings of the 15th ACM Symposium on Operating Systems Principles. New York, NY: ACM Press, 1995. ISBN: 0897917154. |
| 4 | Address Spaces using Segmentation (Handout) | Read bootasm.S, bootother.S, bootmain.c, main.c, and init.c of xv6. |
| 5 | Address Spaces using Page Tables (Handout) | The Intel® 80386 Programmer's Reference Manual 1986. Chapters 5 and 6. Read setupsegs in xv6. |
| 6 | Interrupt and Exception Handling | The IA-32 Intel® Architecture Software Developer's Manual (System Programming Guide). Vol. 3, 2002, chapter 5. (Includes: Basic Architecture, Instruction Set Reference Manual, and the System Programming Guide.) (Note: skip 5.7, 5.8.2, and 5.12.2.) Read trapasm.S, trap.c, syscall.c, and usys.S of xv6. |
| 7 | Multiprocessors and Locking | Read spinlock.c and skim mp.c of xv6. |
| 8 | Processes and Context Switching | Read proc.c, setjmp.S, and sys_fork (in sysproc.c) of xv6. |
| 9 | Processes and Coordination | Read remainder of proc.c and sys_exec, sys_sbrk, sys_wait, sys_exit, and sys_kill of xv6. |
| 10 | Files and Disk I/O | Read iread, iwrite, filewrite, fileread, wdir, mknod1, and code related to these system calls in fs.c, bio.c, ide.c, and file.c of xv6. |
| 11 | Naming | Read namei in fs.c (and remainder of fs.c), sysfile.c, and file.c of xv6. |
| 12 | High-performance File Systems | Ganger, Gregory R., M. Kirk McKusick, Craig A. N. Soules, and Yale N. Patt. "Soft Updates: A Solution to the Metadata Update Problem in File Systems." ACM Transactions on Computer Systems 18, 2 (May 2000): 127-153. |
| Mid-term Quiz | ||
| 13 | Multics and Unix | Corbató, F. J., J. H. Saltzer, and C. T. Clingen. Multics - The First Seven Years. Presented at the Spring Joint Computer Conference, 1972. Montvale, NJ: The American Federation of Information Processing Societies Press, 1972. |
| 14 | Abstraction of OS Services | Pike, Rob, Dave Presotto, Sean Dorward, Bob Flandrena, Ken Thompson, Howard Trickey, and Phil Winterbottom. Plan 9. 4th ed. Murray Hill, NJ: Bell Laboratories. |
| Hacking Day | ||
| Hacking Day (cont.) | ||
| 15 | Microkernels | Liedtke, Jochen. "Improving IPC by Kernel Design." 14th ACM Symposium on Operating System Principles (SOSP). Asheville, North Carolina: 5-8 December 1993. |
| 16 | Virtual Machines | Bugnion, Edouard, Scott Devine, and Mendel Rosenblum. "Disco: Running Commodity Operating Systems on Scalable Multiprocessors." In Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles. Saint-Malo, France: October 1997. |
| 17 | Scheduling | Mogul, Jeffrey, and K. K. Ramakrishnan. "Eliminating Receive Livelock in an Interrupt-driven Kernel." (This paper was originally published in the Proceedings of the USENIX 1996 Annual Technical Conference. San Diego, CA: January 1996.) |
| 18 | Scalable Coordination | Mellor-Crummey, John M., and Michael L. Scott. "Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors." ACM Transactions on Computer Systems 9, no. 1 (January 1991): 21-65. |
| 19 | Shell for 6.828 Kernel | Duff, Tom. "Rc - The Plan 9 Shell." (PDF)# Haahr, Paul, and Byron Rakitzis. "Es: A Shell with Higher-order Functions." In USENIX Technical Conference Proceedings (Winter 1993): 51-60. |
| 20 | Security: OKWS | Krohn, Maxwell. "Building Secure High-Performance Web Services with OKWS." In Proceedings of the USENIX 2004 Technical Conference. Boston, MA: June 27-July 2, 2004, pp. 185-198. (PDF)# |
| 21 | XFI | Erlingsson, Úlfar, Martín Abadi, Michael Vrable, Mihai budiu, and George C. Necula. "XFI: Software Guards for System Address Spaces." Presented at the Symposium on Operating System Design and Implementation (OSDI), Seattle, WA, November 6-8, 2006. |
| 22 | OS Bugs | Engler, Dawson, David Yu Chen, Seth Hallem, Andy Chou, and Benjamin Chelf. "Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code." Symposium on Operating Systems Principles. Stanford, CA: Computer Systems Laboratory, Stanford University, 2001, pp. 57-72. |
| Hacking Day | ||
| 23 | OS Bakeoff | |
| Quiz 2 |
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.