The verified microkernel platform
One nucleus. Three deployment personalities. Structural safety Linux cannot retrofit.
Oxide9 is a hybrid capability-based microkernel implemented in Oxide — a systems programming language designed for predictable ownership. One nucleus, three deployment products.
Oxide9 combines a ≤5,000-line capability microkernel with a purpose-built systems language. Deploy the same core as hard-real-time embedded firmware, a sub-30 ms unikernel, or a multi-process server with POSIX compatibility — without rewriting your kernel for each target.
Structural safety Linux cannot retrofit. Simpler than seL4. Hot-extensible at the kernel level.
Native Cap<T> tokens on every nucleus call. No POSIX file descriptors in the nucleus. No ambient authority — ever.
Load .oxext modules into the running kernel at runtime without rebooting. Five-stage pipeline enforces safety before execution.
Embedded, Unikernel, Server — resolved at link time from one nucleus codebase. No source-tree forks, no #ifdef personality branches.
Interrupt hot paths in verified kernel extensions. Driver logic in restartable user-space. A crash can never take the nucleus down.
Fixed-priority preemptive RT, weighted fair queueing, and adaptive partitioning — all in the nucleus scheduler, switchable per personality.
Structured events wired into IPC, capability ops, faults, and scheduling decisions. Tracing is a nucleus primitive, not a bolt-on.
Oxide is a deliberate systems language for kernel and extension development — no GC, no libc, no runtime. Currently in development (M0 compiler bootstrap in progress).
hello.ox → C → runs on host; --verify-extension rejects unsafe raw blocks; --target freestanding-module produces empty stubs. Full language coverage is Milestone M0 (planned, ~7,500 LOC compiler).
Synchronous call as the primary primitive, with priority inheritance. Asynchronous notifications for secondary interactions.
Async message passing for fire-and-forget patterns
Synchronous RPC with priority inheritance — caller blocks until server replies
Lightweight async signals for event-driven architectures
Personality differences are link-time, not source-tree forks — one codebase, three products.
Any Oxide module that passes the compiler and governance verifier can be loaded into the running kernel as a .oxext file — without rebooting. A stronger generalisation of eBPF with full systems programming capability.
All five stages must pass atomically — rejection at any stage aborts the load entirely.
Write a 50-line Oxide packet filter, load it, route traffic through it at kernel speed — no reboot, no kernel patch.
Attach structured tracing probes to any IPC channel without modifying the nucleus.
Plug in new scheduling policies as verified extensions — experiment without recompiling the kernel.
Add crypto offload or LSM-style security policy hooks at capability call boundaries.
Linux eBPF uses a restricted DSL because C cannot be statically verified. Oxide can be verified at compile time — so Oxide9 extensions use the full language, not a DSL subset.
Goal: a new driver in under one day. Describe registers in a DSL, implement cold-plane logic in safe Oxide, attach a verified hot-plane snippet.
| Platform | Memory Safety | Hot Extensions | Multi-Personality | Cert-Ready | Nucleus Size |
|---|---|---|---|---|---|
| Oxide9 | ✓ Oxide + Cap<T> | ✓ Full language (.oxext) | ✓ 3 modes (link-time) | ✓ TCB-focused (M9) | ≤ 5,000 LOC |
| Linux | ✗ C, many CVEs | ○ eBPF (DSL only) | ✗ Monolithic | ✗ Not designed for | ~30M LOC |
| seL4 | ✓ Formally verified | ✗ None | ✗ Single mode | ✓ Formal proof | ~8,700 LOC |
| Rust kernels | ✓ Borrow checker | ○ Limited | ✗ Varies | ○ Partial | Varies |
| Zephyr RTOS | ✗ C/C++ | ✗ None | ✗ Embedded only | ○ Some profiles | ~300K LOC |
"Oxide9 is safer than Linux, simpler than seL4, faster on hot paths than traditional microkernels, and easier to develop on than all of them — accepting a smaller driver catalog and weaker workload-specific performance than Linux for the first five years."
Honest, up-to-date status. Oxide9 is in active development — below is exactly what exists right now.
i686-elf-gcc or clang + ld.lld
arm-none-eabi-gcc → UF2 via elf_to_uf2_rp2040.py
Single developer + AI assistance. Full timeline ~23 months. Minimum viable product (skip unikernel + adoption kit) ~18 months.
Certification path planned for Milestone M9. Oxide9's small TCB and formal governance are designed from day one for regulated industries.
What you can run today. These commands work against the M1 bootstrap build.
py -3 tools/verify_integration.py
make bootstrap-compiler
make check-m0
make server
make embedded
oxidec · tools/check_*.py · build/build.py
Oxide9 is open source. We welcome kernel engineers, language designers, and systems researchers.