A bare-metal x86_64 toy kernel written in Rust.
Follows and draws heavily from Philipp Oppermann's Writing an OS in Rust (blog_os) series.
- Writing an OS in Rust
- Rustonomicon — data layout, Send/Sync, unsafe contracts
- Rust Inline Assembly
coreLibrary Docsx86_64Crate Docs — structures for IDT, GDT, page tables, port I/O- Tracking issue:
x86-interruptcalling convention —abi_x86_interruptfeature gate
- OSDev Wiki
- Ralf Brown's Interrupt List — BIOS interrupt/service reference
- OSDev Forums
- QEMU GDB Stub —
info registers,info mem,info tlb - OSDev Wiki: Kernel Debugging
rust-gdb— GDB with Rust pretty-printers; can inspect statics from debug builds (e.g.print 'kleinos::vga::SCREEN')
- Intel Software Developer Manuals — Vol 3A for IDT, paging, GDT/TSS, control registers; Vol 2A-2D for instruction set
- AMD Architecture Programmer's Manual — Vol 2 System Programming; sometimes clearer than Intel on paging
- System V ABI (x86_64) — calling conventions, stack frame layout, register usage
- 8259 PIC Datasheet
- UART 8250/16550 Programming
- ACPI Specification
- OSTEP — free; virtualization chapters (13-24) most relevant
- Modern Operating Systems (Tanenbaum, 5th ed, ISBN 978-0137618842)
- Operating System Concepts (Silberschatz, 10th ed, ISBN 978-1119800361)
- Computer Systems: A Programmer's Perspective (Bryant & O'Hallaron, 3rd ed, ISBN 978-0134092669)