ReviewOS

home-lang/home-os

public
Clone

Push over the same URL. A password will not work: create a token under access tokens and use it in place of one.

main
· 2 branches · 267 commits

Mirrored from home-lang/home-os · syncing is switched off

README.md

HomeOS

The open-source macOS — built entirely in Home, one language from kernel to desktop.

parse-rate

Honest Baseline

HomeOS is in early bring-up. Read this before anything else in the repository.

A Home-compiled kernel boots in QEMU and prints on the serial console. That is the entirety of what executes today. The tree also holds a large body of Home source — a TCP stack, a compositor, a CFS scheduler, 80+ coreutils — all of which has been written and parses, and none of which has ever run.

GateWhat it provesStatus
parse-rateevery kernel .home file parses410/410 (100%)
stub-registerthe stub register matches the sourcegreen
boot-qemu-x86_64Home-compiled code boots and prints on serialgreen
mvk-compileshow much of the kernel reaches codegen35/35
typecheckhow much of the kernel has zero type errors35/35
boot-to-shellan interactive shell over serialnot started
everything aftersee the phase mapnot started

Try it yourself:

./scripts/build.sh mvk    # compile a .home kernel, link it, emit the image
./scripts/boot-test.sh    # boot it in QEMU, assert the string on serial

IMPLEMENTATION_STATUS.md is the full picture, and it is generated by measurement rather than written by hand — it re-runs the parser, rebuilds the kernel, and boots it, so it cannot drift.

Strategy: kernel-first purist (MASTER_PLAN) — no Linux-hosted stopgap; QEMU → x86-64 → Raspberry Pi 5 hardware waves. The honest cost of that choice is that desktop parity arrives at Phase 5, not next quarter.

Project Structure

home-os/
├── kernel/
│   ├── src/
│   │   ├── mvk_poc.home      # the kernel that currently boots
│   │   ├── main.home         # x86-64 kernel entry (lean unified entry)
│   │   ├── boot.s            # multiboot headers + long-mode transition
│   │   └── *.home            # Kernel modules
│   ├── linker.ld             # x86-64 linker script
│   └── linker-rpi5.ld        # ARM64 linker script
├── apps/                     # Userspace: shell, coreutils, init
├── libs/libc/                # libc (12 modules)
├── installer/                # OS installer
├── scripts/
│   ├── build.sh              # Canonical build dispatcher (--help)
│   ├── boot-test.sh          # boot-qemu-x86_64 gate
│   ├── parse-rate.sh         # parse-rate gate
│   └── stub-check.sh         # stub-register gate
├── static-checks/            # Static/grep checks (not executed tests)
└── docs/
    └── MASTER_PLAN.md        # Canonical roadmap

Building from Source

Prerequisites

  1. Home Compiler (required)

    git clone https://github.com/home-lang/home   # or your checkout
    cd home && zig build
  2. QEMU, for the boot gate. This repo declares it in pantry.jsonc:

    pantry install
  3. For Raspberry Pi 5: blocked on the Home arm64 backend (milestone A6).

Build Commands

./scripts/build.sh mvk             # the Minimum Viable Kernel (also the default)
./scripts/boot-test.sh             # boot it in QEMU, assert proof-of-life
./scripts/parse-rate.sh --strict   # the parse-rate gate
./scripts/stub-check.sh            # the stub-register gate
./scripts/build.sh --help          # every subcommand

Build failures are loud by design. A missing compiler, a missing source file, or a failed compile exits nonzero — there are no stub fallbacks that let a build report success without producing a kernel.

Roadmap

The canonical plan is docs/MASTER_PLAN.md. Phases:

  • Phase 0 (now) — Truth & Toolchain: parse 100%, honest builds/docs, MVK boots in QEMU under CI
  • Phase 1 — Kernel bring-up to interactive serial shell
  • Phase 2 — Storage + networking + console subsystems
  • Phase 3 — Userspace & POSIX solidity
  • Phase 4 — Craft GUI foundation
  • Phase 5 — Desktop experience parity (v1.0)
  • Phase 6+ — Beyond Omarchy; hardware waves

License

MIT

Contributing

See CONTRIBUTING.md.