Okei OS

Okei OS

A modern operating system built from the ground up. We boot it in QEMU, VirtualBox, and a custom browser x86_64 emulator — real Multiboot2 kernel, Ext4 root, interactive GNU Bash, and Okei Desktop v1. Not a finished product, and not public yet; we are optimistic about an open release soon.

~434k first-party LOC (6 Aug) HTTPS CA-verify scp + git porcelain Desktop click-paths Title-close + PPM/BMP Public release soon
Status snapshot · 6 August 2026

HTTPS, scp, git, full desktop click-paths

A full software day after the 5 August shared-libc / Bash-honesty slice. The private tree closed CA-verified HTTPS (curl + wget without insecure flags), Dropbear scp put/get with clean session close, freestanding git porcelain (add/commit/status/diff/log), live ssh -X x11-req accept smoke (protocol path — not headed PRESENT), Vim/PTY/tmux, a full title-bar close campaign, image PPM+BMP Open/Save, and QEMU-proven click-paths across shipped desktop apps (File Manager nav, Calculator, Chess move, Solitaire New/Restart, Task Manager Kill, Calendar, Theme Manager, Network Refresh, Asteroids, Font Viewer, Settings DateTime). B2b finished through PIE bash-dyn — product /bin/bash still static. First-party footprint: about 434k lines, 4,210 host unit-test definitions, 102 syscalls (~1,312 commits since the 11 Jul web-bash snapshot; ~175 since 5 Aug; ~148 today).

Net / HTTPS / scp

Packed CA bundle drives real verify for curl and wget. Dropbear scp put/get + session-close green in QEMU. Product /bin/ssh stays Dropbear dbclient (documented KEEP); OpenSSH client binary remains for smokes. Live ssh -X proves x11-req Success — headed remote X apps still open.

Git + critical programs

Freestanding Multiboot git through local porcelain including status/diff/log. Vim edit round-trip, PTY soak with Multiboot tmux, and Mandelbrot timed guest keep-green sit beside the net gates.

Desktop click-paths

Beyond title-close and image PPM/BMP: File Manager directory nav, Calculator arith, Chess e2–e4 selftest, Solitaire New/Restart, Task Manager Kill, Calendar month nav, Theme Apply/Save, Network Refresh, Asteroids start/fire, Font select, Settings DateTime — each with host selftest + QEMU markers. Pre-alpha UX remains; contracts are test-backed.

Still honest gaps

Physical laptop / Pi 5 still need human hardware. Headed VirtualBox rebench needs /dev/vboxdrv. Headed Terminal remote X and shipping dyn as the product shell remain open. Native on-device Grok CLI not claimed. Not a public download.

Codebase growth (first-party)

Same scope as scripts/marketing_metrics.sh:

  • 6 Aug 2026: 2,827 files · 433,705 LOC (~434k) · 4,210 unit tests · 102 syscalls
  • 5 Aug: 2,598 · 412k · 4,139 · 101
  • 4 Aug: 2,450 · 397k · 4,060 · 99
  • 1 Aug: 2,228 · 366k · 3,837 · 99
  • 28 Jul: 2,075 · 342k · 3,588 · 95
  • 23 Jul: 1,369 · 292k · 2,885 · 89

Since the 11 Jul web-bash site snapshot: about 1,312 commits (~401 since 1 Aug; ~175 since 5 Aug; ~148 today). From 5 Aug → 6 Aug: about +22k LOC, +229 files, +71 host unit-test definitions — net/HTTPS, git, desktop click-paths — not vendored third-party trees.

What landed just before

5 Aug closed shared PIC newlib, opt-in bash-dyn, DT_GNU_HASH, and Bash honesty. 4 Aug closed terminal stability, sparse root, xHCI HID, and okeios-box multicall (103 applets). Earlier 6 Aug closed title-close + image PPM/BMP + unit-size caps before the evening click-path / HTTPS slice. See earlier snapshots below.

Earlier snapshot · 5 August 2026

Shared libc, dyn bash, Bash honesty, GNU_HASH

