Sources & Resources
Everything referenced during the build of KFS.
Essential Reading
Kernel Development
- OSDev Wiki — The single most useful resource for OS development. Comprehensive, community-maintained, and full of worked examples.
- Bare Bones — Minimal kernel tutorial
- Interrupts
- IDT
- PIC 8259
- PS/2 Keyboard
- Exceptions
- GDT
- Paging
- Memory Allocation
- Page Frame Allocation
Rust OS Development
- Writing an OS in Rust — Philipp Oppermann’s blog series. Different approach (x86-64, higher-half kernel) but excellent explanations of the same concepts.
- Rust Embedded Book — Bare-metal Rust programming guide.
Theory
- How to make an Operating System by Samy Pesse — The source for much of the paging theory in KFS_3.
Specifications
- Multiboot Specification — Official GRUB/Multiboot spec. The Multiboot header format is defined here.
- GNU Linker Manual — Linker script syntax reference.
- Intel Software Developer Manuals — The ultimate reference. Very dense, but authoritative on everything CR0, CR3, EFLAGS, exceptions, paging.
Assembly & x86
- x86 Assembly Guide (Virginia) — Beginner-friendly introduction.
- NASM Tutorial — NASM syntax reference.
- x86 Instruction Reference — Look up any instruction.
- OSDev Inline Assembly Examples — The source for
outb,inb,io_wait.
Tools
- QEMU — Hardware emulation for testing.
qemu-system-i386for our 32-bit kernel. - NASM — Netwide Assembler. Used for
boot.asm,kb.asm,exc.asm,gdt.asm. - mdBook — What this documentation is built with.
Installing mdBook (Arch Linux)
cargo install mdbook
# or
yay -S mdbook
Building This Book
cd kfs-book/
mdbook build # Build static HTML to ./book/
mdbook serve # Build and serve at http://localhost:3000
mdbook watch # Rebuild automatically when files change