Skip to content

MerlionOS v100.1 — Performance & Stability Release

Choose a tag to compare

@lai3d lai3d released this 17 Mar 13:33
· 53 commits to main since this release

MerlionOS v100.1 — Performance & Stability Release

The first quality-focused release after v100. No new features — just making everything work better.

What Changed

🔧 Boot Fix: Lazy Module Initialization

  • Problem: 154 module init() calls at boot consumed >8MB heap, causing OOM panic — the kernel couldn't even reach the shell
  • Fix: Only 30 essential modules init at boot, rest are lazy-loaded on demand
  • Result: Boot heap reduced from 8MB (still OOMing) to 2MB (works perfectly)
  • This also fixed the "vim keyboard not working" bug — the kernel was crashing before reaching the shell

📦 Shell Refactor

  • Split shell.rs from 3,882 lines (956 match arms) into modular structure
  • shell.rs (302 lines) — core input handling, coordinator
  • shell_cmds.rs (3,662 lines) — 10 category-based dispatch functions
  • Much easier to find, modify, and add commands

⚡ VFS Path Cache

  • Added FNV-1a hash-based path cache (256 entries) to VFS
  • Path lookups go from O(n) linear scan to O(1) hash lookup
  • Cache populated on file create, invalidated on delete

🖥️ UEFI Boot Completion

  • Applied same lazy-init fix to Limine UEFI boot path
  • UEFI boot now works without OOM, matching BIOS boot reliability

🧪 Automated Smoke Tests

  • New make test-smoke — boots QEMU, logs in, runs 7 commands, verifies output
  • 11/11 tests passing: boot, heap, login, help, info, uptime, ps, heap, ls, whoami
  • Uses QEMU monitor + socat for keystroke injection

Stats

  • 132,618 lines of Rust
  • ~360 modules (30 boot-essential, ~330 lazy)
  • 2MB heap (down from 8MB)
  • 0 errors, 0 warnings
  • 11/11 smoke tests passing

Upgrade

git pull
cargo clean
make build
make run       # boots to shell in seconds
make test-smoke  # run automated tests

Born for AI. Built by AI. Now actually works properly. 🦁