ABI Changelog

This page tracks ABI evolution for strat9-abi.

Versioning policy

  • Major (ABI_VERSION_MAJOR) changes only for incompatible wire/layout changes.
  • Minor (ABI_VERSION_MINOR) changes for backward-compatible additions.
  • No silent renumbering of existing syscall IDs.
  • repr(C) and explicit size checks are mandatory for exported ABI structs.

Current version

  • ABI_VERSION_MAJOR = 0
  • ABI_VERSION_MINOR = 1
  • Packed: 0.1

See:

Recent ABI updates (auto-generated)

  • 2026-09-27 f64aff3c Implement console rendering and mouse input handling tasks
  • 2026-09-13 3898c507 feat(bootloader, kernel, abi): homemade strat9 UEFI bootloader : rewrite with scheduler and memory hardening
  • 2026-08-28 c03feb24 fix(abi): ENOTSUP 52→95, XFS EiB constant fix, decode_fixed roundtrip tests
  • 2026-08-27 3ca6d7c6 feat: Add U-Boot setup script and boot protocol implementation
  • 2026-08-25 88c52834 refactor(arch): unify x86_64 crate access via x86_crate_shim, complete riscv stubs
  • 2026-08-25 c8ca94c4 refactor(arch): route shared code through arch::xshim, gate limine/x86 deps
  • 2026-08-25 f3366e1d refactor(arch): migrate process/ and syscall/ call-sites to arch facade
  • 2026-08-25 4399b5f5 test: pass 2 over full codebase — syscall, ABI data/handshake, NIC drivers, allocator
  • 2026-08-25 88feb023 test(abi): exhaustive L0/L1 anti-regression suite
  • 2026-08-27 09216d7c Merge branch 'fix/elf-loader-hardening' into 'main'
  • 2026-08-27 2bad5b9b feat(elf): loader hardening (#62 #63 #64 #67 #68, groundwork #66)
  • 2026-08-25 6ca7fef9 fix(ipc): security hardening, perf fixes and typed wire-format layer
  • 2026-07-18 abb7dd7e feat(buddy): harden, optimize, and add kernel.toml configuration
  • 2026-07-17 fe68f9aa fix(vfs,console,scheduler): VFS improvements, console perf, panic backtrace
  • 2026-07-14 3a5eb69d feat(silo): replace Vec with heapless::Vec for bounded fields
  • 2026-07-09 ab22b0d9 feat: 3-level IPC transport, N3 MMU thread migration, graphical silo, NIC/E1000 fixes
  • 2026-06-25 5a3d69c4 feat: migrate input system to userspace
  • 2026-06-24 3fea3f37 SMP hardware debug, NVMe fixes, VGA refactor, telnetd hardening, docs
  • 2026-06-16 e4ab1a96 Enhance network stack, NIC drivers, USB/NVMe subsystems, and thermal management
  • 2026-06-03 0c400585 Refactor the network stack and add dual-stack userspace tooling
  • 2026-05-24 aeade5ef Code cleanup
  • 2026-05-24 b2bbcc0b Improve and fix IPC
  • 2026-05-23 db23b536 Fix major memory leak and remove sshd silo
  • 2026-05-19 93c89275 async: implement and optimize async I/O completion handling
  • 2026-05-18 7c5efb4d async: io_uring-like async I/O — ring, dispatch, AHCI bridge (Phases 1-4)
  • 2026-05-14 cc4944a2 Refactor and clean up code in various modules
  • 2026-05-14 ecc416df refactor: strate-init refactoring, ELF/VFS/signal hardening, TSC calibration fix
  • 2026-05-08 f070d41c Add kernel entropy pool with interrupt-driven collection
  • 2026-05-08 9dedb9f1 Implement robust list support (set_robust_list/get_robust_list)
  • 2026-05-08 d2e90a2f Bridge clone() thread creation via SYS_THREAD_CREATE, add faccessat routing

Changelog entries

0.1

  • Introduced canonical strat9-abi crate as single source of truth.
  • Unified syscall numbers in strat9_abi::syscall.
  • Unified shared structs (TimeSpec, IpcMessage, FileStat, PCI types).
  • Added boot handoff ABI (KernelArgs, MemoryRegion, MemoryKind) with magic/version checks.
  • Added ABI introspection syscall SYS_ABI_VERSION.

Entry template

Use this template for future ABI entries:

### X.Y
- Added:
  - <new syscalls/types/flags>
- Changed (compatible):
  - <field additions, new constants, optional semantics>
- Changed (breaking):
  - <layout/numbering/semantic breaks>
- Migration notes:
  - <what userspace/kernel must update>