79 lines
3.3 KiB
Markdown
79 lines
3.3 KiB
Markdown
# Keru OS <sub>ける</sub>
|
|
|
|
An independent, source-only Linux distribution built around one idea: you
|
|
don't install a system, you *craft* one — **ける・けいとうてき** (keru keitō-teki): a
|
|
system assembled the way you want it.
|
|
|
|
This repository is the **operating system itself** — the installer, the
|
|
profile system, and the build pipeline. The two things Keru leans on live in
|
|
their own homes:
|
|
|
|
- **[kama](https://github.com/AstralZX/kama)** — the package manager (a shell script)
|
|
- **[kama-packages](https://github.com/AstralZX/kama-packages)** — the recipe repository
|
|
|
|
## What is Keru
|
|
|
|
Every package on Keru is built from source by **Kama**, a deliberately small
|
|
package manager that simply runs the commands in each recipe. No binary
|
|
packages, no opaque package machinery. The whole system — toolchain included —
|
|
is compiled from original source. What you run, you built.
|
|
|
|
Nothing is fixed. Nothing you didn't ask for is forced on you.
|
|
|
|
Read the full **philosophy** in [docs/PHILOSOPHY.md](docs/PHILOSOPHY.md).
|
|
|
|
## The differentiator: everything is swappable
|
|
|
|
Keru's installer is a TUI that walks you through designing your exact machine
|
|
*before* it ever boots. Every major component is selectable:
|
|
|
|
- **init system** — Runit (default), s6, OpenRC, systemd, busybox init, and more
|
|
- **C library** — glibc, musl, uClibc-ng, and more
|
|
- **filesystem** — ext4, btrfs, xfs, zfs, f2fs, jfs, reiserfs, swap, and more
|
|
- **kernel** — linux, linux-lts, linux-hardened, linux-cachyos, and more
|
|
- **privilege elevation** — doas, sudo, opendoas, su
|
|
- **kernel parameters, locale, clock, keymap** — all configurable
|
|
|
|
Every init, every libc, every filesystem, everything. The selections are made
|
|
during install and fixed at first boot. The system that lands on your disk is
|
|
precisely the one you chose.
|
|
|
|
Keru is stable on the combinations it offers you. If you push past what's
|
|
proven — an untested libc/init pair, an unmaintained filesystem — the
|
|
installer **warns** you the combination is unstable, then gets out of your way.
|
|
You're never blocked, only told the truth.
|
|
|
|
## How installation works
|
|
|
|
The ISO carries **only the installer** — nothing else. There is no prebuilt
|
|
base image on the disk. Boot it and the live init (`live/init`) starts the
|
|
installer immediately — no shell prompt, you just make your choices and it
|
|
builds. The installer connects to the network, then fetches and builds
|
|
whatever you selected (init system, kernel, libc, filesystem tooling, and
|
|
tools) on the fly.
|
|
|
|
A working **network connection is therefore a hard requirement** for
|
|
installing Keru. The installer checks connectivity and offers in-installer
|
|
network setup (wireless via `nmtui`/`wifi-menu`, or Ethernet/DHCP) before the
|
|
build begins.
|
|
|
|
## Repository layout
|
|
|
|
```
|
|
installer/ TUI installer — auto-starts on boot, writes make.conf from your choices
|
|
profile/ make.conf template (the swappables + build flags)
|
|
scripts/ build pipeline: build-root, mkfs-root, common helpers
|
|
live/ live-ISO init — boots straight into the installer
|
|
docs/ philosophy + design docs + the recipe format spec
|
|
```
|
|
|
|
## Release
|
|
|
|
Keru OS is currently in development. The first installable release, **0.1**,
|
|
will ship as a bootable ISO — no source builds, no manual tooling required.
|
|
It will be made available here when it's ready.
|
|
|
|
## License
|
|
|
|
AGPL-3.0
|