01. Prerequisite Readings - josehu07/hux-kernel GitHub Wiki
Good online resources are your friends. There are also bad and misleading ones. Some tutorials are cleanly written yet adopted out-of-date techniques. Choose wisely!
Recommended Prerequisite Readings
OS conceptual materials (must have a solid understanding of OS theory):
- Operating Systems: Three Easy Pieces (OSTEP) by Prof. Arpaci-Dusseaus
- My reading notes on OSTEP book & lectures
Here are a few pages on the OSDev wiki worth reading before diving into OS kernel development:
- Required Knowledge
- Beginner Mistakes
- Getting Started
- Creating an Operating System phases overview
- Tutorials collection. Remember that not all tutorials suit your ideas perfectly, and lots of them have design flaws and even serious bugs, so choose wisely
The OSDev wiki is a great source (I would say the best so far) of kernel development resources. Most of the time, it is wise to follow the OSDev community members' advices.
References
Main references:
- The OSDev Wiki (IMPORTANT ✭)
- JamesM's Kernel Tutorial by James
- Writing an OS in Rust by Philipp (still updating...)
- The xv6 Kernel x86 ver. by MIT PDOS (no longer updated)
The basic structure of Hux kernel follows James' tutorial parts 1 - 6, but fixes bugs and problems as stated on the "Known Bugs" page and adds in plenty of my own design choices. Starting from the heap, Hux diverges away.
Others worth reading:
- GNU GRUB multiboot1's Example OS Code
- James Molloy's Tutorial Known Bugs: James' tutorial is great - organized newbee-friendly, but adopts many obsolete and inappropriate techniques
- Huan Liu's Blog: a duplication and reorganization of James's tutorial in Chinese
- ...