Okei OS
Platform

The operating system

What Okei OS is today in our private trees (6 August 2026) — architecture, boot path, and behavior we have verified ourselves. Interactive Bash works for us in QEMU, VirtualBox (public Internet ICMP, guest self-SSH, ~16 s desktop path, and curl okeios.org/helloworld), and a custom browser x86_64 emulator. Through 5 Aug: shared PIC newlib + opt-in PIE bash-dyn, Bash honesty, and okeios-box (103 applets). On 6 Aug: CA-verified HTTPS (curl + wget, no -k), Dropbear scp put/get + session-close, freestanding git porcelain, live ssh -X x11-req Success (protocol smoke — not headed PRESENT), Vim/PTY/tmux, a full title-bar close campaign, image PPM+BMP Open/Save (PNG N/A), okeiwin unit-size caps, and QEMU-proven click-paths across shipped desktop apps. Product /bin/bash stays static. Nothing is public yet; we are optimistic about an open release soon. Future categories are on Horizon.

Pre-alpha · private. Facts here reflect committed source and task notes plus what we test in QEMU, VirtualBox, and, for the web path, a live Multiboot2 boot to bash-5.2# on machines we control. This is not a public download or hosted demo. Gaps are stated explicitly so prototypes are not mistaken for finished product.
Status · 6 August 2026

HTTPS, scp, git, full desktop click-paths

  • HTTPS / scp: CA-verified HTTPS via curl + wget (no -k); Dropbear scp put/get + session-close; product /bin/ssh stays Dropbear dbclient (KEEP); OpenSSH client for smokes; live ssh -X x11-req Success (protocol path — headed PRESENT still open)
  • git: freestanding Multiboot porcelain — guest add/commit/status/diff/log
  • Critical programs: Vim open→insert→save→quit; PTY soak + Multiboot tmux
  • Okei Desktop: full title-bar close→process-exit campaign; Image Editor/Viewer PPM+BMP Open/Save (PNG honest N/A); QEMU click-paths (File Manager nav, Calculator, Chess move, Solitaire New/Restart, Task Manager Kill, Calendar, Theme Manager, Network Refresh, Asteroids, Font Viewer, Settings DateTime)
  • Unit-size: okeiwin apps soft ~600 lines; host library TUs ≤400 with keep-green size gate
  • B2b: PIE bash-dyn close-out; product /bin/bash still static
  • Scale: ~434k first-party LOC (433,705) · 4,210 unit tests · 2,827 files · 102 syscalls · ~1,312 commits since 11 Jul
Earlier · 5 August 2026

Shared libc, bash-dyn, Bash honesty, GNU_HASH

  • B2b shared newlib: PIC libc-newlib.so / libm-newlib.so; opt-in pack as /lib/libc.so with bin/bash-dyn (guest B2B_DYN_BASH_OK + redirect smoke)
  • Loader: PLT/GOT, multi-DT_NEEDED, SO-hole fill, DT_GNU_HASH bucket lookup; product /bin/bash remains statically linked
  • Bash honesty: real sleep, getppid, alarm; honest ttyname/sigprocmask/_isatty; getcwd via int $0x80
  • okeios-box: 103 applets; guest smoke 192/192 (product GNU /bin/ls kept)
  • Scale then: ~412k first-party LOC · 4,139 unit tests · 101 syscalls · ~1,145 commits since 11 Jul
Earlier · 4 August 2026

Multicall, terminal events, sparse root, USB HID

  • okeios-box (B2a): then 58 small coreutils applets (later expanded — see 5 Aug); guest smoke 100+ checks
  • Terminal: permanent stability suite — FG_EXIT on all zombie paths, single submit-order owner, one pure finish predicate
  • Storage: sparse demand Ext4 root + demand mmap for large flats; gzip Multiboot filesystem module; NVMe root e2e from earlier
  • USB/net: xHCI HID software path through live keyboard markers; product DNS + dig smoke
  • Scale then: ~397k first-party LOC · 4,060 unit tests · 99 syscalls · ~1,094 commits since 11 Jul
Earlier · 1 August 2026

Stability, FHS tools, NVMe root

  • Bash: multi-loop ls|nl|tail pipeline gate (8×) green; execve stack smash + freelist/poison class closed
  • SSH: host suite 7/7; self-SSH product PATH; scheduler ready-queue scrub; OpenSSH freestanding client binary for X11 path
  • Ports: GNU find, bc, kill; product smoke for grep/ps; Dropbear scp; FHS PATH + root declutter + host keys under /etc/dropbear
  • Storage/memory: NVMe write gate + root-from-nvme0n1p1 e2e; RO text COW on fork
  • Scale then: ~366k first-party LOC · 3,837 unit tests · 99 syscalls
