uBixOS is a monolithic 64-bit kernel that runs on ARM64 (aarch64) — the primary architecture — and x86_64. The arch-neutral scheduler uses a 32-level priority bitmap, making "find the highest priority runnable task" a single bit-scan. Scheduling is O(1) regardless of how many tasks are sleeping, and the dispatch path is SMP-safe.
uBixOS 3.0 is the 64-bit era. After 20+ years on i386, the kernel and userland were split cleanly into machine-independent code and a thin per-architecture layer, and 32-bit i386 was retired to a legacy branch. One source tree now boots two 64-bit CPUs to the same graphical desktop — and real ARM hardware is the next step.
virt, GICv2, generic timer, virtio devicessyscall/sysret, virtio + AC'97ld-musl dynamic linker shared across arches via a handful of MD hooks
The VMM has been overhauled from a flat array of VMAs to a red-black tree,
matching the architecture of FreeBSD's vm_map and Linux's
mm_struct. Every page fault, mmap, and munmap is now O(log n).
uBixOS boots from FAT-formatted disk images and exposes a POSIX-compatible VFS layer. procfs provides runtime process introspection without a separate process.
ps, top, and the shell read process state
directly from the kernel through normal file reads — no extra syscall needed.
uBixOS runs real musl pthreads. pthread_create maps to
the kernel's rfork with the CLONE bits musl needs, a futex
syscall backs every mutex / condvar / semaphore, and each thread carries its own
thread-local storage.
pthread_create / pthread_join / pthread_mutex / pthread_condfutex (WAIT / WAKE / REQUEUE) over the kernel wait-channel primitivethread_exit_unmap (musl's __unmapself)membarrier; CLONE SETTLS / PARENT_SETTID / CHILD_CLEARTID
uBixOS has a real cryptographic stack: BearSSL for TLS, a kernel CSPRNG for
entropy, and PBKDF2-hashed passwords. An https:// fetch validates
the certificate chain, hostname, and expiry against real wall-clock time.
libbearssl.so) — constant-time scalar buildgetrandom(2) / getentropy()authd verifies via constant-time compare; login authenticates over MPIhttpsget and the browser.
uBixOS runs NetSurf, a real web browser, as a native windowed application on all three architectures. It fetches pages over HTTP/HTTPS, lays out and renders HTML/CSS on the Views framebuffer, decodes images, and executes JavaScript.
libhttp + BearSSLThe Intel AC97 audio codec driver uses DMA ring buffers to stream PCM audio without CPU intervention. Doom's music and sound effects play through the same driver.
Views is uBixOS's windowing compositor. It supports overlapping windows, a taskbar with an application launcher, a login screen, and per-pixel alpha blending for window chrome.
uBixOS has a configurable, themeable desktop. The wallpaper, background mode, and accent color are all stored per-user in the registry and applied live by the compositor — no reboot, no config files to hand-edit.
ubistry is uBixOS's system registry — a hierarchical, typed configuration tree that the desktop, theming, start menu, and network stack all read from. The 2004-era flat key/value store was rewritten into a path-addressed tree persisted to disk and served over MPI.
/var/db/ubistry.db (boot load, coalesced flush)ubix_api client lib with per-user override resolutionulog() system log — klog_write → logd → /var/log/messages/views/startmenuviews/desktop/mode is the machine default;
/users/<name>/views/desktop/mode is a per-user override. The
client resolves user-first then falls back — so the daemon stays simple
and every app gets layered config for free.
uBixOS runs the lwIP TCP/IP stack in-kernel over a virtio-net driver, with a real BSD sockets API exposed to userland. It DHCPs at boot, configures via the registry and the Settings Network pane, and drives everything from command-line tools to the NetSurf browser.
socket / connect / bind / listen / accept / send / recvping <hostname> via gethostbyname()wget, httpsget (BearSSL TLS), and nc in the desktop terminalselect / poll over a pty + socket, so interactive net apps wake on keystrokeshttpsget fetches over HTTPS, and NetSurf pulls a page down and renders
it in a window.
musl libc 1.2.5 provides a full POSIX C standard library. A custom ELF dynamic
linker bootstraps shared-library loading at process startup — the same
mechanism Linux uses. Every user account defaults to /bin/tcsh, and a
busybox 1.36.1 userland fills out the command set.
vi for in-system text editingsetenv,
job control (Ctrl-Z / fg), and shell scripts all work
the way a Unix user expects.
Two fully playable games ship with uBixOS. They're not tech demos — they exercise every layer of the stack: scheduler, VMM, VFS, USB input, AC97 sound, and the Views compositor.