110 lines
5.2 KiB
Markdown
110 lines
5.2 KiB
Markdown
# Keru OS — Philosophy
|
|
|
|
Keru is a source-only Linux distribution built on one governing principle:
|
|
|
|
> **The OS is a choice, not a conclusion.**
|
|
|
|
Most distros ship a decision someone else already made for you — a default
|
|
init, a default libc, a default filesystem. You inherit it and live with it.
|
|
Keru refuses that premise. Every foundational component is a *variable you
|
|
resolve at install time*, not a fixed value baked into the distribution.
|
|
Every init, every libc, every filesystem, every kernel, every
|
|
privilege-elevation tool — all selectable, none forced.
|
|
|
|
## Anti-opinionated, not opinionated
|
|
|
|
Keru is not opinionated. It is **anti-opinionated**. An opinionated distro
|
|
picks a stack and defends it — *"you get s6 and XFS whether you like it or
|
|
not."* Keru is the direct rejection of that. It holds **no opinion** about
|
|
which init, libc, filesystem, or daemon you should run, because that decision
|
|
belongs to you, not to the distribution.
|
|
|
|
The distro's only opinion is that you have to form one. After that, it shuts
|
|
up and builds exactly what you chose.
|
|
|
|
## Only what you asked for
|
|
|
|
The install medium carries **nothing but the installer**. There is no prebuilt
|
|
base image, no hidden bloat, no background assumptions. You pick your system,
|
|
Keru fetches it and compiles it from source, and the disk reflects exactly
|
|
that and nothing more. What gets built is defined by what you chose — not by
|
|
what maintainers decided you should have.
|
|
|
|
## Control without complexity
|
|
|
|
This is the deliberate bet, and the thing that separates Keru from a
|
|
Gentoo-skin. The package manager, **Kama**, is a shell script. It reads a
|
|
`make.conf` and runs recipe commands. No dependency solver. No package
|
|
database. No compiled manager machinery.
|
|
|
|
> "Sure, the package manager is in shell, and that compromises performance —
|
|
> but it's still faster than many package managers people actually use, and
|
|
> the real cost of a build is the compiler, not the meta-machinery around it."
|
|
|
|
The dependency model is AUR-style ephemeral: build tools are fetched,
|
|
compiled, and removed once they've served, so they never accumulate. The
|
|
richness lives in the recipes and the profile, not in the machinery. Keru is
|
|
the position that package managers became more complex than the packages they
|
|
manage, and that the simple version is the right one.
|
|
|
|
> "A package manager doesn't need a resolver to be honest. It needs to be
|
|
> legible — you can read every decision it makes, because every decision is a
|
|
> script or a line in make.conf you can see and change."
|
|
|
|
## Squared with reality
|
|
|
|
Building every init, every libc, every filesystem from source at install time
|
|
requires a working network connection, and the installer is honest about that:
|
|
connectivity is a hard gate, and network setup happens inside the installer.
|
|
This is what makes "everything is swappable" real rather than aspirational.
|
|
The power to choose anything comes from the fact that nothing is prebuilt —
|
|
you fetch exactly the parts you picked.
|
|
|
|
> "You give up the convenience of a prebuilt system so the system you get is
|
|
> exactly the one you designed. Speed-to-install is traded for
|
|
> fit-to-request. If you want fast and prebaked, a binary distro is right
|
|
> there. If you want your machine, this is the one."
|
|
|
|
## Stability: guaranteed on what's offered, never enforced on you
|
|
|
|
Keru's promise is that **the system won't break** — but honestly scoped: it
|
|
won't break **on the combinations it offers you**. That is what the installer
|
|
means by offering a choice: each option in `install.sh` is one Keru has proven
|
|
builds and boots. The offered set is curated *so that* it doesn't break.
|
|
|
|
Choice multiplies the test surface — six inits, four libcs, seven filesystems,
|
|
five kernels, and so on produce over a thousand possible systems. Guaranteeing
|
|
every one of them is only honest if it's *enforced by curation*: Keru offers
|
|
what works.
|
|
|
|
But the user is never locked out of going further. If you pick something that
|
|
isn't yet proven — a libc and init never tested together, an unmaintained
|
|
filesystem, an exotic kernel pair — Keru does **not** stop you. It **warns
|
|
you** the combination is unstable and lets you proceed.
|
|
|
|
> "Stability is a guarantee about what we offer, not a jail around the edge of
|
|
> it. If you want to push into the unproven, we tell you the truth and get out
|
|
> of your way."
|
|
|
|
So the full definition, in one line:
|
|
|
|
> **The system won't break for any choice Keru offers you; for anything beyond
|
|
> that, Keru warns and steps aside — you stay in control, never blocked.**
|
|
|
|
## Agreement on choice, not agreement on opinion
|
|
|
|
The through-line across Keru's lineage is clear: TOML packages, then a
|
|
50-line build DSL, then plain shell. And from *opinionated dogma* — "you get
|
|
s6 and XFS whether you like it or not" — to *anti-opinionated anything-goes*.
|
|
Keru keeps the from-scratch purity while rejecting the fixed dogmas outright.
|
|
|
|
> "We don't tell you which init to worship or which filesystem to trust. We
|
|
> tell you that you have to choose — and then we build exactly that."
|
|
|
|
The philosophy in one line:
|
|
|
|
> **A system should be exactly what you chose it to be — selected at install,
|
|
> built from source, nothing forced and nothing you didn't ask for.**
|
|
|
|
And in two words: **anti-opinionated by design.**
|