Earlier milestone · 28 July 2026

VirtualBox desktop — curl okeios.org/helloworld

Lab capture on the headed VirtualBox product path: Okei Desktop running, graphical Terminal open, and userspace curl fetching live content from this website.

VirtualBox Okei Desktop: Terminal after curl okeios.org/helloworld with Hello World! and Okei ASCII art
Lab capture: bash$ curl okeios.org/helloworldHello World! plus Okei hand ASCII art. Captured 28 Jul 2026.
  • Path: Multiboot2 ISO → kernel → Ext4 → Okei Desktop → Terminal → /bin/curl → public DNS + HTTP GET of okeios.org/helloworld
  • Proves: userspace HTTP client over real Internet from a headed VirtualBox guest — beyond ICMP and loopback self-SSH
  • Stack: freestanding curl 8.5.0; in-kernel TCP/IP + DNS; e1000 under VBox; late-July mbedTLS/HTTPS QEMU gates (featured visual is plain HTTP)
  • Metrics then: 95 syscalls; 2,075 first-party files; 341,862 LOC; 3,588 unit tests. 6 Aug: 102 syscalls; 2,827 files; 433,705 LOC (~434k); 4,210 unit tests
  • Not claimed: public download, full web browser, Wi‑Fi, production desktop network manager
Earlier milestone · 27 July 2026

Self-SSH, fast VirtualBox desktop, strace, NVMe

Lab work after the 23 Jul public Internet ping closed a deeper slice of the product path:

  • Guest self-SSH: dbclient → local Dropbear on loopback reaches shell (SSH_SELF_OK) — full TCP connect/KEX/auth, not only ICMP. Residual: graphical Terminal outbound SSH to a remote host.
  • Boot timing (VBox GUI lab, 26 Jul): VM start → bash ~12 s, desktop ~14 s, Terminal ~16 s (was ~66 s on the same path before quiet boot / slim root / present-order work).
  • Debugging: SYS_PTRACE (entry/exit stops, GETREGSET, TRACESYSGOOD) + ported upstream strace 6.9.
  • Storage: real PCIe NVMe driver plus ATA/AHCI transfer batching; 93 syscall handlers at that snapshot (95 as of 28 Jul).
  • Tests: 3,568 host unit-test definitions via scripts/marketing_metrics.sh (was 2,885 on 23 Jul; 3,588 on 28 Jul).
Earlier milestone · 23 July 2026

VirtualBox — Bash boot and public Internet ping

On 23 July 2026 we captured a live Oracle VirtualBox guest (product profile: VBoxVGA, e1000, ≥512 MiB RAM) reaching interactive bash-5.2# and successfully running ping google.com with an ICMP reply from a public address. That is the product networking claim: not only NAT gateway smokes, but guest-initiated reachability onto the real Internet through the in-kernel stack and userspace tools.

VirtualBox running Okei OS: bash-5.2# after ping google.com with 64-byte ICMP reply from 142.250.217.142
Lab capture: bash-5.2# ping google.com64 bytes from 142.250.217.142: icmp_seq=1. Dropbear autostart and AC97 init visible above the prompt.
  • Boot: Multiboot2 live ISO → kernel → Ext4 module → /bin/bash
  • NIC: Intel PRO/1000 (e1000) under VirtualBox; DHCP/static NAT or bridged as configured
  • Stack: in-kernel ARP/IP/ICMP/UDP/TCP + DNS path; userspace /bin/ping
  • Related gates: bridged host ping + Dropbear SSH login; VBox IDE and SATA/AHCI installed-disk cold boot; USB HID/MSC product residuals
  • Not claimed: public download, Wi‑Fi, TLS-only transport, production desktop network manager
Earlier milestone · 11 July 2026

Browser x86_64 emulator — CLI Bash verified

The sibling okeios-web project (also still private) is a from-scratch browser emulator for the same guest-visible machine model as our QEMU docs — not v86 (32-bit only), not QEMU compiled to WASM. On 11 July 2026 we successfully ran the real Okei Multiboot2 kernel through paging, scheduler, Ext4 module mount, and execve /bin/bash to an interactive bash-5.2# prompt on the linear VBE console.