One day after the 4 August multicall / terminal / sparse-root slice, the private tree closed the core B2b dynamic-loader work: real PIC newlib as libc-newlib.so, opt-in bash-dyn (INTERP + DT_NEEDED, guest B2B_DYN_BASH_OK + redirect smoke), SO-hole fill, and DT_GNU_HASH bucket lookup — plus a Bash honesty pass (real sleep/getppid/alarm, honest ttyname/sigprocmask/_isatty, getcwd on int $0x80). Product /bin/bash stayed statically linked. Footprint then: about 412k lines, 4,139 host unit-test definitions. PIE bash-dyn and the rest of B2b closed into 6 Aug.

Shared newlib + bash-dyn (B2b)

Bare-metal newlib does not emit shared libs via configure alone — PIC archives are linked to ET_DYN with forced -Wl,-shared, plus okeios syscall stubs. Opt-in pack ships bin/bash-dyn and full newlib as /lib/libc.so (staged freestanding stays the hello-dyn default). Guest markers: dyn echo + redirect without Exception 13.

Bash / libc honesty

Compat stubs that lied (instant sleep, always-0 getppid, no-op alarm, console-only ttyname, soft sigprocmask, isatty-as-true-on-error) got real syscalls or honest failure modes, each with structure + QEMU gates.

Loader: GNU_HASH

Dynamic symbol resolve uses DT_GNU_HASH buckets/chains (pure helpers + unit tests) while keeping multi-DT_NEEDED and PLT smokes green. Linear SYMTAB remains a fallback, not the only path.

Gaps then (updated 6 Aug)

Physical laptop / Pi 5 and full Terminal ssh -X stayed open. PIE bash-dyn and default dyn product shell were still open on 5 Aug — PIE landed next day; product shell remains static.

Earlier snapshot · 4 August 2026

Payload multicall, terminal events, sparse root, USB HID

Three dense engineering days after the 1 August stability/FHS snapshot: the private tree closed a permanent terminal stability suite (event-driven FG_EXIT, one finish predicate, single HEAVY owner), turned on sparse demand Ext4 root with demand mmap, finished the xHCI HID software path through live keyboard markers, shipped product DNS, cut Multiboot ISO size with a gzip filesystem module, and built okeios-box — a busybox-style multicall binary (then 58 applets; guest smoke past 100 checks; later expanded — see 5 Aug). Footprint then: about 397k lines with 4,060 host unit-test definitions.

okeios-box multicall (B2a)

One static binary + product FS symlinks for tiny coreutils: true/false through echo/printf (wc, cut, tr, sort, uniq, head/tail, base64, cksum, mkdir/touch, …). Guest smoke later reached 192/192 with about 103 applets (product GNU /bin/ls kept). Cuts payload bloat versus one newlib-linked ELF per tool — shared-libc dynamic loader (B2b) landed 5 Aug.

Terminal: events over timers

Structural fix after a review found competing “command finished” predicates and wrong submit order. FG_EXIT on all zombie death paths; term_submit_cmd owns begin/flush before write; one pure finish helper; permanent QEMU stability suite. Free-typing present regressions covered as typefix gates during the time-ls campaign.

Sparse root + demand mmap

Ext4 block-group tables and large flats no longer force full eager RAM for the root image. Sparse demand page bank + MAP_UNINITIALIZED surfaces; low-RAM AHCI stress (384 MiB) gated. Residual: not every installed-root path is size-independent yet.

USB xHCI HID + platform

Live xHCI software residual through Configure Endpoint, interrupt-IN, SET_IDLE, and boot keyboard report feed (KBD_OK). Product DNS via /etc/resolv.conf + dig smoke. SMP dual NORMAL runqueues measure-first (flag-on green; product default still off). Physical laptop / Pi 5 still need human hardware.

Codebase growth (first-party)

Same scope as scripts/marketing_metrics.sh (kernel, boot, userspace, tests, scripts, GRUB, image config — not third-party port trees):

  • 4 Aug 2026: 2,450 files · 397,233 LOC (~397k) · 4,060 unit tests · 99 syscalls
  • 1 Aug: 2,228 · 366k · 3,837 · 99
  • 28 Jul: 2,075 · 342k · 3,588 · 95
  • 23 Jul: 1,369 · 292k · 2,885 · 89

