Skip to content

Releases: wi5nuu/VortexOS

VortexOS v1.2.0-alpha: Process Lifecycle & SMP Core Integration

Choose a tag to compare

@wi5nuu wi5nuu released this 11 Jun 11:51

VortexOS v1.2.0-alpha — Core Infrastructure & Process Lifecycle

This release marks a major architectural milestone for VortexOS. We have successfully transitioned from a bare-metal boot environment into a functional multitasking Symmetric Multiprocessing (SMP) kernel with full process-thread lifecycle support.

Key Implementation Highlights

1. Process & Thread Subsystems (src/, include/)

  • POSIX-like Core: Implemented deterministic, real-time-safe versions of fork() and execve().
  • Lifecycle Management: Added robust TCB (Thread Control Block) and PCB (Process Control Block) allocation mechanisms.
  • Address Space Isolation: Enforced unique PML4 page tables per process with initial KPTI structures to mitigate speculative execution side-channel attacks.

2. Advanced Real-Time Scheduling & SMP

  • EDF Scheduler: Active admission control and Earliest Deadline First scheduling for hard real-time guarantees.
  • AP Bootstrap: Stable INIT-SIPI-SIPI sequence routing via the MADT parser, allowing successful multi-core long-mode execution.
  • Per-CPU Isolation: Secure handling of context switching via the GS segment pointer (CpuLocal structure).

3. Build & Verification System (tests/)

  • Toolchain Rigidity: Full integration with Clang 17/18 and LLVM lld using C++23 freestanding flags.
  • Phase Validation: Unified automation scripts (build.ps1, run.ps1) supporting Phases 0 through 8 subsystem tests within QEMU.

Quick Start & Verification

To build and run this specific release artifact locally:

# Clone and navigate to the repository
git clone [https://github.com/wi5nuu/VortexOS.git](https://github.com/wi5nuu/VortexOS.git)
cd VortexOS

# Configure and build using Ninja
mkdir build && cd build
cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-toolchain.cmake ..
ninja

# Emulate with 4 CPU Cores via QEMU
qemu-system-x86_64 -kernel vortexos.elf -serial stdio -m 1G -smp 4 -cpu host