Strat9 OS
An experimental operating system kernel written in Rust, targeting x86_64 (primary) and aarch64 (secondary).
Quick start
Building from source
# Build the full OS image (bootloader + kernel)
cargo make build-all
# Run in QEMU
cargo make run-gui
# Run with SMP (multi-core)
cargo make run-gui-smp
Architecture guides
| Guide | Description |
|---|---|
| Architecture Overview | Kernel subsystems, design principles, and data flow diagrams |
| Silo System | Process isolation, resource limits, pledge/unveil, module loading |
| Memory Management | Buddy allocator, slab heap, COW, page tables, vmalloc |
| Boot Sequence | BIOS → bootloader → Limine → kernel init flow |
| IPC Mechanisms | Channels, shared rings, semaphores, futexes |
| IPC Transport Architecture | 3-level hybrid IPC model (TypeSafe / LockFree / MMU) |
| Driver Model | Component trait, PCI, NIC, storage, USB drivers |
| Syscall Reference | Complete syscall table with parameters and errors |
| ABI Overview | Kernel/userspace ABI definitions and versioning |
| ABI Changelog | Recent ABI changes (auto-generated) |
| ABI Support Matrix | Syscall and struct compatibility matrix |
| Syscall Layer | Userspace syscall wrappers and error handling |
| Changelog | Project changelog (auto-generated from git) |
| Publishing | Build, release, and deployment instructions |
API reference by category
Core
The kernel, ABI definitions, and bootloader : the foundation of the OS.
| Crate | Description | API |
|---|---|---|
| strat9-kernel | OS kernel: scheduler, memory management, drivers, IPC | docs · source |
| strat9-abi | ABI definitions shared between kernel and userspace (syscalls, data structs, flags, errno) | docs · source |
| strat9-bootloader | BIOS/UEFI bootloader: stage1 MBR, stage2 protected/long mode switch | docs · source |
Syscall & Userspace
Userspace libraries for interacting with the kernel.
| Crate | Description | API |
|---|---|---|
| strat9-syscall | High-level syscall wrappers, error mapping, and constants | docs · source |
| strate-init | Init process: system bootstrap and service management | docs · source |
Component Framework
Trait-based component model for drivers and services.
| Crate | Description | API |
|---|---|---|
| component | Component trait and registration framework | docs · source |
| component-macro | Derive macros for component registration | docs · source |
| strat9-bus-drivers | Bus driver infrastructure (PCI, VirtIO) | docs · source |
| strate-bus | Bus abstraction layer | docs · source |
Network Drivers
Intel Ethernet and NIC queue management.
| Crate | Description | API |
|---|---|---|
| e1000 | Intel E1000/E1000e network driver | docs · source |
| intel-ethernet | Intel Ethernet common register definitions | docs · source |
| driver-net-proto | Network protocol driver abstractions | docs · source |
| nic-queues | NIC TX/RX queue management | docs · source |
| nic-buffers | NIC buffer allocation and management | docs · source |
| net-core | Network core utilities | docs · source |
Filesystem
Filesystem abstraction and implementations.
| Crate | Description | API |
|---|---|---|
| strate-fs-abstraction | Filesystem abstraction layer with safe math and Unicode | docs · source |
| strate-fs-ext4 | ext4 filesystem implementation | docs · source |
| strate-fs-ramfs | In-memory RAM filesystem | docs · source |
Networking
Network stack, silo network service, and tools.
| Crate | Description | API |
|---|---|---|
| strate-net | Network stack (TCP/UDP/ICMP) | docs · source |
| strate-net-silo | Network silo service (TCP/UDP listener) | docs · source |
| dhcp-client | DHCP client status monitor | docs · source |
| ping | ICMP ping utility | docs · source |
| udp-tool | UDP scheme test utility | docs · source |
| telnetd | Telnet server | docs · source |
| ice-candidate | ICE candidate discovery over scheme UDP | docs · source |
System Services
Admin interfaces, compatibility layers, and experimental features.
| Crate | Description | API |
|---|---|---|
| strat9-components-api | Shared component API types and traits | docs · source |
| strate-console-admin | Interactive console shell with silo management | docs · source |
| strate-web-admin | Web-based admin interface | docs · source |
| strate-wasm | WebAssembly runtime support | docs · source |
| strate-webrtc | WebRTC support | docs · source |
| musl-compat | musl libc compatibility layer | docs · source |
| alloc-freelist | Free-list allocator | docs · source |
Testing
| Crate | Description | API |
|---|---|---|
| silo-test | Silo integration tests | source |
| mem-test | Memory subsystem tests | docs · source |
| test-syscalls | Syscall integration tests | docs · source |
| test-exec | Exec syscall tests | docs · source |
Building docs locally
# Build the full docs site (mdBook + rustdoc)
bash tools/scripts/build-docs-site.sh
# Serve locally
python3 -m http.server --directory build/docs-site 8000
# Check for broken links
python3 tools/scripts/check-links.py --site-dir build/docs-site