Since the 11 Jul web-bash site snapshot: about 1,094 commits (~366 since 28 Jul; ~183 since 1 Aug). From 1 Aug → 4 Aug alone: about +31k LOC, +222 files, +223 host unit-test definitions.

Still honest gaps

Full Terminal ssh -X / remote X apps not done. Everyday shell UX still has residual polish. Physical laptop and Pi 5 board gates remain open. Shared libc / dyn bash landed later (5 Aug); product shell still static. Not a public download.

Earlier snapshot · 1 August 2026

Stability, FHS layout, and a broader userspace toolkit

Four days after the VirtualBox curl okeios.org/helloworld capture, late July and 1 August focused on reliability and product-shaped tools: multi-command Bash pipelines that survive repeated ls|nl|tail, freelist/execve stack and scheduler hardening, FHS-style PATH and root declutter, upstream find, bc, kill, ps, grep, scp, NVMe root e2e, and RO text COW on fork. Footprint then: about 366k lines with 3,837 host unit-test definitions.

Bash that survives real work

Pipeline stability gate: eight loops of multi-stage pipes with honest markers (no Exception 13/14). Root class fixed: a 64 KiB stack buffer on an 8 KiB task stack during ELF load.

SSH substrate hardened

Host SSH suite 7/7; guest self-SSH on product PATH; freestanding OpenSSH client binary for future ssh -X (X11 forward still in progress).

Tools people expect

Upstream ports (not toys): GNU findutils, bc, coreutils kill, product smoke for grep/ps, Dropbear scp. Default PATH /usr/local/bin:/usr/bin:/bin.

Storage & memory

NVMe write gate + root-from-nvme0n1p1 e2e; fork COW-shares read-only USER text pages. Sparse demand root landed after this snapshot (see 4 Aug).

Earlier milestone · 28 July 2026

VirtualBox desktop curls okeios.org — Hello World!

The product path closed a userspace HTTP loop on the real Internet: under Oracle VirtualBox, Okei Desktop is up, the graphical Terminal is open, and curl okeios.org/helloworld returns the live ASCII greeting from this website — DNS, TCP, and HTTP through the in-kernel stack and a real /bin/curl port. One day after the self-SSH / boot-cut slice, the guest is no longer only pinging or talking to itself.

Oracle VirtualBox window titled okeios [Running]: Okei Desktop with app bar and Terminal; bash$ curl okeios.org/helloworld prints Hello World! and Okei OS ASCII art logo
HTTP from a real VM desktop. VirtualBox guest on Okei Desktop; Terminal at bash$ after curl okeios.org/helloworld prints Hello World! and the Okei hand ASCII art. Captured 28 Jul 2026.

What this proves

Headed VirtualBox path: Multiboot2 ISO → kernel → Ext4 → Okei Desktop → Terminal → userspace curl → public name resolve → TCP to the marketing host → HTTP body printed in-guest. Not loopback, not a host-side fetch.

Stack underneath

In-kernel ARP/IP/UDP/TCP + DNS, e1000 under VBox, freestanding curl 8.5.0 (HTTP path used here), plus the late-July mbedTLS/HTTPS work for CA-verified smokes. The screenshot is the honest product claim: plain HTTP to okeios.org/helloworld.

Honest limits

Private lab capture — not a public appliance. Full browser, Wi‑Fi, and “daily driver” desktop net UI remain out of scope. HTTPS is exercised in QEMU gates; this featured visual is HTTP. Residual polish continues on Terminal focus and VBox UI path.

Same week

Builds on 23 Jul public ICMP and 27 Jul self-SSH / ~16 s desktop. At the 28 Jul capture: syscall table 95; footprint 342k LOC / 3,588 unit tests. By 6 Aug those metrics are 102 / 434k / 4,210 (see status snapshot above).

Earlier milestone · 27 July 2026

Full TCP sessions, ~16s VirtualBox desktop, strace & NVMe

