v0.23-beta.3
·
128 commits
to main
since this release
π Release Notes - NovumOS v0.23-beta.3
Date: February 9, 2026
Version: v0.23-beta.3
π Highlights - The SDK & Application Development Update
This milestone release introduces the official NovumOS SDK, empowering developers to create native user-mode applications. With a standardized C/Zig API, pre-built static libraries, and automated build scripts, NovumOS now offers a complete ecosystem for extending the operating system's capabilities.
π οΈ NovumOS SDK & Developer Tools
- Complete Development Kit: Introduced the
sdk/directory with everything needed to build, link, and run user-mode programs. - Universal Static Library (
libnovum.a): A pre-compiled library providing a stable interface between user applications and the kernel's system calls. - Multi-Language Support: First-class support for both C and Zig application development, including header files (
novum.h) and Zig source modules. - Automated Build Scripts: Added
build-app.bat(Windows) andbuild-app.sh(Linux) to streamline the compilation and linking process into a single command. - Optimized Linker Logic: Custom
linker_app.ldscript ensures applications are correctly mapped for User Mode execution with proper entry points.
π Unified Syscall API (LibNovum)
- Stable Wrappers: Provided high-level wrappers for core system functions:
nv_print(): Text rendering with transparent console handling.nv_getchar(): Interactive keyboard input support.nv_set_cursor()/nv_get_cursor(): Full hardware screen management.nv_clear_screen(): Terminal reset functionality.nv_exit(): Graceful program termination and return to kernel.
- Error Safety: Built-in safeguards in syscall wrappers to prevent invalid memory access from user-mode code.
π Documentation & Reference Examples
- Comprehensive Guides: Added
README.mdandQUICKSTART.mdwithin the SDK folder, detailing API usage, build instructions, and troubleshooting. - Practical Examples:
hello_world: A minimal example demonstrating basic printing and input.calculator: A UI-focused demo showing advanced cursor positioning and screen management.
- Main Documentation Sync: Updated the primary project README with a dedicated SDK section and quick-start instructions.
π Release Notes - NovumOS v0.23-beta.2
Date: February 8, 2026
Version: v0.23-beta.2
π Highlights - The User Mode & Security Update
This major release introduces User Mode (Ring 3) support, a standardized System Call Interface, and a complete migration of the Nova Language interpreter into a protected environment. This update provides the foundation for system stability and application isolation.
π‘οΈ User Mode & Privilege Isolation
- Ring 3 Support: The kernel now supports execution at privilege level 3. This implements memory protection and prevents user-mode code from executing privileged instructions.
- Stable Transition (IRET): Implemented a robust entry/exit mechanism via the
iretinstruction, ensuring consistent stack and register states during transitions. - Hardened IRQ Handling: Enhanced interrupt wrappers (Keyboard, Timer) to safely save and restore all segment registers (
DS,ES,FS,GS), preventing cross-privilege state corruption. - SSE & Alignment: Enabled SSE support for user processes and enforced 16-byte stack alignment (at
0x3FFFF0) to support modern compiler optimizations (Zig/Clang).
π System Call Interface (int 0x80)
- Standard Gateway: Provided a unified entry point for user applications.
- Initial API Surface:
0: Exit process1: Print string (with automatic carriage return handling)2: Get character (blocking keyboard input)3/4: VGA Hardware Cursor control (Set/Get)5: Clear Screen
- Transparent Redirection: Core Zig modules (
vga,keyboard,common) now automatically detect the privilege level and redirect I/O requests through syscalls when running in Ring 3.
π¦ Nova Language in Ring 3
- Protected Environment: The Nova interpreter now runs entirely in User Mode. Any potential interpreter faults are now safely caught by the kernel's exception handlers.
- Enhanced I/O Safety: Integrated privilege checks in VGA and Serial drivers to prevent General Protection Faults (
#GP) during accidental direct hardware access.
Full changelog
Full Changelog: v0.23-beta.2...v0.23-beta.3