Developing a multi-threaded kernel from scratch
Documents in this repo assume macOS on an Apple M1 chip.
> brew install nasm
> brew install qemu
- Bootloader / Real Mode
- Entering Protected Mode
- Loading 32-bit kernel
- Writing kernel in C / Interrupt Descriptor Table
- Interrupt Descriptor Table
- Programmable Interrupt Controller
- Memory Management - Heap
- Memory Management - Paging
- File System - Disk Driver
- File System - FAT16
- Virtual File System
- User Space
- Talking with the kernel from User Space
- Accessing the Keyboard in Protected Mode
- ELF files
- Writing User Programs in C
- Shell and Launching Other User Programs