Building a system.
WHY PEOPLE DO IT
Learning how computers actually work
Specialised requirements: embedded, real-time, research
Security requirements demanding a minimal system
WHAT A MINIMAL SYSTEM REQUIRES
A bootloader Entering protected mode and setting up memory Interrupt handling A memory allocator A scheduler Device drivers A file system A system call interface
WHAT TO BUILD FIRST
Booting and printing output.
WHY
Everything else depends on being able to see what happened.
WHAT TO USE FOR DEVELOPMENT
An emulator, which allows inspection and rapid iteration.
WHY NOT REAL HARDWARE INITIALLY
Debugging is extremely difficult without an emulator's visibility.
WHAT LANGUAGES ARE USED
C, predominantly Assembly, for the earliest stages and specific operations Rust, increasingly, for memory safety
WHAT MAKES IT DIFFICULT
No standard library No debugger initially Faults that reset the machine with no message Hardware documentation that is incomplete
WHAT TO READ
Established teaching operating systems, and their source.
WHAT TO EXPECT
Slow progress, and substantial learning.
WHAT IT TEACHES
More about computing than almost any other exercise.