Monthly Archives: October 2026

My OSdev Roadmap

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