Okei OS Web x86_64: console at bash-5.2# with serial log of Ext4 mount and bash for-loop 0..10
Private lab capture: console prompt bash-5.2#; serial shows Ext4 in-place mount and shell output for for i in {0..10}; do echo $i; done.
okeios-web status snapshot
AreaState
ISO / ELF / Multiboot2 loadDone
PC devices (UART, VGA, IDE, PS/2, PCI, PIC, PIT, RTC, FW_CFG)Done
Canvas + serial UI + pointer-lock mouseDone
Kernel → memory_init → paging_initDone (paging assist: seconds to virtual memory)
Scheduler, Ext4, VFS, linear VBE consoleDone
Interactive bash (keyboard, simple commands, brace expand)Done
WASM shared-memory RAM + paging assistOn by default (?wasm=0 / ?pagingAssist=0 to disable)
Okei Desktop autostart in web guestPartial — CLI prompt is the verified default win
Full x86_64 interpreter in C/WASMNext (Phase 2b) — TypeScript CPU is the opcode path today
  • MVP profile: 512 MiB RAM, smp=1, 1920×1080×32 LFB, ISO + IDE ext4, PS/2, COM1; network disabled; audio stubbed
  • Typical wall time to prompt: ~1–3 minutes at ~13–14M steps/s in Chromium (billions of interpreter steps through bash init)
  • Our boot flow (private trees): make iso then in okeios-web pnpm sync-artifacts && pnpm dev (UI title: Okei OS Web x86_64) — not a public service
  • Architecture: TypeScript browser UI → VM (JS/TS x86_64 CPU + 512 MiB RAM + devices) → Multiboot2 handoff at entry32.S
Architecture

Layers as built

Okei OS is a monolithic x86_64 kernel — VFS, scheduler, network stack, and drivers run in ring 0. Userspace is static ELF: Bash, Vim, Okei Desktop binaries, coreutils, and diagnostics.

Okei OS software layers
LayerWhat it does
BootGRUB / Multiboot2 → kernel (~247 KiB); same handoff in QEMU and okeios-web
KernelScheduling, memory, syscalls, VFS, TCP/IP, console, framebuffer, PTY, PCI
Filesystemext4 root image; tmpfs scratch space
NetworkCustom in-kernel stack — ARP, IP, TCP, UDP, DHCP, DNS, socket API; QEMU TCP client/loopback; VirtualBox NAT/bridged path including public Internet ICMP (23 Jul 2026), host→guest Dropbear SSH, guest self-SSH (26–27 Jul), and userspace HTTP curl okeios.org/helloworld (28 Jul); web MVP leaves NIC off
UserspaceBash primary shell; upstream ports (Bash, Vim, coreutils, curl, Dropbear, strace) over hand-rolled substitutes
DesktopOkei Desktop display server and desktop shell (QEMU-primary; VirtualBox path ~16 s to Terminal in lab; web partial)
Install / packagingMBR/GPT partition-root paths, BIOS/UEFI software gates, hybrid ISO media, safe USB writer, okeios-pkg repo verify, and signed HTTP package fetch smoke
AArch64QEMU virt path reaches Bash with rootfs, pipes, scripts, stdin inject, and phase-1 GNU coreutils; Pi 5 board hardware gates remain open
Boot & runtime

From power-on to shell

  • Loader path: Multiboot2 info + kernel ELF (GRUB under QEMU; ISO9660 + Multiboot2 builder in the web emulator)
  • Kernel brings up paging, VFS, network stack (when enabled), and mounts the root filesystem
  • GNU Bash starts as the primary interactive shell — we have verified this under QEMU and under okeios-web
  • Okei Desktop can autostart the display server and desktop on login (our QEMU path mature; web still partial)
  • Default display: 1080p via /config/display.conf; guest desktop autostarts on login in our QEMU runs
  • Default QEMU setup we use: user networking; 512 MiB RAM for full desktop; slim profiles for lower-RAM iteration
Kernel highlights

Ring 0 capabilities

Scheduler

Wait/Signal tasks with timer preemption; SMP up to 255 vCPUs (QEMU auto-detect).

Memory

4-level AMD64 paging; per-process page tables; physical allocator.

Syscalls

95 handlers: files, processes, mmap, signals, poll, PTY, sockets, IPC mailboxes, ptrace, and filesystem helpers.

IPC

ipc_send/ipc_recv with 32 KiB frames powers Okei Desktop clients; capability isolation remains incomplete.

Userspace today

What runs on a typical image

Userspace program status
AreaStatus
GNU Bash 5.2Primary shell; line editing limited
GNU coreutils75 tools ported and packaged
Vim 9.2Interactive edit/save smoke verified under the PTY path; still pre-alpha polish
Dropbear SSHPassword login, pubkey path, bridged VirtualBox reachability, non-interactive teardown, and guest self-SSH (dbclient→local Dropbear) work in current gates; Terminal outbound to remote host residual
Userspace pingVirtualBox guest ping of public Internet host verified 23 Jul 2026 (google.com ICMP reply)
Userspace curlcurl 8.5.0; VirtualBox desktop curl okeios.org/helloworld (HTTP) verified 28 Jul 2026; HTTPS via mbedTLS in QEMU gates
strace / ptraceUpstream strace 6.9 on SYS_PTRACE (entry/exit, GETREGSET, TRACESYSGOOD) — late Jul 2026
Okei Desktop (21 apps)Registered in apps.conf — Terminal, Notepad, Calc, Chess (AI + rules), Solitaire, Asteroids, File Manager, Settings, graphical Login/greeter, savers; pre-alpha polish
Graphics demosFramebuffer tests and raycaster bring-up
Okei Desktop

