feat: POSIX/P2P roadmap — proc surfaces, syscalls, boot perf, docs, CI

- Align posix-conformance-matrix bareOsSyscallOps with getconf BARE_OS_SYSCALL_OPS
- Add verify-boot-policy-extension-signer-pins.mjs to pretest; document in scripts/README
- Document extensionSignerPinsV2–V5 env wiring in OTA_AND_BUNDLES; vault multisig sketch
- Note telemetry NDJSON redaction limits in environment appendix
- Expand booter CHANGELOG 1.40.0 (boot-perf, shell POSIX mode, subprocess errors, etc.)
- Holepunch sync README: NDJSON summary path

Seeder/kernel parity and pretest already green for bundled changes.
This commit is contained in:
Raven Scott
2026-04-05 00:02:23 -04:00
parent 16ac71815f
commit 1faf9715b7
67 changed files with 2645 additions and 577 deletions
+5 -3
View File
@@ -6,7 +6,7 @@ This document is the **normative contract** for how closely the stock Bare OS ke
| Constant | Value |
| -------- | ----- |
| `BARE_OS_POSIX_PROFILE_VERSION` | `1.0.4` |
| `BARE_OS_POSIX_PROFILE_VERSION` | `1.0.5` |
| `BARE_OS_POSIX_PROFILE_ID` | `bare-os-posix-like` |
| `BARE_OS_POSIX_PROFILE_REFERENCE` | Open Group Issue 7 index URL |
@@ -18,7 +18,7 @@ This document is the **normative contract** for how closely the stock Bare OS ke
Bare OS does **not** expose a C ABI. The following **observability contracts** stand in for “system calls”:
- **`/proc/bare_os/syscalls.json`** — Declares **fd model**, **signal model**, **errno hints**, and **operation detail** (schema version in-file). **`ops`** lists invocable **`ctx.bareOsSyscall`** names; **`opsDetail`** also carries **POSIX.1 XSH** logical names (**`open`**, **`close`**, **`read`**, **`write`**, **`lseek`**, **`pipe`**, **`dup`**, **`dup2`**, **`fcntl`**, **`poll`**, **`select`**, and **socket family** probes) with **`posixAlignment`** (**`simulated`**, **`partial`**, **`ENOTSUP`**) and **`mapsTo`** for traceability. The **`posixXsh`** object summarizes those XSH names. **`fcntl`** is implemented as **`ctx.bareOsSyscall('fcntl', { fd, cmd, arg })`** with **`F_GETFL`** / **`F_SETFL`** (Linux-shaped **`O_APPEND`** **`0x400`**, **`O_NONBLOCK`** **`0x800`**); unknown FDs yield **`EBADF`**. **`poll`** / **`select`** share the same logical FD readiness probe (**`ctx.bareOsPosixPoll`** / **`posixPoll`** / **`select`** syscall facade) on simulated pipe FDs when **`BARE_OS_POSIX_FD_SIM`** is enabled. **Socket-shaped** syscalls (**`socket`**, **`bind`**, **`listen`**, **`accept`**, **`connect`**, **`send`**, **`recv`**, **`shutdown`**) return a documented **`ENOSYS`** / **`ENOTSUP`**-aligned probe (guests use Hyperswarm / **`ctx.bare` TCP/UDP modules instead). The stock booter **caches** this JSON until warm read-cache invalidation. Unsupported operations are listed with **ENOTSUP** / **ENOSYS**-style semantics where applicable.
- **`/proc/bare_os/syscalls.json`** — Declares **fd model**, **signal model**, **errno hints**, and **operation detail** (schema version in-file). **`ops`** lists invocable **`ctx.bareOsSyscall`** names; **`opsDetail`** also carries **POSIX.1 XSH** logical names (**`open`**, **`close`**, **`read`**, **`write`**, **`readv`**, **`writev`**, **`getsockopt`**, **`setsockopt`**, **`lseek`**, **`pipe`**, **`dup`**, **`dup2`**, **`fcntl`**, **`poll`**, **`select`**, **`umask`**, and **socket family** probes) with **`posixAlignment`** (**`simulated`**, **`partial`**, **`ENOTSUP`**) and **`mapsTo`** for traceability. The **`posixXsh`** object summarizes those XSH names (via **`bareOsPosixXshOpsCsv()`**). **`fcntl`** is implemented as **`ctx.bareOsSyscall('fcntl', { fd, cmd, arg })`** with **`F_GETFL`** / **`F_SETFL`** (Linux-shaped **`O_APPEND`** **`0x400`**, **`O_NONBLOCK`** **`0x800`**); **`F_GETLK`** / **`F_SETLK`** / **`F_SETLKW`** return an **`{ ok: false, code: 'EOPNOTSUPP' }`** object (advisory locks not implemented). Unknown FDs yield **`EBADF`**. **`readv`** / **`writev`** perform bounded scatter/gather on **`BARE_OS_POSIX_FD_SIM`** pipe read/write ends. **`poll`** / **`select`** share the same logical FD readiness probe (**`ctx.bareOsPosixPoll`** / **`posixPoll`** / **`select`** syscall facade) on simulated pipe FDs when **`BARE_OS_POSIX_FD_SIM`** is enabled. **Socket-shaped** syscalls (**`socket`**, **`bind`**, **`listen`**, **`accept`**, **`connect`**, **`send`**, **`recv`**, **`shutdown`**, **`getsockopt`**, **`setsockopt`**) return a documented **`ENOSYS`** / **`ENOTSUP`**-aligned probe (guests use Hyperswarm / **`ctx.bare` TCP/UDP modules instead). The stock booter **caches** this JSON until warm read-cache invalidation. Unsupported operations are listed with **ENOTSUP** / **ENOSYS**-style semantics where applicable.
- **`/proc/bare_os/process_table.json`** — **PGID** / **SID**-style fields, **`parentName`** (from **`ppid`**), **signal routing**, and initd binding for the **logical** process table (not host PIDs).
**Explicit non-goals**
@@ -33,7 +33,9 @@ Bare OS does **not** expose a C ABI. The following **observability contracts** s
Stock shell is **line-oriented** with bounded **`if`**, **`while`**, **`for`**, optional **`case`**, lists (`;`, `&&`, `||`), and **`|`** pipelines (**simulated**, not kernel pipes). **Default pipeline exit status** follows POSIX **last stage**; set **`BARE_OS_SHELL_PIPEFAIL=1`** for bash-like **first failing stage** status. See handbook ch.9 §3 and §8.5.
**Unsupported (by design):** subshells, full POSIX grammar, job control with real background process groups, here-documents beyond documented limits.
Optional **`BARE_OS_SHELL_POSIX_MODE=1`** enables **subshell-free** grouped lists **`( compound-list )`** as a single statement (same logical session).
**Unsupported (by design):** forked subshells / process-level isolation, full POSIX grammar, job control with real background process groups, here-documents beyond documented limits.
---