Skip to content

v0.23: Unleashing the Cores (Multitasking & SMP)

Choose a tag to compare

@MinecAnton209 MinecAnton209 released this 08 Mar 19:01
· 72 commits to main since this release

πŸš€ Release Notes - NovumOS v0.23 Stable

Date: March 8, 2026

Version: v0.23 (The Multitasking & SMP Milestone)

🌟 Highlights - The Concurrency & Stability Update

This milestone marks the most significant evolution of NovumOS to date. We have transitioned from a single-tasking kernel into a modern, multicore-aware system with a preemptive scheduler. This update fundamentally changes how the OS manages time and resources, providing the infrastructure for complex applications and multi-threaded workloads.

🧠 Preemptive Multitasking

  • Round-Robin Scheduler: Implemented a hardware-timer-driven scheduler that performs context switching across processes. This allows multiple programs to share CPU time seamlessly.
  • Process Lifecycle & Management: Added support for process isolation, termination logic, and return stubs. Processes now automatically clean up their state and memory upon exit.
  • Task Control: New shell utilities (ps, kill) allow users to monitor and manage running tasks directly from the command line.

πŸ—οΈ Symmetric Multiprocessing (SMP)

  • Multi-Core Booting: Implemented a robust SMP initialization protocol using a BSP/AP handshake and dual-startup IPIs. NovumOS now successfully utilizes up to 4 CPU cores (tested in QEMU).
  • Global Work Balancing: Introduced a global task queue with work-stealing capabilities, ensuring that any idle core can take up pending background tasks to maximize system throughput.
  • Synchronized I/O: Implemented kernel-wide spinlocks for critical resources, including a global print lock to prevent interleaved console output from multiple cores.

⚑ Graphics Architecture & Performance

  • Double Buffering: Implemented a full backbuffer system for the VESA Linear Framebuffer. All drawing is now flicker-free.
  • Dirty Rectangles: Added an optimized flushing mechanism that only copies modified pixels to the screen, drastically reducing the overhead of high-resolution rendering.
  • BGA Integration: Full support for the Bochs Graphics Adapter, allowing for dynamic, on-the-fly resolution switching via the res command.

πŸ›‘οΈ Security & Kernel Hardening

  • Kernel Relocation: The kernel is now safely loaded at the 1MB mark (0x100000), avoiding legacy BIOS memory conflicts and providing a clean execution environment.
  • Memory Isolation: Hardened the paging model by making core system structures (Page Directories, PMM) supervisor-only and enforcing strict user-mode pointer validation in syscalls.
  • I/O Guarding: Restricted direct hardware port access from Ring 3. User applications must now use secure syscall wrappers for hardware interaction.

πŸ›  Infrastructure & CI/CD

  • Automated Workflows: Integrated GitHub Actions for automatic builds on both Windows and Linux environments.
  • Build Caching: Implemented sophisticated caching for the Zig compiler and NASM, reducing compilation times by up to 70% in the CI environment.
  • Static Analysis: Integrated CodeQL for automated security scanning of the SDK and C-based system modules.

Full changelog

v0.23-beta.6...v0.23