Skip to content

ThunderOS v0.3.0 - Memory Foundation

Choose a tag to compare

@byteshiftlabs byteshiftlabs released this 10 Nov 14:33
· 208 commits to main since this release

ThunderOS v0.3.0 - Memory Foundation

Release Date: November 10, 2025

Overview

Advanced memory management infrastructure for device drivers, including DMA allocation, address translation, and memory barriers. This release builds the foundation for VirtIO device drivers in v0.4.0.

✨ New Features

DMA Memory Allocator

  • Physically contiguous memory allocation for device DMA
  • Address tracking (physical and virtual)
  • Memory zeroing support
  • Region statistics and validation

Memory Barriers

  • Complete RISC-V fence instruction suite
  • Full, read, write, and I/O barriers
  • Data synchronization barriers
  • Instruction synchronization (fence.i)

Enhanced Address Translation

  • Virtual-to-physical translation with page table walking
  • Physical-to-virtual helpers
  • Kernel virtual address utilities
  • Error handling for invalid addresses

Testing & Documentation

  • 10 comprehensive tests for DMA, barriers, and translation
  • Exhaustive Sphinx documentation
  • API reference and usage examples

📊 Release Criteria (All Met)

  • ✅ DMA allocator works reliably
  • ✅ Virtual-to-physical translation accurate
  • ✅ Memory barriers implemented for device I/O
  • ✅ Foundation ready for VirtIO device drivers

🔧 Technical Details

  • DMA Region Tracking: Linked list with magic number validation
  • Memory Barriers: RISC-V fence instructions (rw, r, w, io)
  • Address Translation: 3-level Sv39 page table walking
  • Platform: QEMU virt machine (tested with 128MB-512MB RAM)

📦 Toolchain Updates

  • Switched to riscv64-unknown-elf-gcc (bare-metal toolchain)
  • Updated Dockerfile for CI/CD compatibility
  • Fixed GitHub Actions build issues

See CHANGELOG.md for complete details.