Reading materials

Selection of Operating System Papers

教学计划

UNIX

x86 Emulation

x86 Assembly Language

  • PC Assembly Language, Paul A. Carter, November 2003. (local copy)
  • Intel 80386 Programmer's Reference Manual, 1987 (HTML). (local copy - PDF) (local copy - HTML)
  • Much shorter than the full current Intel Architecture manuals below, but describes all processor features used in 6.828.
  • IA-32 Intel Architecture Software Developer's Manuals, Intel, 2007. Local copies:
    • Volume I: Basic Architecture
    • Volume 2A: Instruction Set Reference, A-M
    • Volume 2B: Instruction Set Reference, N-Z
    • Volume 3A: System Programming Guide, Part 1
    • Volume 3B: System Programming Guide, Part 2
  • Multiprocessor references:
    • MP specification
    • IO APIC
  • AMD64 Architecture Programmer's Manual. Covers both the "classic" 32-bit x86 architecture and the new 64-bit extensions supported by the latest AMD and Intel processors.
  • Writing inline assembly language with GCC:
    • Brennan's Guide to Inline Assembly, Brennan "Mr. Wacko" Underwood
    • Inline assembly for x86 in Linux, Bharata B. Rao, IBM
    • GCC-Inline-Assembly-HOWTO, Sandeep.S
  • Loading x86 executables in the ELF format:
    • Tool Interface Standard (TIS) Executable and Linking Format (ELF). The definitive standard for the ELF format.
    • Wikipedia page has a short description.

PC Hardware Programming

  • General PC architecture information
    • Phil Storrs PC Hardware book, Phil Storrs, December 1998.
    • Bochs technical hardware specifications directory.
  • General BIOS and PC bootstrap
    • BIOS Services and Software Interrupts, Roger Morgan, 1997.
    • "El Torito" Bootable CD-ROM Format Specification, Phoenix/IBM, January 1995.
  • VGA display - kern/console.c
    • VESA BIOS Extension (VBE) 3.0, Video Electronics Standards Association, September 1998. (local copy)
    • VGADOC, Finn Thøgersen, 2000. (local copy - text) (local copy - ZIP)
    • Free VGA Project, J.D. Neal, 1998.
  • Keyboard and Mouse - kern/console.c
    • Adam Chapweske's resources.
  • 8253/8254 Programmable Interval Timer (PIT) - inc/timerreg.h
    • 82C54 CHMOS Programmable Interval Timer, Intel, October 1994. (local copy)
    • Data Solutions 8253/8254 Tutorial, Data Solutions.
  • 8259/8259A Programmable Interrupt Controller (PIC) - kern/picirq.*
    • 8259A Programmable Interrupt Controller, Intel, December 1988.
  • Real-Time Clock (RTC) - kern/kclock.*
    • Phil Storrs PC Hardware book, Phil Storrs, December 1998. In particular:
      • Understanding the CMOS
      • A list of what is in the CMOS
    • CMOS Memory Map, Padgett Peterson, May 1996.
    • M48T86 PC Real-Time Clock, ST Microelectronics, April 2004. (local copy)
  • 16550 UART Serial Port - kern/console.c
    • PC16550D Universal Asynchronous Receiver/Transmitter with FIFOs, National Semiconductor, 1995.
    • Technical Data on 16550, Byterunner Technologies.
    • Interfacing the Serial / RS232 Port, Craig Peacock, August 2001.
  • IEEE 1284 Parallel Port - kern/console.c
    • Parallel Port Central, Jan Axelson.
    • Parallel Port Background, Warp Nine Engineering.
    • IEEE 1284 - Updating the PC Parallel Port, National Instruments.
    • Interfacing the Standard Parallel Port, Craig Peacock, August 2001.
  • 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, 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!)
    • Sound Blaster Series Hardware Programming Guide, Creative Technology, 1996.
    • 8237A High Performance Programmable DMA Controller, Intel, September 1993.
    • Sound Blaster 16 Programming Document, Ethan Brodsky, June 1997.
    • Sound Programming, Inverse Reality.
  • E100 Network Interface Card
    • Intel 8255x 10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual
    • 82559ER Fast Ethernet PCI Controller Datasheet
  • E1000 Network Interface Card
    • PCI/PCI-X Family of Gigabit Ethernet Controllers Software Developer's Manual

results matching ""

    No results matching ""