ROADMAP
// WHERE uBixOS IS GOING
🔄 IN PROGRESS
Real-Hardware ARM — Raspberry Pi 3 (BCM2837) IN PROGRESS

uBixOS boots to the desktop on ARM64 under QEMU — the next frontier is real silicon. The Raspberry Pi 3 Model B is the primary target (board in hand, the best-documented bare-metal arm64 platform): the PL011 UART driver already ported from QEMU virt is reused directly. New work is a from-scratch BCM2837 interrupt controller, spin-table SMP start, and the RAM-at-0x0 link via the higher-half migration. Orange Pi Zero 2W and Pi 4/400 are secondary targets. A bmake image-rpi3 microSD target is already wired.

True SMP — Multi-Core Scheduling IN PROGRESS

Secondary CPU cores already boot and run 64-bit kernel code (opt-in) on aarch64 and x86_64, and per-task FPU/SIMD state + an SMP-safe scheduler dispatch have landed. Remaining for cores to actively pull from the run queue under load: cross-CPU TLB shootdown and the last run-queue-locking hardening.

Higher-Half Kernel & Unified Physmap IN PROGRESS

x86_64 already runs at the standard amd64 higher-half layout with a direct physmap. Bringing aarch64 fully onto the same model (kernel at a high TTBR1 VA + a physmap whose base follows the board's RAM base) is what makes real boards like the Pi 3 — with RAM at 0x0 — a config change instead of a fork.

⏳ PLANNED
UEFI Boot PLANNED

A native UEFI application loader for x86_64, alongside the ARM firmware boot paths. Required for booting on modern PC hardware without legacy BIOS support.

Network Package Delivery PLANNED

With BSD sockets, DHCP, wget, and TLS (httpsget / BearSSL) all working, the path is open to fetching and installing software over the network — a simple package format served over HTTPS, plus an SSH client.

Clang Self-Hosting (Stage 0 → Stage 2) PLANNED

Three-stage Clang bootstrap: the host cross-compiles a Clang that runs on uBixOS (Stage 0), uBixOS uses it to compile Clang from source (Stage 1), Stage 1 compiles again reproducibly (Stage 2). After Stage 2, the cross-compiler is never needed for Clang again. Apache 2.0 — compatible with BSD, unlike GCC GPLv3.

On-Disk Filesystem — UbixFS as default root PLANNED

Promote the native UbixFS pool to the default 64-bit root filesystem across all arches, plus real SD/EMMC and USB mass-storage drivers on hardware — the storage stack the ARM boards need beyond the firmware FAT boot partition.

sigaltstack / SA_ONSTACK PLANNED

Alternate signal stack for handlers that need isolated stack space — required for stack-overflow detection (SIGSEGV from a stack guard page). Also: full ucontext_t population for SA_SIGINFO handlers.

✅ COMPLETED

A selection of the major milestones already shipped in uBixOS.

64-bit AArch64 (ARM64) port — boots to desktop
64-bit x86_64 port — full desktop parity
Portable MI/MD kernel (cross-arch split)
NetSurf web browser (all 3 arches)
BSD sockets + virtio-net + DHCP + DNS
wget + httpsget (BearSSL TLS 1.2)
Kernel ChaCha20 CSPRNG + getrandom(2)
PBKDF2-SHA256 hashed passwords
NetSurf JavaScript (Duktape engine)
musl pthreads + futex + per-thread TLS
SMP application-processor bring-up (opt-in)
ELF64 loader + ld-musl dynamic linking
Higher-half kernel + physmap (x86_64)
Per-task FPU/SIMD context save
File-backed mmap
O(1) priority bitmap scheduler (3 phases)
POSIX signals — phases 1–5 (SA_SIGINFO, SA_RESTART)
COW VMM + RB-tree VMA lookup (O(log n))
Demand-zero anonymous mmap
Swap daemon + clock-algorithm eviction
musl libc 1.2.5 port
ELF dynamic linker (PLT/GOT, RELA)
tcsh 6.24.16 shell
USB UHCI — HID keyboard + mass storage
AC97 audio codec + DMA playback
Views compositor (C++ rewrite)
DOOM — windowed and fullscreen
Tessera (Tetris clone in Views)
procfs (/proc/<pid>/status, maps, mounts)
FAT16/FAT32 VFS + LFN
IDE (ATA) + DMA driver
MPI inter-process messaging
Process groups + tcsetpgrp
ZOMBIE state + SIGCHLD + wait4
TTY line discipline (canonical + raw)
libc++ 18.1.8 subset (STL containers)
POSIX ed line editor
macOS cross-build (Homebrew + QEMU)
ubistry hierarchical typed registry
Themeable desktop + per-user accent
macOS-style Settings app
lwIP networking — DHCP + static
busybox 1.36.1 userland + vi
objgfx PNG support (stb_image)