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