A FOSS textbook that teaches you how to write an OS from scratch. Reading hardware datasheets and official documentation, system organization, very little sample code to get you solving problems on your own. How to debug on the bare metal using gdb and QEMU. Requires knowledge of C and ideally the Linux environment. Has a reference to a sample OS which illustrates certain concepts.