Skip to content

Releases: danielsboring/distro

Init release: 0.1.0-alpha

03 May 14:36

Choose a tag to compare

Pre-release

A from-scratch Linux distro builder for old 32-bit x86 hardware, driven
by a single POSIX-sh entry point (./dbos). No Make, no Python, no
containers.

Build system

  • ./dbos {doctor,list,build,clean,shell,test,menuconfig,bump,--version}
  • Five stages (toolchain, kernel, userland, rootfs, image), each with
    its own input-checksum stamp under build//.stamps/.
  • Per-recipe meta files declare BUILD_DEPS / RUNTIME_DEPS; the userland
    stage topo-sorts the runtime closure of the profile's APPS list and
    builds in dependency order.
  • Per-package file-list capture (sysroot diff before/after each recipe)
    feeds /var/lib/dbos/installed.db and the dbos-pkg query CLI.

What's in the rootfs (pentium-m profile, ~23 MB)

  • Linux 7.0.3 (kernel.org pin)
  • musl-cross-make-built i686-linux-musl toolchain
  • toybox 0.8.13 (init, getty, dhcp, ~250 applets including awk/vi/sh)
  • mksh R59c as the default interactive shell, with line editing,
    history, and basic completion
  • dropbear 2026.90 (SSH server + client; auto-starts at boot)
  • lynx 2.9.2, nano 8.7.1, less 692, htop 3.5.1, mandoc 1.14.6 +
    ncurses 6.6
  • curl 8.20.0 with mbedTLS 3.6.3.1 + Mozilla CA bundle (HTTPS works)
  • zlib 1.3.2

UX

  • ANSI-art /etc/issue with version + getty escapes (build-time
    conversion of \033 literals to real ESC bytes).
  • Dynamic /etc/motd built each boot (kernel, uptime, IP, mem, disk),
    rendered at top-level interactive logins via SHLVL gating.
  • Profile-overridable customization through profiles//rootfs-
    overlay/.

Profiles

  • ancient, pentium-m, core-duo, _common (parents-only).
  • INHERITS chain: single-level. Profiles declare APPS to extend or
    replace what gets built into the rootfs.

Verification

  • ./dbos test pentium-m runs an 8-check headless QEMU smoke test
    covering boot, login, dbos-pkg, /etc/dbos-release, and ACPI
    shutdown — all green at this snapshot.

Docs

  • README.md is end-user facing (boot, login, day-to-day usage).
  • docs/AI-USAGE.md adopts the Linux kernel's AI-tooling and tool-
    generated-content policies verbatim.