Skip to content

v0.23-beta.5

Choose a tag to compare

@MinecAnton209 MinecAnton209 released this 10 Feb 12:13
· 126 commits to main since this release

πŸš€ Release Notes - NovumOS v0.23-beta.5

Date: February 10, 2026
Version: v0.23-beta.5

🌟 Highlights - The Security & Hardening Update

This milestone introduces Hardware-Enforced Memory Protection, effectively isolating the Kernel's code and internal structures from the User Mode Shell. For the first time, NovumOS utilizes the processor's Memory Management Unit (MMU) to create a "sandbox" for system processes.

πŸ›‘οΈ Advanced Memory Isolation

  • Executable Protection: The kernel and shell code is now marked as Read-Only for User Mode. Any attempt to modify system binaries at runtime now results in a Page Fault.
  • Supervisor-Only Regions: Critical system areas, including the IDT (Interrupt Table), BIOS Data Area, and Kernel Stack (0x500000), are now invisible to Ring 3.
  • Write Protect (CR0.WP): Enabled the WP bit in the CR0 register. This enforces read-only protection even for kernel-level instructions, preventing accidental corruption of system code by the kernel itself.
  • Precision Boundaries: Integrated linker-generated symbols (_code_start, _data_start) into the paging initialization for pinpoint accuracy in memory permissions.

πŸ—οΈ Architecture & Stability

  • GDT Relocation: Moved the Global Descriptor Table to the .data section. This allows the system to install Task State Segments (TSS) and update descriptors while code segments remain write-protected.
  • Bulletproof Exception Handling: The panic handler (draw_rsod) now intelligently manages hardware registers to ensure it can display Error Screens even if a crash occurs in a write-protected environment.
  • Expanded User Stack: Increased User Stack allocations to 256KB, providing comfortable headroom for deep recursive calls and complex command processing in the shell.

πŸ—οΈ Hardware & Drivers

  • TSS-Ready Segments: Refined GDT offsets to support upcoming multi-tasking and easier privilege switching.
  • Paging Refactoring: Transitioned from a "fixed-block" memory map to a dynamic, symbol-based map, making the kernel easier to expand.

🐞 Bug Fixes

  • Fixed #PF on Startup: Resolved a crash where the shell would overflow its previous 4KB stack and hit supervisor memory.
  • Fixed GDT Write Violation: Resolved a General Protection Fault caused by attempting to update TSS descriptors in a read-only code section.
  • Safe Kernel Re-entry: Improved register state persistence when jumping between kernel and user loops.

Full changelog

v0.23-beta.4...v0.23-beta.5