ospab.os is a closed, vertically integrated operating system built from scratch in Rust. Its kernel is called AETERNA. The system does not try to be compatible with Linux or Windows: the bootloader, kernel, drivers, network stack, shell, package manager and tools are written together and designed as one whole. It is part of the ospab ecosystem and has native support for the OSTP transport.
Status: research system, mid-redesign. The kernel is moving from a single-address-space monolith to a real microkernel. Ring-3 processes, kernel objects, capabilities and IPC already work; most drivers and the shell still run inside the kernel. See ROADMAP.md for the plan and AUDIT.md for an honest state of the code.
| Area | State |
|---|---|
| Boot | Own UEFI loader ospab-boot (menu, FAT and ISO9660 readers); Limine for the hybrid BIOS/UEFI ISO |
| Install | Full-screen installer: erase a disk, or install alongside Windows and Linux on the existing ESP |
| CPU | GDT/TSS, IDT, APIC timer, preemptive scheduler, per-task kernel stacks, XSAVE (AVX state) |
| Memory | Bitmap frame allocator, 4-level paging, per-process address spaces, NX, SMEP/SMAP |
| Ring 3 | ELF programs on the x86_64-unknown-oos target with the liboos runtime |
| Microkernel | Kernel objects, per-process handle tables with rights, synchronous IPC, notifications |
| Storage | ATA PIO, AHCI, NVMe, virtio-blk; GPT; persistence of the writable filesystem layer |
| Network | e1000, RTL8139/8169, virtio-net, AMD PCnet (VMware vlance), vmxnet3; IPv4, TCP, UDP, DHCP, DNS, NTP, TLS 1.3 client |
| OSTP | Native client: share links, subscriptions, UDP and UoT transports |
| Audio | Intel HDA, AC97, ES1371/ES1373 (VMware), ES1370 |
| Input / video | PS/2 and USB (xHCI) keyboard and mouse, VMware mouse, UEFI framebuffer, VMware SVGA II |
| Host integration | VMware clipboard (Ctrl+V, clip), console input over the serial port |
| Shell | plum: variables, pipes, redirects, control flow, functions, scripts; coreutils; Ctrl+C |
| Packages | tomato with the signed repository tmt.ospab.org; SDK for your own programs |
| Power and time | ACPI power-off and reset; system clock counts from the ospab epoch, 2012-08-09 |
Apart from ring-3 programs, everything above currently runs in ring 0. Moving drivers, the network stack and the console into isolated servers is the next stage of the roadmap.
- Download an ISO from the releases or build one (see below).
- In VMware Workstation create a VM: Other 64-bit, firmware UEFI (Secure Boot off), USB controller USB 3.x. Attach the ISO and boot.
- In the console try
help,tutor,uname -a,tomato -Sy,install.
Full guide: docs/en/getting-started.md.
Requirements: Rust nightly with rust-src; for the ISO also xorriso, mtools and
mkfs.vfat (on Windows, build the ISO from WSL).
./build.sh kernel # kernel only, fast compile check
./build.sh # bootable hybrid ISO in isos/ospab-os-v2-N.iso
./build.sh image # GPT disk image with ospab-boot, no WSL neededThe build number N appears in uname -a. Details: docs/en/building.md.
| Getting started | Running in VMware and QEMU, first steps |
| Building | Toolchain, build targets, smoke test |
| Installation | Installer modes, dual boot, boot instructions |
| Architecture | Boot flow, rings, memory, scheduler, kernel objects |
| Shell and tools | plum, coreutils, keys, clipboard |
| Packages | tomato, the .tmt format, the repository, the SDK |
| Networking and OSTP | Network stack, ip, curl, ostp |
| Hardware | Supported devices and VM settings |
arch/x86_64/ CPU setup, interrupts, TSS, framebuffer, serial, keyboard, mouse, boot protocols
boot/ ospab-boot UEFI loader and its config
core/ scheduler, syscalls, kernel objects, IPC, ELF loader
mm/ frame allocator, page tables, user copies, heap
drivers/ storage, audio, GPU, VMware integration
net/ NIC drivers, the network stack, TLS, OSTP
vfs/ VFS, RamFS, copy-on-write root, disk sync
src/ kernel entry, console, installer, time, shell and coreutils
user/ liboos runtime and built-in ring-3 programs
apps/ SDK workspace for packaged programs
gui/ software UI toolkit (in progress)
tools/ mkimage, tmt packer and repository tools
docs/ documentation in English (docs/en) and Russian (docs/ru)
GNU Affero General Public License v3.0 (AGPL-3.0-only). Bundled fonts in gui/fonts
are under the SIL Open Font License.