Four days after the public Internet ping, the private tree closed a deeper product slice: guest self-SSH (Dropbear password login over loopback TCP), a VirtualBox GUI desktop path under ~16 s to Terminal (was on the order of a minute), upstream strace 6.9 on a real ptrace syscall path, and a PCIe NVMe block driver. Host unit-test definitions jumped with a pure-helper coverage campaign — quality gates, not just features.

Guest self-SSH

dbclient → local Dropbear on 127.0.0.1:22 reaches shell (SSH_SELF_OK). Proves full userspace TCP beyond ICMP: connect, accept windowing, KEX, auth. Residual: outbound SSH from the graphical Terminal to a remote host still under polish.

~16s to Terminal (VBox)

Lab bench (26 Jul): VM start → bash ~12 s, desktop ~14 s, Terminal marker ~16 s — down from ~66 s on the same product path after quiet boot, slim root module, storage batching, and present-order fixes. Numbers are lab captures, not a public appliance SLA.

strace + NVMe

SYS_PTRACE phase work (entry/exit stops, GETREGSET, TRACESYSGOOD) powers a ported strace 6.9. Storage: real PCIe NVMe alongside ATA/AHCI batch transfers. Syscall table: 93 handlers (was 89).

Test surface

3,568 host unit-test definitions (was 2,885 on 23 Jul) via scripts/marketing_metrics.sh — mostly pure helpers for net, desktop, and kernel contracts. Integration suites still time-boxed; not every gate was re-run for this site edit.

Earlier milestone · 23 July 2026

VirtualBox boots Okei OS — and pings the Internet

We run the same Multiboot2 ISO under Oracle VirtualBox (VBoxVGA, e1000) to an interactive bash-5.2# prompt. From that shell the guest resolved a public name and received an ICMP reply — evidence that the in-kernel TCP/IP stack, DHCP/DNS path, and userspace ping work beyond lab loopback and gateway-only smoke.

Oracle VirtualBox window titled okeios [Running]: dark-blue Okei console shows bash-5.2#, command ping google.com, PING google.com (142.250.217.142) 56 data bytes, and 64 bytes from 142.250.217.142: icmp_seq=1
Real networking from a VM. VirtualBox guest at bash-5.2# after boot (Dropbear autostart visible). Guest command ping google.com prints 64 bytes from 142.250.217.142: icmp_seq=1. Captured 23 Jul 2026.

What this proves

Live ISO boot under VirtualBox to ring-3 Bash; addressing via DHCP/static; DNS resolve of a public name; outbound ICMP to a real Internet host — not only 10.0.2.2 gateway smokes.

Stack underneath

In-kernel ARP/IP/ICMP/UDP/TCP, e1000 (and PCnet) drivers, userspace sockets, /bin/ping, Dropbear on the same product path. Bridged SSH login and IDE/SATA installed-disk boots are separate gates already in the tree.

Honest limits

Private lab capture — not a public appliance download. Wi‑Fi, TLS, and “daily driver” desktop networking remain out of scope. GUI Terminal paint under VBox is still being hardened; the verified product shell here is the CLI.

Platform

What we've built so far

A private make all produces a bootable ISO with kernel, GNU userspace, and Okei Desktop. That image boots under QEMU, VirtualBox (milestones above), and the web x86_64 emulator (bash CLI, 11 Jul 2026). Through July and into 6 August the tree closed install/storage depth, USB HID/MSC and xHCI HID software paths, Dropbear SSH + scp, CA-verified HTTPS (curl/wget), userspace DNS, Bash pipeline + terminal stability suites, FHS PATH/layout, multicall okeios-box (103 applets), shared PIC newlib + opt-in PIE bash-dyn, Bash honesty, freestanding git porcelain, Vim/PTY/tmux, shipped-desktop title-close + click-path gates across the app inventory, image PPM+BMP, and unit-size caps. CLI tools remain the primary product surface; headed remote X and physical hardware gates are still pre-alpha.

The Engine (Kernel)