Desktop layer (pre-alpha)

Okei Desktop is Okei OS’s windowing stack — not X11, not Wayland. A display server owns compositing; applications draw into granted surfaces over IPC. Okei Desktop v1 landed June 2026 for our team (epic closed; our integration tests green) — not a public app store release.

  • Display server (disp-server) — compositor, input routing, window management, 1080p framebuffer
  • Desktop shell (sw-desktop) — panel with clock, Okei OS Start menu, desktop icons with word-wrapped labels
  • 21 registered apps in /etc/okeiwin/apps.conf including Terminal, Chess, Settings, Theme Manager, and Login
  • Chess (sw-chess-gui) — rules engine, AI opponent, drag-and-drop, check/checkmate, 64×64 Staunton glyphs
  • Terminal — 8×16 monospaced font path with dynamic cols/rows on resize so maximize fills a full page of text
  • Solitaire and Asteroids — pre-alpha games with host unit tests and QEMU markers (OKEIWIN_SOLITAIRE_OK, OKEIWIN_ASTEROIDS_OK); Solitaire maximize paint without black voids
  • Screen savers (starfield, fish); Settings with timezone and settimeofday
  • Jul 2026 stability work: interactive win.sh terminal path, title-bar drag reliability, WM maximize/restore, close repaint/present policy, terminal scroller/resize stability, Notepad Open/Exit/F5 fixes, cooperative present scheduling for 60 fps clients, wallpaper/present boot fixes, VirtualBox desktop boot cuts (~16 s to Terminal in lab)
  • Host C cross-toolchain hello gate (make test-toolchain-hello)
  • We verify in QEMU via run_okeiwin_tests.sh and agent debug scripts

Longer-term Aether protocol work targets network-transparent remote surfaces — research only, not shipped. See Horizon.

Known gaps

What is not done

  • Public availability — sources, ISO, and web emulator are private; open release is planned soon but not out yet
  • Physical laptop install/boot evidence is still pending; QEMU/OVMF and VirtualBox software proxies do not close that hardware gate
  • Raspberry Pi 5 board serial boot, microSD root, Ethernet, and HDMI evidence are still pending; AArch64 virt and soft drivers do not close board gates
  • IPC capabilities delivering real cross-process isolation
  • Multi-user security model and capability enforcement are incomplete
  • No web browser or office suite on the image; package manager is not a mature public package ecosystem
  • GUI apps below alpha feature bars (title-close + image PPM/BMP gates ≠ finished everyday UX); sustained 60 fps games need KVM for smooth QEMU play
  • Web emulator: interactive bash done in our lab; Okei Desktop autostart and full C/WASM opcode core still open
  • Okei Desktop Terminal focus and paint polish under VirtualBox continues (CLI + headed Terminal both used; residual UX)
  • Wi‑Fi and a production desktop network manager are not product claims; HTTP curl to the public web is verified; CA-verified HTTPS (curl/wget) is QEMU-proven — not a finished desktop net UI
  • Shared libc + PIE bash-dyn landed (B2b) as opt-in; product /bin/bash still static; default dyn product shell still open
  • ssh -X x11-req protocol smoke done (Success); headed remote X apps / PRESENT still open
Scale

Codebase snapshot

~1312
commits since 11 Jul
2827
first-party files
434k
lines of code
4210
host unit tests tracked
103
multicall applets
102
system calls

Metrics use the same source scope as scripts/marketing_metrics.sh (6 Aug 2026): kernel, boot, userspace, tests, scripts, GRUB, and image config, excluding third-party ports and toolchains. ~1,312 commits since the 11 Jul web-bash snapshot (~401 since 1 Aug; ~175 since 5 Aug; ~148 today). Prior: 1,369 / 292k / 2,885 (23 Jul) → 2,075 / 342k / 3,588 (28 Jul) → 2,228 / 366k / 3,837 (1 Aug) → 2,450 / 397k / 4,060 (4 Aug) → 2,598 / 412k / 4,139 (5 Aug) → 2,827 / 433,705 (~434k) / 4,210 now. Syscalls 89 → 95 → 99 → 101 → 102. 5 Aug→6 Aug: about +22k LOC, +229 files, +71 unit-test definitions — HTTPS/scp, git porcelain, desktop click-paths. Desktop still has 21 registered apps. Extended facts: llms-full.txt.