OpenOS
A microkernel operating system written in Rust, designed for x86_64 bare metal. Channel/Handle IPC, user-space services, and memory safety.
Built for the future
A microkernel operating system designed with modern principles
Channel/Handle IPC
Capability-based inter-process communication with synchronous rendezvous, Handle transfer, and atomic RPC primitives.
Memory Safety
Rust borrow checker eliminates use-after-free, double-free, and buffer overflow vulnerabilities at compile time.
User-Space Services
Drivers and system services run in Ring 3, isolated from the kernel. Fault containment without kernel crashes.
ELF Loader
Dynamic ELF64 loader with initrd support. Load and execute user-space programs from ramdisk archives.
Zero-Cost Abstractions
Rust monomorphization and zero-cost abstractions mean high-level code compiles to optimal machine instructions.
Bare Metal
Runs directly on x86_64 hardware or QEMU. No underlying OS required - true bare metal performance.
Microkernel design
Minimal kernel with user-space services
Simple by design
User-space programs communicate via Channel IPC
_start:
mov rbx, rdi ; save handle_a
; channel_send(handle_a, msg, len)
mov rdi, rbx
lea rsi, [rel msg]
mov rdx, msg_len
mov rax, 0x02 ; SYS_CHANNEL_SEND
syscall
; process_exit(0)
mov rdi, 0
mov rax, 0x32 ; SYS_PROCESS_EXIT
syscall_start:
mov rbx, rdi ; save handle (end B)
; channel_receive(handle, buf, 256)
mov rdi, rbx
lea rsi, [rel buf]
mov rdx, 256
mov rax, 0x03 ; SYS_CHANNEL_RECEIVE
syscall
; console_write(buf, len)
mov rcx, rax
lea rdi, [rel buf]
mov rsi, rcx
mov rax, 0xF0 ; SYS_CONSOLE_WRITE
syscall
; channel_reply(handle, "OK", 2)
mov rdi, rbx
lea rsi, [rel ok_msg]
mov rdx, 2
mov rax, 0x05 ; SYS_CHANNEL_REPLY
syscall