Operating Systems: Concepts to Build-Your-Own
A two-part OS reference — core functions, history, today's major OS families, and where things are heading, followed by a step-by-step guide to building a toy operating system from bootloader to shell: the GDT, IDT, paging, the heap, process scheduling, device drivers, system calls, and a file system, with a case study and build checklist.
Most OS material stays theoretical — process scheduling, paging, the usual diagrams. The second half here, building a toy OS from bootloader to shell, is what actually makes the theory stick, because you can't fake understanding the GDT and IDT when you're the one implementing them. If you only have time for one part, the build-your-own section teaches you more per hour than the concepts section, even though it's the harder half.