A monolithic ring-0 core: scheduling, 4-level paging, ext4 VFS, PTY, built-in TCP/IP with socket syscalls, ptrace, and AHCI/NVMe storage. Multiboot2 under QEMU, VirtualBox, and the web emulator.

Real Tools

Upstream ports — GNU Bash 5.2, Vim 9.2, coreutils, grep, sed, find, bc, kill, curl, wget, Dropbear (+ scp), strace 6.9, freestanding OpenSSH client, freestanding git, Multiboot tmux — plus product okeios-box multicall (103 applets) and opt-in PIE bash-dyn against shared newlib. Okei Desktop apps carry title-close + image PPM/BMP + QEMU click-path gates under soft unit-size caps. Product /bin/bash stays static; okeish is fallback only.

Okei Desktop v1

Display server, panel with clock, Start menu, desktop icons, themes, screen savers, and 21 registered apps: Terminal, Notepad, Calculator, Calendar, Chess, Solitaire, Asteroids, Settings, Login, and more.

Quality First

4,210 host unit-test definitions plus QEMU/VirtualBox smoke gates across installer, networking/HTTPS/scp, USB, storage, desktop click-paths/title-close/image, multicall, dyn loader, git, and AArch64 paths. Metrics from scripts/marketing_metrics.sh (6 Aug 2026); not every suite was re-run for this marketing edit.

The technical details

Earlier milestone · 11 July 2026

Okei OS boots in a web x86_64 emulator

We successfully ran the real Okei kernel and userspace in a new browser-based 64-bit emulator (sibling project okeios-web) — not v86 (32-bit only), not QEMU-in-WASM. The same Multiboot2 / Ext4 / execve /bin/bash path reaches an interactive bash-5.2# prompt on the linear VBE console, with keyboard input and simple shell work (including brace/for loops).

Okei OS Web x86_64 emulator UI: linear console shows bash-5.2# prompt after boot; serial pane shows Ext4 mount, execve /bin/bash, and a for-loop printing 0 through 10; toolbar badges Paging assist and WASM RAM are on
Interactive Bash in the browser. Guest linear console at bash-5.2#; COM1 serial logs kernel bring-up, Ext4 module mount, and execve '/bin/bash'. A sample loop prints 0–10. UI title: Okei OS Web x86_64. Captured 11 Jul 2026.

What shipped for this path

ISO/ELF/Multiboot2 loaders; PC devices (UART, VGA, IDE, PS/2, PCI, PIC, PIT, RTC, FW_CFG); canvas + serial UI; early kernel through paging/scheduler/Ext4; linear VBE console + interactive bash. WASM guest-RAM assist and paging assist are on by default.

Compatibility profile

512 MiB guest RAM, 1 vCPU, 1920×1080×32 linear framebuffer, ISO + IDE ext4 image, PS/2 keyboard/mouse, COM1 serial. Network deliberately disabled for this MVP; audio stubbed.

Honest limits

Typical wall time to prompt is on the order of 1–3 minutes in Chromium (~13–14M steps/s). Okei Desktop autostart in the web guest is still partial; CLI bash is the verified win. Full x86_64 opcode execution in C/WASM is the next emulator phase (TypeScript CPU remains the opcode path today).

How we boot it

In our private trees: make iso, then in okeios-web pnpm sync-artifacts / pnpm dev → Boot. Deliberately avoids v86 and QEMU-in-WASM. Those repos are not published yet; we expect to open them with the public release.

June 2026 · still representative in July 2026

Okei Desktop in QEMU

Terminal, Chess, and the desktop panel running together — captured from our private make all image booted under QEMU.

Okei OS desktop in QEMU: blue wallpaper with OK logo, application bar across the top, Terminal window listing files, Chess board with white pieces on the bottom and status text Your move (drag piece), and Okei OS panel with clock at the bottom
Okei Desktop v1 — panel, app launcher, graphical Terminal, and Chess with drag-and-drop and an AI opponent. Screenshot 26 Jun 2026.
Honest status. Okei OS is private pre-alpha engineering — not a download, not open source yet. What “works” is what we verify ourselves with build scripts, QEMU gates, VirtualBox boots, and (for the web path) a live emulator console. Desktop v1, browser bash, VirtualBox Internet ping, guest self-SSH, the July networking slices, the 1–5 Aug stability/multicall/shared-libc campaign, and the 6 Aug HTTPS/scp/git + desktop click-path slice are our milestones; headed remote X and web desktop remain prototype-quality. We are optimistic about a public open-source release soon; no hard calendar date.
~1312
commits since 11 Jul milestone
2827
first-party files
434k
lines of code
4210
host unit tests tracked
103
multicall applets
102
system calls

