https://www.youtube.com/@offlinemark
Milestone 1: JOS
- โ Lab 1: Boot
- โ Lab 2: Memory Management
- โ Lab 3: User Environments (Processes)
- โ Lab 4: Preemptive Multitasking
- โ Lab 5: Filesystem, Spawn, Shell
- โ Lab 6: Network card driver
Milestone 2: Modern OS Foundation
- โ
Try bootloaders
- โ Multiboot V1 (Grub)
- โ Multiboot V2 (Grub)
- โ Limine (BIOS)
- โ Limine (UEFI)
- โ C++ support in JOS
- โ
Modern LLVM toolchain
- โ Clang instead of GCC
- โ cc-runtime (compiler-rt) instead of libgcc
- โ LLD Linker
- โ LLDB Debugger
- โ Port JOS to CMake
- โ
Third party C++ libraries
- โ STL
- โ ETL
- โ Frigg
Milestone 3:
- โ Basic virtual address space management (mapping)
- โ Basic Interrupts/Exception support
- โ
Basic Scheduler (Round Robin)
- โ Deferred task cleanup
- โ Task stack guard pages
- โ
Cooperative multitasking
- โ taskYield() – cooperative yield
- Task Scheduler APIs
- โ taskExit()
- โ taskWaitForTaskExit()
- โ taskSleepCpuCycles()
- โ
Preemptive Multitasking
- โ LAPIC Timer Interrupt
- Concurrency Primitives
- Spinlock
- Mutex
- Semaphore
- Condition Variable?
- Drivers
- Serial console
Future:
- Processes (Task Groups)
- More advanced scheduler
- Audio
- USB
- Kernel Objects
- SMP / Multicore
- Per CPU State (GS)
- Coroutines (In Kernel?)
- Userspace
- IPC
- Graphics
- Drivers
- Filesystem
- ASLR
- Accelerate syscalls (Syscall instruction)
- ARM64
- RISCV
