Reading materials
x86 Emulation
- QEMU - A fast and popular x86 platform and
CPU emulator.
- Bochs - A more mature, but quirkier
and much slower x86 emulator. Bochs is generally a more faithful
emulator of real hardware than QEMU.
x86 Assembly Language
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
- Sound cards (not supported in JOS, but you're welcome to do
it as a challenge problem!)
- E100 Network Interface Card
- E1000 Network Interface Card