Skip to content

Open Cube OS 2.0.0

Choose a tag to compare

@cubestudio-dev cubestudio-dev released this 25 Oct 14:56
· 75 commits to main since this release

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; exit returns 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: the ota target 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.
  • #DF attribution 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.