Files
bare-operating-system/handbook

Bare operating system — handbook

Bare OS is an experimental, P2P-first system image: a Merkle-addressed Hyperdrive you replicate from peers over Hyperswarm, plus a second drive for everything that should stay yours (home, identity, logs). This handbook is the narrative spine—written like a long-form technical article so you can read it cover to cover or jump to a chapter. It explains why the pieces exist, how they connect, and where to look when something breaks.

This project is experimental research software, not a production OS. It is licensed under Apache-2.0 (LICENSE).


On this page


How this handbook fits the repo

Documentation home — Single map of every tree: user manual, this handbook, developer guide, reference, concepts (evergreen), glossary, FAQ, troubleshooting router, contributing to docs.

Preface — why Bare OS — Thesis, comparison to classic images, security limits, outlook, contributor paths.

This handbook (handbook/*.md) — Story, architecture, protocol, runtime, identity, POSIX surface, operations, and research directions.

User manual — Short operator-oriented path: clone, run seeder and booter, use the shell and identity features, find man and troubleshooting without reading cover to cover.

docs/reference/README.md — File-by-file inventory, environment variables, data-flow diagram.

docs/architecture/KERNEL_CONTRACT.md — Single-page contract: subsystems, boot steps, ctx semver, typed errors.

developer-guide/README.md — How to write run(ctx, argv) / start(ctx), extend /bin, and test under Pear.

Kernel extensions — Kernel feature bitmask, seed-channel RPC, and capability bits.

The ctx object is versioned for kernels and scripts that depend on booter behavior. Treat packages/bare-os-booter/CHANGELOG.md as the contract history (bareOsCtxApiVersion / BARE_OS_CTX_API_VERSION). TypeScript authors can use packages/bare-os-booter/lib/bare-os-ctx.d.ts.


Who should read what (three paths)

I want to run it. Start at the user manual or the root README.md, then Chapter 7 — Operations (install, npm test, seeder/booter, Pear). Skim Chapter 1 for vocabulary.

I want to change the image or /bin. Read PrefaceChapter 6 → the developer guide, especially extending coreutils and the ctx object.

I want the architecture and trust model. Read PrefaceChapter 2 — BlueprintsChapter 3 — ProtocolChapter 4 — Booter runtimeChapter 5 — Identity.


Chapters

Pear workflows, ctx.bare, drive bundles: developer-guide ch.11 and ch.12.


Packages in one sentence each

  • bare-os-protocol — Shared topic string, MBR layout, Protomux message IDs, and kernel feature bits used by seeder and booter.
  • bare-os-seeder — Stages kernel/ into a system Hyperdrive, publishes the canonical MBR block and joins the swarm so booters can replicate the image.
  • bare-os-booter — Joins the swarm, opens system + personal drives, builds ctx, runs /boot/init.js, shell, initd, cron, and delegated tools (git, curl, wget); eligible booted peers may mirror block 0 and seed RPC snapshots.
  • bare-os-coreutils — Sources and build for /bin utilities plus the merged man.json database.
  • bare-os-bare-libs — Builds optional /lib/bare bundles merged into ctx.bare when enabled.

The staged tree also includes kernel/README.md (what lands on the system drive) and scripts/README.md (repo automation). Pear release links and host env notes: PEAR-RUN.md.


Root README

The top-level README.md is the short runbook (clone, npm ci, seeder/booter commands). Use it when you only need copy-paste steps.


License: Apache-2.0 — see LICENSE.