Week |
Lab |
Material |
Week 1 |
VM and Kernel Building |
- Linux Kernel (2.6.33.3): Download
- How to build a kernel: [Link]
- Kernel building hints: [Link]
- How is kernel compiled: [Link]
- A guide to kernel development process: [Link]
- VirtualBox user manual: [Link]
- VirtualBox shared folders guide: [Link]
|
Week 2 |
Kernel Module and Makefile |
- PS/2 Controller (OSDev.org): [Link]
- Linux Kernel Modules lab: [Link]
- Revolution OS documentary (YouTube): [Link]
- LKM HOWTO (Mostly covers kernel 2.4): [Link]
- IOCTL Documentation: [Link]
|
Week 3 |
Virtual Disk and GRUB |
- Creating virtual disk and loading it with GRUB: [Link]
- Creating virtual disk and loading it with GRUB (Slides): [Link]
- dd GNU manual: [Link]
|
Week 4 |
Primer Demo |
Week 5 |
Protected Mode / Real Mode |
- Ralf Brown's Interrupt List: [Link]
- Detecting Memory (x86): [Link]
- BIOS Report: [PDF]
- ELF format: [Link]
- In-depth ELF video explanation (YouTube): [Link]
|
Week 6 |
MEMOS 2 |
- How does GNU GRUB work: [Link]
- Multiboot Specification: [Link]
- C calling convention: [Link]
- Multiboot header: [Link]
- Multiboot Data Format: [Link]
- Printing to screen: [Link]
- Linker command language: [Link]
- E820 info: [Link]
- Multiboot.h: [Link]
- Memos 2 Sample code: [Link]
|
Week 7 |
N/A |
|
Week 8 |
MEMOS Demo |
|
Week 9 |
GDT, IDT, PIC, PIT |
- How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs (Lamport): [Paper]
- Protothreads: [Link]
- Inline Assembly in C: [Link]
- Memory Addressing modes: [Link]
- LGDT/LIDT instructions: [Link]
- OSDev forum on GDT initialization: [Link]
- Very nice GDT/IDT explanation: [Link]
- How to set up GDT: [Link]
|
Week 10 |
FIFOS-2 |
|
Week 11 |
Office Hours |
|
Week 12 |
FIFOS Demos |
|
Week 13 |
DISCOS Lab |
To be posted |
Week 14 |
Office Hours |
|
Week 15 |
Office Hours |
|
Week 16 |
Finals |
|