From OSDev Wiki
This page maintains a list of resources related to operating system development.
Operating System Development
Warning: External tutorials tend to be old, have bugs, don't follow current community recommendations, and often aren't community edited.
- Bran's Kernel Development tutorial and the list of bugs.
- Bonafide OS Development
- The Operating System Resource Center
- Christopher Giese's website
- How to Write an Operating System
- NeuralDK OSDev Tuts
- TAJ OS Development (This link is broken since 2014)
- BrokenThorn OS Development Tutorials
- OSDCOM (This link is broken since 2014)
- The OsLib (This link is broken since 2014)
- OS FAQ, overall design, VM design, threads..
- Memory Management
- Protected Mode
- Roll your own UNIX-clone OS and the list of known bugs.
- Operating System Tutorials (This link is broken since 2014)
- Germsoft OS Tutorials and Resources (This link is broken since 2014)
- int6.org - System Programming Resources
- Pierre's Library
- Ace OS 'specifications' page
- stockpile of hard-to-find datasheets (broken) archive.org version
- List of PS/2 documents
- ChipDB datasheet archive
Human Input Devices
- official ATA working group
- another ATA/ATAPI website, includes reference driver
- an introduction to ATA/ATAPI commands. It contains a couple of ASM examples to read sectors and identify drives.
- Disk and Disc Drives
- collected links about Ultra DMA, on ATA drives and how PCI configuration comes.
Network and Communication ports
- Interconnect Buses
- official USB developers docs
- more USB info
- USB OHCI
- USB EHCI
- OHCI for FireWire
- OHCI mirror
- Banana - Use these if you want
- Ralf Brown's Interrupt List
- The Boot Process
- File Systems
- Executable File Formats
- Plug'n'Play Specs
- Device Driver Interfaces
- The Art of Software Security Assessment
- Art of Exploitation
- Secrets of Reverse Engineering
- Subverting the Windows Kernel
- Miscellaneous Code
- OSD Code Snippet Index
- stockpile of documents at singlix.org
- a reference implementation for malloc()
- Agnix Kernel
- Minix 3