Growth (first-party, scripts/marketing_metrics.sh): ~1,312 commits since the 11 Jul web-bash site snapshot (~401 since 1 Aug; ~175 since 5 Aug; ~148 today). Footprint: 1,369 files / 292k LOC / 2,885 unit tests (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 on 6 Aug 2026. Syscalls 89 → 95 → 99 → 101 → 102. From 5 Aug → 6 Aug: about +22k LOC, +229 files, +71 unit-test definitions — HTTPS/scp, git porcelain, desktop click-paths — not vendored third-party trees. Desktop still has 21 registered apps.

The Basics

What is an operating system?

Think of an operating system as the brain and nervous system of a computer. It's the essential software that wakes up the hardware, manages memory, talks to your screen and keyboard, and provides a safe, fast environment for applications to run.

Without an OS, a computer is just a quiet box of electronics. Building one from scratch means crafting every detail of how the machine thinks, acts, and responds to you.

Desktop milestone

Okei Desktop v1 — shipped

June 2026 closed the Okei Desktop epic for our team: a usable GUI stack verified end-to-end in QEMU. Production polish continues; this is not beta-quality application software and is not a public product.

  • Panel, Okei OS Start button, desktop icon grid with word-wrapped labels
  • 1080p display default; compositor with streamed wallpaper and IPC blit path
  • Graphical Terminal (sw-term) with PTY — fixed 8×8 font, dynamic cols/rows on resize so maximize fills the page
  • Chess with rules engine, AI opponent, drag-and-drop, check/checkmate detection, and 64×64 Staunton piece glyphs
  • Settings with timezone and settimeofday; theme manager; starfield and fish screen savers
  • Solitaire and Asteroids arcade shells (pre-alpha; QEMU integration markers)
  • Guest autostart via profile.d; session/lock/SAS handoff; serial and graphical greeter paths
Future Vision

Where we are headed

Near-term engineering focuses on an installable pre-GUI release: reproducible build/install, newlib sysroot, Bash as the only interactive shell, real userspace networking, and PTY substrate — then deeper GUI polish. Longer term we are exploring a local-first OS with opinionated packaging and creator tools.

Productivity & Office

A modern web browser, email, notes, and a full suite for documents and spreadsheets.

Creator's Suite

Built-in workflows for page design, image and video editing, and CAD tools for makers.

On-Device AI

Local intelligence running directly on the OS without cloud dependency, acting as a true system agent.

Aether Windowing

A capability-secure protocol for network-transparent remote surfaces—seamless locally or over high-latency links.

Explore the full Horizon map

FAQ

Common questions

What is Okei OS?

A from-scratch 64-bit OS with a custom kernel, GNU Bash, upstream utility ports (including curl), and Okei Desktop v1. Private pre-alpha engineering — we boot it in QEMU, VirtualBox, and a browser x86_64 emulator.

Can I download or run it?

Not yet. Nothing is published for outsiders. We run QEMU and the sibling web emulator only in our private trees. Native hardware install is not ready either. A public open-source release is a near-term goal.

Is there a web browser or office suite?

No. Those categories are on the Horizon — direction only, not built today.

Where is the technical truth?

The OS page has architecture, boot path, userspace ports, and known gaps without marketing spin — still describing our private tree, not a public binary.

Open source · soon

Availability

Okei OS is not public yet — no open repository, no downloadable ISO, no hosted emulator for visitors. We are actively preparing an open-source release and are optimistic it can go public soon, once the build, test, and contribution story is solid enough to invite others in. We will not invent a ship date here.