Operating Systems (OS) development involves learning low-level software that directly interfaces with computer hardware, managing CPU resources, memory, and devices.
- Kernel Architectures: Monolithic kernels (Linux) vs. Microkernels (Minix, seL4) vs. Hybrid kernels (Windows NT).
- Bootloader & Initialization: Real mode to Protected mode transitions, GDT, IDT setup, and UEFI/BIOS interfaces.
- Memory Management: Physical memory allocation, virtual memory mapping, paging, and page fault handling.
- Process Scheduling: Multitasking, context switching, scheduling algorithms (Round Robin, Priority, Multilevel queues).
- Drivers & File Systems: Writing block device drivers, virtual file systems (VFS), and FAT/ext4 structures.