This section contains documents that could not be made accessible to screen reader software. A "#" symbol is used to denote such documents.
The resources provided below are useful references for those interested in learning more about the topics covered in the course.
UNIX®
-
The UNIX® Time-Sharing System, Ritchie, Dennis M., and Ken L.Thompson. Bell
System Technical Journal 57, no. 6, part 2 (July-August 1978): 1905-1930. You read this paper in 6.033.
-
-
Kernighan, Brian, and Dennis Ritchie. The C programming language. 2nd ed. Upper Saddle River, NJ: Prentice Hall, 1988. ISBN: 0131103628.
x86 Emulation
-
Bochs - An x86 platform and CPU emulator.
-
QEMU - A new, much faster but less mature PC emulator. Use in 6.828 at your own risk.
x86 Assembly Language
-
-
-
-
Volume I: Basic Architecture
-
Volume 2A: Instruction Set Reference, A-M
-
Volume 2B: Instruction Set Reference, N-Z
-
Volume 3: System Programming Guide
-
Multiprocessor References:
-
-
Writing Inline Assembly Language with GCC:
-
Loading x86 Executables in the ELF Format:
PC Hardware Programming
- General PC Architecture Information:
- General BIOS and PC Bootstrap:
- VGA Display - kern/console.c
- Keyboard and Mouse - kern/console.c
- 8253/8254 Programmable Interval Timer (PIT) - inc/timerreg.h
- 8259/8259A Programmable Interrupt Controller (PIC) - kern/picirq.*
- Real-Time Clock (RTC) - kern/kclock.*
- 16550 UART Serial Port - kern/console.c
- IEEE 1284 Parallel Port - kern/console.c
- IDE Hard Drive Controller - fs/ide.c
- AT Attachment with Packet Interface - 6 (working draft), ANSI, December 2001.
- Programming Interface for Bus Master IDE Controller (PDF)#, Brad Hosler, Intel®, May 1994.
- The Guide to ATA/ATAPI documentation, Constantine Sapuntzakis, January 2002.
- Sound Cards (not supported in 6.828 kernel, but you're welcome to do it as a challenge problem!)