Repository navigation
Open Cube OS 3.0.0 WP-04 - the L1 migration (development milestone)
Pre-releaseOpen Cube OS 3.0.0 WP-04 - the L1 migration (development milestone)
Every command of the v2.2.0 baseline now runs from ring 3: one
command = one app = one folder (src/L1/<name>/main.c), discovered
mechanically by tools/gen_userprogs.py into the embedded program
registry. The L0 side is a pure service kernel - drivers, services and
the numbered L1SVC ABI; no user-plane code remains in ring 0.
This is a development milestone on the way to 3.0.0, not the 3.0.0
release (the formal release, its OTA chain and version bump land in
the next work package).
Where the 251 v2.2.0 commands went
| Batch | Content | Count |
|---|---|---|
| G3-G5 | 140 SVC wrappers + 31 file tools + the nano/vi editor shells | 171 |
| G6 | health / dmesg / logcat / logctl / watchdog | 5 |
| G7 | the l1 family: run, l1test, ldd, help (+ help_*_test invariants) | 7 |
| G8 | vitals 5 (mem/frag/heap/sched/syncstat) + crash 3 | 8 |
| G9 | 18 ring-0 self-tests (diag ops 9-26) | 18 |
| G10 | 13 chipset diagnostics (diag ops 27-39) | 13 |
| G11a | ssh + sshd (the RFC 4251-4254 engine pair, revived verbatim) | 2 |
| G11b | ime + ime-test (pinyin engine, DISP ops 11/12 revived) | 2 |
| G11c | the nine full-screen TUI pages (category "tui") | 9 |
| stays in ush | shell-state builtins (cd/export/alias/...) - a subprocess cannot mutate the shell's own process state | 9 |
| subcommands | health export / health watch live inside the health app |
2 |
Total migrated: 235 of 251; the remainder are the documented
shell-state / subcommand classes above (plus one audit false-positive
and the dual-homed counting caliber).
Parity proof
A 34-command battery ran against a real v2.2.0 build (same toolchain)
side by side in QEMU - structure is line-for-line identical; only
volatile state (tick counts, free bytes, heap block counts) and
version strings differ. Per-batch evidence (verbatim transcripts,
interactive sessions, VNC page screenshots, SSH e2e with paramiko)
lives under evidence/3_0_0_wp04_*.
New ABI surface (append-only)
- category 19 "diag" - 39 operations (vitals, crash, self-tests, chipset)
- category 20 "tui" - 9 operations (the desktop + classic pages)
- net ops 13/14 (ssh/sshd), display ops 11/12 (ime/ime-test, back on their v2.2.0 numbers)
Live bugs found and fixed along the way: F6 (IRQ-context interrupt
enablement - three reversed IFs, a #DF under pmmrace), F7 (stale RSDP
pointer into loader memory - an ACPI #PF), F8 (a health format that
had drifted from its v2.2.0 source).
Downloads
| Asset | Size | SHA256 |
|---|---|---|
opencube-3.0.0-WP-04.iso |
12,351,488 B | b2697ab8617ed21ec20a541f5f658d62eb6a095a40ca69bf3e7796b96aa153c3 |
opencube-3.0.0-WP-04.elf |
2,077,472 B | 31c7c8844ae33d91a4e8dba5653aeb21024f4a626244eddcbab984b7c75125bf |
The ISO is hybrid BIOS+UEFI (dual El Torito) and boots straight into
the ring-3 ush> shell on both SeaBIOS and OVMF. The ELF is the
kernel image for direct -kernel boot.
Verified (all gates real runs)
| Gate | Result |
|---|---|
Compile 0 errors 0 warnings (-Wall -Wextra -Werror) |
PASS, two clean builds |
| Determinism: two clean builds byte-identical | PASS (elf 31c7c884, iso b2697ab8) |
BIOS boot to ring-3 ush> (auto-entry) |
PASS |
UEFI (OVMF) boot to ring-3 ush> |
PASS |
tui-test |
93/93 all green |
| CI on the release commit and the tagged commit | both success |
Version 3.0.0-WP04, build 348 - the build id is the commit count
plus 21 and stays monotonic above the published 316 (2.2.0); the
kernel reports it via the crash header and the sysinfo pages.
fix1 update (3.0.0-WP04-fix1)
The WP-04 fix batch: all 11 known bugs fixed (each root-caused,
live-verified before/after on QEMU serial), a four-quadrant
source-tree audit (src/L1 274 programs, src/L0, docs, website) with
every finding fixed on the spot, and an ISO determinism repair found
during the re-check.
The 11 known bugs
| # | Fix |
|---|---|
| 1 | exit now prints guidance (the shell is the surface; no blank halt) |
| 2 | tui serial clean at byte level (4000 SGR pairs, 0 lone ESC, strict UTF-8 decode) |
| 3 | serial CSI pre-decode (arrows/Home/End/Del/Ins/PgUp/PgDn; SGR mouse passthrough; physical Esc -> OC_KEY_ESC_KEY) |
| 4 | launcher exit message honest (no "recovery shell" claim) |
| 5 | help -a / help -w restored: three DISTINCT modes via L1SVC op1 arg |
| 6 | help registry-driven - the ~100-line hardcoded list is gone; the registry carries per-program wp tags |
| 7 | line editor: prompt-aware redraw + pad-clear to previous length + CJK bias bytes accepted (six symptoms, 18/18 live battery) |
| 8 | banner version fetched from the uname service (3.0.0-WP04) |
| 9 | OCIRE keyboard maps realigned (1->1, =->=, Tab live; before: 1->2, =->backspace, Tab dead) |
| 10 | VGA scroll half-copy fixed (1920 -> 3840 bytes); before/after live-captured |
| 11 | g_pipes init memset(NULL) removed |
Before/after evidence for every bug: evidence/3_0_0_wp04_fix1/ in
the repository.
Audit & determinism findings (fixed on the spot)
- Docs regenerated to the 285-command surface, all from the command
registry (no hand-written command list anywhere). - The WP-05 OCBL packer had dropped the G13 staging-tree touch:
forced rebuilds minutes apart differed in the PVD/directory-record
mtimes and the RR TF atime/ctime. The packer now pins the staging
tree to the epoch and zeroes RR TF ctime + atime post-xorriso -
two forced rebuilds 65 s apart are byte-identical across
opencube.iso, ocire.iso, src.zip and OCIRE.elf.
Current assets (fix1, build 361, the pinned-tree rebuild)
| Asset | Size | SHA256 |
|---|---|---|
opencube-3.0.0-WP04.iso |
3,637,248 B | b0f348576f61601ba7d7655a0e53e74610e2d36701959187d56f8232e792001d |
opencube-3.0.0-WP04-src.zip |
4,157,834 B | 886bf41200d3165543ffb1f26c1644f286fb4b2ff1b5090d6d11248a4792b98f |
opencube-3.0.0-WP04-update.tar.gz |
1,153,842 B | 9f7a7030b6990c8a3736ba67573293d636d9b4ac18067a7fac4e71ea1d5db2bd |
opencube-3.0.0-WP04.elf |
2,075,728 B | e7c6ce9796775bd66af52b0f3913c97bde44df8c197e7f6b80ef9734f0ba32fc |
The WP04 (no dash) set above is the current fix1 build. The
original WP-04 assets - the 12,351,488 B dual-GRUB ISO and its
ELF - remain attached unchanged as the historical WP-04 milestone
build.
Re-verified after the determinism fix (all real runs)
| Gate | Result |
|---|---|
BIOS boot to ring-3 ush> |
3/3 |
| UEFI (OVMF) same-ISO gate | 4/4 |
| ush full battery - banner, arrow keys, Ctrl combos, history ghost, Tab completion, CJK, exit, help three modes, pipes | 18/18 |
| OCOS suite regression (incl. tui-test 93/93) | 12/12 |
| OCIRE regression - BIOS+UEFI ISO boot, help/syscheck/logread | 5/5 |
| OCIRE keyboard (bug 9) | 5/5 |
| VGA scroll freeze band (bug 10) | 6/6, band md5 identical to the earlier evidence |
| ELF reproducible-check | PASS (e7c6ce97) |
| CI on 250fc14 / 44decb4 / a80c4e4 | all success |