Repository navigation
Open Cube OS 2.0.0
Open Cube OS 2.0.0
⚠ BREAKING CHANGES (read this first)
2.0.0 boots into ring 3. The kernel no longer drops you at the oc> recovery shell: the launcher starts ush (the default L1 entry, a ring-3 user shell) automatically, and falls back to oc> only when the ring-3 world cannot start. The interactive recovery surface is now 99 commands (self-tests, watchdog, crash policy, kernel log readers, chipset diagnostics, interactive sessions) - 134 of the 251 commands moved to the ring-3 service surface (133 SYS_L1SVC ops + the NETCMD bridge), 19 run as ush built-ins.
The register-class L1 interfaces of 1.0.0 are gone (driver_block_register, etc.): drivers and services now declare their identity in-file (OC_DRIVER_DECL / OC_SERVICE_DECL) and the linker collects them. Modules written against the 1.0.0 registration API need the v1→v2 mapping (INTERFACES.md "Command homes" table is the compatibility contract - every 1.0.0 command has exactly one v2 home).
L0 is restructured: core/ drivers/ services/ boot/ recovery/ arch/ (one folder per rule; services/ categories mirror the L1 interface surface). Out-of-tree build tooling that referenced the old layout must be updated.
The service surface
SYS_L1SVC(syscall 110) is the bridge: 17 service categories / 158 numbered ops - time, fs, block, nic, snd, ota, power, display, input, camera, usb, net, crypto, health, watchdog, recovery, l1.- ush gains pipe/redirection/wildcards/env/aliases/jobs plus 133 service commands;
exitreturns to the recovery shell. - The TUI desktop's command bridge, storage/network panels and sshd exec path route through a kernel-side bridge so v1 TUI flows keep working.
Fixed on the way (real bugs, QEMU-verified)
ota:incremental-build trap: stale ISO shipped over new kernel (the 1.0.0 Makefile comment's known issue - real fix: theotatarget now depends on the ISO).- Scheduler deadlock: SVC-frame timed waits spun with interrupts disabled (11 sites).
- UTF-8 continuation bytes dropped by the TUI capture path; IME compose wait; run-ush input park.
- VFS cross-directory move: false "target exists" / silent in-place rename; mount-root fs_type identity; ramfs two-parent move op.
- TUI form-pool leak (4 static slots) - the real cause behind the v1 long-session FAILs.
#DFattribution depended on a heap-layout coincidence.- Extension-page registration lost in the group B refactor (Clock/System/Lab pages).
Numbers
| Commands | 251 = 99 L0 + 133 ring-3 SVC + 19 ush built-ins |
| L1SVC | 17 categories / 158 ops |
| Syscalls | 54 (SYS_L1SVC added) |
| Source | 130,495 lines / 379 files, Apache 2.0 |
| Build id | 302 (commit count 281 + 21 offset) |
Verification on the release tree
Reproducible build (ELF byte-identical across two clean builds); host tests 17/17; wp12 watchdog/logging/crash E2E 14/14; wp10_tui 37/37; chinese E2E 21/21; tuiqa desktop apps BIOS 32/32 + UEFI 32/32; native TUI E2E BIOS 36/36 + UEFI 36/36 (files/editor/processes/panel/terminal rounds, shot rounds, zh sweep - shell-verified).
Assets
| File | SHA256 | Size |
|---|---|---|
| opencube-2.0.0.iso | efb650e25481a7b0ce9961c21c9747942d79e7b4417eb80ec41719a7bdec3854 |
12,392,448 B |
| opencube-2.0.0-src.zip | 92b415a0bb476cdd2539681cd5a3fd5d4b02620115006007e03af26e61a3d672 |
4,632,445 B |
| opencube-2.0.0-update.tar.gz | 327c57766785d48347de780713f93b0f63d5f3786cda0d78849ede544772d691 |
1,080,687 B |
The website download page, this Release and the repo tree hold byte-identical copies. Boot it: qemu-system-x86_64 -m 512 -cdrom opencube-2.0.0.iso.
ERRATA (2026-10-25, added with the 2.1.0 release; superseded by 2.2.0 below)
2.0.0 shipped with unresolved defects. Use the newest release instead.
-
Supersession note (2026-10-26, with the 2.2.0 release): all seventeen
postcheck findings are fixed by
2.1.0,
whose two remaining open kernel defects (the wp10_tui post-suite
kernel-stack #DF and the wait4-vs-fork stale-zombie race) are fixed
by 2.2.0.
Use 2.2.0. -
The release code failed to compile on the CI runners
(tui/tui_core.c port-I/O constraints); all 15 CI build runs on the
v2.0.0 chain were red while the release host's toolchain accepted
the code - the "CI green" release claim did not hold. -
The docs carried v1-era content and self-contradictory numbers
(a 231/233 baseline gap, a 162-vs-158 interface figure, an
over-general "register-class gone" statement without a deletion
register, stale command reference pages). -
Five suite logs referenced by the evidence README were not in the
repository.
All seventeen postcheck findings are fixed by 2.1.0 (see
KNOWN_ISSUES.md in the 2.1.0 tree for the itemized table). The
2.0.0 tag and these assets stay untouched for the record.