// the find
cfenollosa/os-tutorial
How to create an OS from scratch
A step-by-step tutorial for building a toy x86 operating system, from a 512-byte boot sector through protected mode, a C kernel, interrupts, a timer, a keyboard driver, a small libc, and a shell. It is for programmers comfortable with C and assembly who want to see the boot path without reading Linux source. The author marks it as abandoned, so treat it as a learning path rather than a reference.
Each lesson is a self-contained folder that builds on the last, so diffing lesson 19 against lesson 20 shows exactly what the timer and keyboard code adds. The path covers the parts many hobby tutorials hand-wave: the GDT and the switch into 32-bit mode, IDT setup with PIC remapping, and IRQ dispatch. The screen and keyboard drivers talk to VGA memory and the CRT and PS/2 ports directly, with no emulator-specific abstraction in the way. Lesson 11 spells out the cross-compiler toolchain explicitly, which is where most OS tutorials lose readers.
The author says the project is abandoned, and the linked issue #269 lists technical and design problems, so do not assume the code is current or correct. Memory management, the filesystem, user mode, and multitasking from the strategy list are not done, so the tutorial stops well short of a usable system. Everything targets 16-bit BIOS boot and 32-bit x86, with no paging, no 64-bit, and no UEFI, so the knowledge does not carry directly to a modern kernel. The README deliberately skips theory, which leaves the reasoning behind segmentation and interrupt setup to outside sources, and there is no test harness, so you verify each step by hand in an emulator.