Skip to content

v0.16.2: Phase 5 Completion + Phase 8 Wave 1 (Foundation & Self-Hosting)

Choose a tag to compare

@doublegate doublegate released this 06 Mar 05:14
· 703 commits to main since this release

VeridianOS v0.16.2 — Phase 5 Completion + Phase 8 Wave 1 (Foundation & Self-Hosting)

Date: March 6, 2026
28 files changed (21 new), ~5,500 insertions, ~25 deletions

Highlights

  • Phase 5 Performance Optimization → 100%: Software trace instrumentation now covers all 10 event types (was 8/10). FrameFree wired into per_cpu_free_frame(), PageFault wired into page_fault_handler(). All validation criteria (syscall latency, IPC throughput, interrupt latency, scalability, regression tests) confirmed met.

  • Phase 8 Wave 1 (partial): 21 new source files across 6 kernel module trees implementing the foundation for VeridianOS self-hosting: GDB stub, native git client, build orchestrator, compiler bootstrap portfiles, IDE with LSP, CI runner, and profiler GUI.


Phase 5: Trace Instrumentation Completion (10/10)

Event Type Location Status
SyscallEntry syscall/mod.rs Wired (v0.5.7)
SyscallExit syscall/mod.rs Wired (v0.5.7)
SchedSwitchOut sched/scheduler.rs Wired (v0.5.7)
SchedSwitchIn sched/scheduler.rs Wired (v0.5.7)
IpcFastSend ipc/fast_path.rs Wired (v0.5.8)
IpcFastReceive ipc/fast_path.rs Wired (v0.5.8)
IpcSlowPath ipc/fast_path.rs Wired (v0.5.8)
FrameAlloc mm/frame_allocator.rs Wired (v0.5.8)
FrameFree mm/frame_allocator.rs Wired (v0.16.2)
PageFault arch/x86_64/idt.rs Wired (v0.16.2)

13 total crate::trace!() call sites across 5 files, covering all 10 TraceEventType variants.


Phase 8 Wave 1: New Modules

GDB Remote Serial Protocol (kernel/src/debug/)

  • gdb_stub.rs (~650 lines): Full RSP packet framing with $data#checksum wire format, register read/write (g/G packets), memory read/write (m/M packets), single-step via EFLAGS TF, continue (c), halt reason query (?), thread info stubs. Transport over COM2 (0x2F8). GdbState with session tracking (connected, halted, single-stepping, current thread). 12 unit tests.

  • breakpoint.rs (~350 lines): Software breakpoint manager (INT3 0xCC instruction patching with original byte preservation), hardware watchpoints via x86_64 DR0-DR3 debug registers (4 types: Write, ReadWrite, Execute, IOReadWrite), slot management for up to 256 software + 4 hardware breakpoints. 10 unit tests.

Native Git Client (kernel/src/devtools/git/)

  • objects.rs (~600 lines): Git object model (Blob/Tree/Commit/Tag) with SHA-1 hash computation (full FIPS 180-4: 80-round message schedule, 512-bit blocks, padding). ObjectId 20-byte storage with hex encode/decode. Tree entry parsing with mode/name/hash fields. 15 unit tests.

  • deflate.rs (~300 lines): Zlib inflate for packfile decompression. Huffman decoding with fixed and dynamic code table support, ADLER32 checksums, LZ77 back-reference resolution. 8 unit tests.

  • refs.rs (~300 lines): Git reference management (HEAD, branches, tags). RefStore with symbolic ref resolution, branch CRUD, detached HEAD. 10 unit tests.

  • commands.rs (~700 lines): Porcelain commands: init, add, commit, log, diff, status, branch, checkout. In-memory object database, staging index, working directory tracking, author/committer metadata. 18 unit tests.

  • transport.rs (~500 lines): Git smart HTTP protocol. Pack-line framing (4-byte hex length prefix), want/have/done negotiation, packfile index parsing, fetch/push/clone operation scaffolding. 12 unit tests.

Build Orchestrator (kernel/src/pkg/)

  • build_system.rs (~500 lines): Source-to-binary pipeline with 10 build stages (Fetch → Verify → Extract → Patch → Configure → Compile → Test → Install → Package → Done). Dependency topological sort via Kahn's algorithm with cycle detection. Build sandbox with namespace isolation and controlled environment variables. BuildOrchestrator with dependency-aware job execution. 15 unit tests.

  • build_package.rs (~500 lines): Binary .vpkg package creation. Ed25519 signing with signature verification. Package metadata (name, version, arch, dependencies, file manifest with per-file SHA-256 checksums). TAR-like archive format. 12 unit tests.

Compiler Ports (kernel/src/pkg/ports/)

  • llvm.rs (~450 lines): LLVM 19.1.0 portfile with CMake configuration generator (30+ flags), memory validation (4GB minimum), target triple selection (X86/AArch64/RISCV), single-threaded link mode, build/install/test command generation. 8 unit tests.

  • rustc_bootstrap.rs (~270 lines): Multi-stage rustc bootstrap (Stage 0→1→2). config.toml generator for x.py with seed compiler paths, LLVM root, target triple. Stage advancement with error handling. Binary reproducibility verification via SHA-256 hash comparison. Rustdoc build configuration. 11 unit tests.

IDE with LSP (kernel/src/devtools/ide/)

  • editor.rs (~510 lines): Gap buffer text editor engine (64-byte initial gap, amortized O(1) insert/delete, dynamic gap growth). Multi-buffer support with undo/redo history (Insert/Delete operation stack). Cursor tracking (byte position, line, column). Line-based text access. Editor multi-buffer manager. 12 unit tests.

  • lsp_client.rs (~700 lines): LSP client with JSON-RPC 2.0 over stdin/stdout. 6 methods: initialize, completion, hover, go-to-definition, didOpen, publishDiagnostics. Minimal JSON response parser. Request ID sequencing. Diagnostic severity levels. 14 unit tests.

CI Runner (kernel/src/devtools/ci/)

  • runner.rs (~600 lines): Pipeline/job/step execution hierarchy. TOML-like job definition parsing. Sequential step execution with pass/fail/skip tracking. Artifact collection. Environment variable propagation. allow_failure support. Log capture. 12 unit tests.

Profiler GUI (kernel/src/devtools/profiler/)

  • gui.rs (~390 lines): Flame graph renderer (recursive frame tree, depth-based 6-color gradient, proportional width by sample count, 50-depth limit). CPU utilization timeline with per-point tracking. Memory timeline with peak detection. ProfilerSession for stack trace aggregation. ProfilerGui pixel buffer renderer (4 view modes: FlameGraph, CpuTimeline, MemoryTimeline, CallTree). 12 unit tests.

Module Registration

  • lib.rs: pub mod debug and pub mod devtools (gated on #[cfg(feature = "alloc")])
  • pkg/mod.rs: pub mod build_package and pub mod build_system
  • pkg/ports/mod.rs: pub mod llvm and pub mod rustc_bootstrap

Build Verification

Target Build Clippy Status
x86_64 bare-metal Pass 0 warnings OK
aarch64-unknown-none Pass 0 warnings OK
riscv64gc-unknown-none-elf Pass 0 warnings OK
x86_64-unknown-linux-gnu (host) Pass 0 warnings OK
All 3 architectures Build 0 errors OK

Full Changelog: v0.16.1...v0.16.2