Scale
- ~625k first-party lines (625,224)
- 5,045 files · 6,431 host unit tests
- 102 syscalls · 103 multicall applets
- 4,176 commits · ~34/day avg · 124 days
A 64-bit operating system built from scratch. We boot it in QEMU, VirtualBox, and a custom browser emulator — Multiboot2 kernel, Ext4, GNU Bash, and Okei Desktop. Pre-alpha and not public yet.
Private tree is a product-shaped OS: Bash, Okei Desktop, real networking, HTTPS/scp/git, and QEMU-proven desktop click-paths. A desktop UI look port restyles the real compositor and apps — paper chrome, Outfit / Source Code Pro, three-finger wallpaper — without replacing Terminal or Notes with a JavaScript mock. On 21 August a headed VirtualBox 1080p capture shows that look with Terminal at bash$. Human side-by-side vs the prototype is still open. Kernel and userspace files over 500 lines were split (H1262–H1310). The house-clean parent stays open (tests and scripts unread as a wave). Host make test-unit still dies on a UHCI library-size gate. On 9 August 2026 we first booted on a physical Raspberry Pi 5 with an HDMI text console. Next product gates are metal: x86 laptop video and Pi 5 UART.
Oversized kernel/userspace split stopped (H1262–H1310). Claimable files over 500 lines in those trees are 0 (font dumps, monocypher, uncommitted Notes skipped). Parent H0 stays split_required. Tests and scripts still unread as a wave. Host unit suite still dies on UHCI library-size — filed as Work now T1–T3.
Tokens, 30/22/42 chrome, paper Notes, black Terminal, search/sound/Start, os-desktop three-finger wallpaper. Featured shot is a 21 Aug VirtualBox 1080p desktop. Human side-by-side vs the prototype is still open.
Physical laptop ISO+video; Pi 5 UART and board userspace; UHCI library-size so make test-unit can finish; headed look sign-off; window-move expose; Start→Calculator present. Not a public download.
A private make all produces a bootable ISO with kernel, GNU userspace, and Okei Desktop. That image boots under QEMU, VirtualBox, and a web x86_64 emulator. Separately, an AArch64 flash image boots on a Raspberry Pi 5 to an HDMI boot console.
bash$. Same guest ISO the lab boots. The 28 Jul curl okeios.org/helloworld capture remains the networking milestone below.
OKEIOS_AARCH64_FB_BOARD_OK and
OKEIOS PI BOARD HDMI CONSOLE.
Kernel EL1 + DTB probe live; virtio absent (expected on board);
userspace still NO_USER until microSD root lands.
Monolithic ring-0 core: scheduling, 4-level paging, Ext4 VFS, PTY, in-kernel TCP/IP, ptrace, AHCI/NVMe. Multiboot2 on QEMU, VirtualBox, and the web emulator.
Upstream ports — GNU Bash 5.2, Vim, coreutils, grep, sed, find, bc, curl, wget, Dropbear (+ scp), strace, freestanding git and OpenSSH client, tmux — plus okeios-box (103 applets) and opt-in PIE bash-dyn. Product /bin/bash stays static.
Display server, 42px panel, Start menu, 22 Start entries (Terminal, Notes, Calculator, Chess, Solitaire, Settings, and more — Login is not a Start app). Title-close and QEMU click-path gates on shipped apps. Default ISO packs those Start binaries when they are present in build/.
6,431 host unit-test definitions plus QEMU/VirtualBox smokes for net, storage, desktop, multicall, git, and SSH. Not every suite is re-run for each site edit. Full make test-unit still dies late on a UHCI library-size gate (three files over 400 lines) — filed as Work now T1–T3.
First-party scope matches scripts/marketing_metrics.sh (21 Aug 2026): kernel, boot, userspace, tests, scripts, GRUB, image config — not vendored third-party trees.
Growth track: 1,369 files / 292k LOC (23 Jul) → 3,033 / ~459k (14 Aug) → 3,491 / 509,590 (15 Aug, first time over half a million) → 3,857 / 546,816 (17 Aug) → 4,727 / 610,468 (20 Aug) → 5,045 / 625,224 now. Syscalls 89 → 102. Late file growth includes leftover host-unit header splits, not a second kernel. Kernel/userspace oversized split closed 21 Aug.
Reverse chronological. Eyebrow dates are capture or land dates from our private trees — not website-publish dates.
The product ISO was rebuilt after the oversized-file split wave and boots headed VirtualBox (VBoxVGA, 768 MiB, 128 MiB VRAM) to the os-desktop three-finger wallpaper, icon column, 42px bar, and Terminal at guest@os:~ / bash$. Kernel and userspace files over 500 lines that were claimable are split (H1262–H1310). Host make test-unit still dies on three UHCI files over the 400-line library cap — that is queued as Work now T1–T3, not claimed green. Human look vs prototype still open.
docs/os-ui prototype baselines remains open.Serial SERVER_OK / DESKTOP_OK / FB_OK / wallpaper / Terminal first present. VBoxVGA, not VBoxSVGA.
Claimable kernel/userspace files over 500 lines (H1262–H1310). Font dumps, monocypher, and the uncommitted Notes merge were skipped.
Physical x86 laptop ISO+video, Pi 5 UART, GIC photo. UHCI library-size so the host unit suite can finish. Software proxies never close metal rows.
A headed screenshot is not click-path closure for Start→Calculator or title-drag. File/LOC growth includes leftover host-unit headers. make test-unit is not green.
The look-port guest ISO boots headed VirtualBox (VBoxVGA, 768 MiB, 128 MiB VRAM) to wallpaper, icon column, 42px bar, and Terminal at guest@os:~ / bash$ in about 20 seconds. A 1080p CREATE hang that left the LFB black is fixed (reserve the desktop surface; ACK before fill). Start-menu binaries on this ISO include Notes (/bin/sw-notes), Terminal, Calculator, Files, Chess, Solitaire, Settings, and the rest of the 22-entry registry. The first-party house-clean loop is stopped — leftover canvas-marker print wrappers had grown past gcc’s default include depth and were no longer a file-review campaign.
docs/os-ui prototype baselines remains open.Serial SERVER_OK / DESKTOP_OK / FB_OK / wallpaper / Terminal first present. VBoxVGA, not VBoxSVGA.
House-clean leftover-print conveyor (last closed child H1227). Parent H0 stays open. Tests and scripts still unread as a wave.
Physical x86 laptop ISO+video, Pi 5 UART, GIC photo. Software proxies never close those rows.
A headed screenshot is not click-path closure for Start→Calculator or title-drag. File/LOC growth includes leftover host-unit headers.
Mid-August work restyles Okei Desktop as it actually runs — compositor, panel, Notes, Terminal, Files — against a written look spec. It is not a new windowing system and not a JavaScript mock. Chrome is paper and clay (30px title, 22px buttons, 42px bar). Notes is File / Edit / Search / Help plus a footer and a slim page scroller. Terminal stays black, Source Code Pro 13, open banner OkeiOS version 1.0. Wallpaper is a coded generator, not a browser raster. Search, sound popup, and the Start card shipped as host-tested look pieces.
Theme tokens, Outfit + Source Code Pro atlases, rounded chrome with soft shadow, bar frost, desk-icon tiles, SE resize ticks. Guest ISO on VirtualBox carries this look.
Human headed match vs the prototype remains the parent look gate. The featured screenshot on this page is now the 20 Aug 1080p look-port desktop. Window-move expose and Start→Calculator present are still operator residuals.
Did not replace sw-term / Notes / Files with the HTML prototype. Did not change Bash PS1 or drain predicates. Login was removed from Start (greeter is not a desktop app).
Host units and an ISO pack are not a visual PASS. Side-by-side vs docs/os-ui prototype baselines is still operator work.
The in-tree count crossed 500,000 lines — 509,590 today, in 3,491 files. That is kernel, boot, userspace, tests, scripts, GRUB, and image config. It is not vendored Bash, Vim, or the toolchain. One hundred and eighteen days after the first SlimOS commit (19 Apr), the private tree is a half-million-line operating system we boot ourselves.
292k on 23 Jul → 450k on 9 Aug → 459k on 14 Aug → 510k on 15 Aug. About 217k first-party lines in three weeks, then the last 50k in a day of leftover splits and host units.
Same find as scripts/marketing_metrics.sh. C, headers, assembly, shell, Python, linker scripts, GRUB/image config. Third-party ports stay out of the total on purpose.
Not a finished product, not a public tree, not a claim that 2,411 house-clean findings are fixed. Size is a milestone. Behavior still has to earn each gate.
3,552 commits (~30/day). 5,357 host unit-test definitions. 102 syscalls. Pi 5 HDMI boot already landed. House-clean still walking the rest of the tree.
Before a public tree, first-party files were being read by hand. Review commits add contract comments and a ledger row. They do not close the bugs they find. Later host-unit children extract *_pure.h helpers and can change product policy. The 15 Aug snapshot (812 children, 1,038 ledger rows) was a checkpoint. A later leftover-print conveyor kept numbering children without walking tests or scripts. That loop is stopped on 20 August.
Last closed leftover child H1227. About 1,405 ledger rows of 4,727 metrics files. Parent H0 stays open until the full find has a row.
Kernel, all of userspace/libc, and most of Okei Desktop remain the bulk of the real read. Tests and scripts are still unread as a wave. Late file growth is leftover header splits.
About 3,377 unique finding IDs (contract / logic / security). Filing is not fixing. Catalog size grew with wrapper children — do not treat that as a 3k-bug fix list.
A ledger row is not a cleanliness certificate. H numbers going up is not “the tree is clean.” Product compile now needs -fmax-include-depth=256 because of that wrapper chain.
First physical Raspberry Pi 5 (1 GiB) boot of the AArch64 kernel with a real HDMI text console via the VideoCore property mailbox. Capture on a wall monitor shows board markers end-to-end from framebuffer init through DTB and syscall table.
okeios-pi5-aarch64.img.FB_BOARD_OK, HDMI paint, EL1, DTB probe, VBAR/SVC table. Soft virtio correctly reports VIRTIO_NONE.
Userspace after NO_USER (1 GiB-safe load + microSD root), debug UART base map, then shell on HDMI.
AArch64 virt bash + interactive CLI remain the daily software gate for the same tree.
HDMI console ≠ board shell. SDHCI root and board UART still open task gates.
Closed CA-verified HTTPS (curl + wget), Dropbear scp put/get, freestanding git porcelain, live ssh -X x11-req smoke (protocol path), Vim/PTY/tmux, title-bar close campaign, image PPM+BMP Open/Save, and QEMU click-paths across shipped desktop apps. Product Bash remained static.
Real CA verify; scp session-close green; product /bin/ssh stays Dropbear dbclient.
Guest add/commit/status/diff/log; Vim edit round-trip; Multiboot tmux.
File Manager, Calculator, Chess, Solitaire, Task Manager Kill, Calendar, Theme, Network, Asteroids, Font Viewer, Settings — host selftest + QEMU markers.
~434k LOC · 4,210 unit tests · 2,827 files · 102 syscalls.
PIC newlib as shared libraries, opt-in bash-dyn (guest dyn smoke), DT_GNU_HASH, and honest Bash sleep/getppid/alarm/ttyname paths. Product /bin/bash stayed statically linked. okeios-box at 103 applets.
okeios-box multicall expansion, terminal stability suite (single finish predicate, FG_EXIT on all zombie deaths), sparse demand Ext4 root, xHCI HID software path, product DNS, gzip Multiboot module.
Multi-loop Bash pipelines that survive real work; FHS-style PATH; upstream find/bc/kill; product smoke for grep/ps/scp; NVMe root e2e; RO text COW on fork. Footprint then ~366k LOC.
Under Oracle VirtualBox, Okei Desktop Terminal runs curl okeios.org/helloworld and prints the live greeting — DNS, TCP, and HTTP through the in-kernel stack.
Guest self-SSH over loopback TCP, VirtualBox GUI path cut to ~16 s to Terminal (lab bench), upstream strace 6.9 on real ptrace, PCIe NVMe driver.
Same Multiboot2 ISO under VirtualBox reaches interactive Bash; guest ping google.com receives a public ICMP reply.
Real Multiboot2 kernel and userspace reach interactive bash-5.2# in a custom browser emulator (sibling okeios-web) — not v86, not QEMU-in-WASM.
Terminal, Chess, and the desktop panel together — Desktop v1 visual from a private make all image.
Codebase and product language standardized on Okei OS and Okei Windows (desktop). Public and marketing names use Okei Desktop for the GUI; source trees keep the okeiwin prefix as an implementation detail.
Within days of the repository starting, the tree produced a bootable ISO and launched QEMU. Same-day work fixed Multiboot long-mode entry, page-directory layout, and identity-mapped kernel paging — the “getting code working” phase.
First commit on master: project scaffolding, Multiboot2 stubs, GDT/IDT, VGA/serial, page allocator, scheduler sketch, VFS notes, Makefile/QEMU, and phased task tracking. Project age is counted from this commit.
An operating system is the brain and nervous system of a computer — the software that wakes up the hardware, manages memory, talks to display and keyboard, and gives applications a safe place to run. Building one from scratch means owning every layer of that story.
Near-term: installable pre-GUI release — reproducible build/install, newlib sysroot, Bash as the interactive shell, real userspace networking, PTY substrate — then deeper GUI polish. Longer term: local-first tooling and creator workflows.
Browser, email, notes, documents, spreadsheets — on the Horizon map, not built today.
Page design, image/video, CAD-style tools for makers.
Local intelligence without cloud dependency.
Capability-secure remote surfaces over the network.
A from-scratch 64-bit OS with a custom kernel, GNU Bash, upstream utility ports, and Okei Desktop v1. Private pre-alpha — we boot it in QEMU, VirtualBox, and a browser emulator.
Not yet. No public repository, ISO, or hosted emulator. A public open-source release is a near-term goal without a fixed ship date.
No. Those categories are on the Horizon — direction only.
The OS page has architecture, boot path, ports, and known gaps — still our private tree, not a public binary.
Okei OS is not public yet — no open repository, no downloadable ISO, no hosted emulator for visitors. We are preparing an open-source release and are optimistic it can go public soon, once build, test, and contribution workflows are solid enough to invite others in.