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-06-25 4fb871f Refactor error codes and syscall flags; implement getrandom syscall
  • 2026-06-25 a522fb8 Refactor NIC data plane and IPC transport statistics
  • 2026-06-25 d1e838f feat: implement IPC transport layer with 3-level architecture
  • 2026-06-25 411f5aa feat: add IPC transport layer support and enhance ICMP handling
  • 2026-06-25 5a3d69c feat: migrate input system to userspace
  • 2026-06-24 3fea3f3 SMP hardware debug, NVMe fixes, VGA refactor, telnetd hardening, docs
  • 2026-06-16 e4ab1a9 Enhance network stack, NIC drivers, USB/NVMe subsystems, and thermal management
  • 2026-06-03 0c40058 Refactor the network stack and add dual-stack userspace tooling
  • 2026-05-24 aeade5e Code cleanup
  • 2026-05-24 b2bbcc0 Improve and fix IPC
  • 2026-05-23 db23b53 Fix major memory leak and remove sshd silo
  • 2026-05-19 93c8927 async: implement and optimize async I/O completion handling
  • 2026-05-18 7c5efb4 async: io_uring-like async I/O — ring, dispatch, AHCI bridge (Phases 1-4)
  • 2026-05-14 cc4944a Refactor and clean up code in various modules
  • 2026-05-14 ecc416d refactor: strate-init refactoring, ELF/VFS/signal hardening, TSC calibration fix
  • 2026-05-08 f070d41 Add kernel entropy pool with interrupt-driven collection
  • 2026-05-08 9dedb9f Implement robust list support (set_robust_list/get_robust_list)
  • 2026-05-08 d2e90a2 Bridge clone() thread creation via SYS_THREAD_CREATE, add faccessat routing
  • 2026-05-08 dabcad2 Add sys_access(), sys_faccessat(), and SYS_GETRANDOM() in syscall dispatcher
  • 2026-05-08 946f200 Add missing call for clock_nanosleep and update the calling manager
  • 2026-05-06 117863e Enhance network and silo management functionality
  • 2026-04-12 6963e28 fix: reduce scheduler contention and harden early boot memory init
  • 2026-04-12 f3647c1 feat(memory): production-grade allocator architecture (#49)
  • 2026-04-06 a941264 feat: capability-based CWD, *at syscalls, and O_RESOLVE_BENEATH sandboxing
  • 2026-04-06 309a9c1 refactor: runtime allocation, scheduler lock decoupling, FixedQueue, and VGA improvements
  • 2026-03-26 a9a6cd6 Implement block-oriented memory management and ownership tracking
  • 2026-03-23 ec8ee9f refactor(memory): update reference counting logic for COW frames
  • 2026-03-23 aaa89e0 Refactor: Decouple per-CPU scheduler state and logic from the global scheduler instance by moving SchedulerCpu to local CPU storage.
  • 2026-03-21 c3f93c6 feat: Implement TSC-based boot timing and milestones, along with an analysis...
  • 2026-03-17 eb7818d feat: Implement static module loading from initfs paths and increase module blob size limit.

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>