77 lines
5.9 KiB
HTML
77 lines
5.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>Philosophy — Keru OS</title>
|
|
<meta name="description" content="Keru's philosophy: the OS is a choice, not a conclusion. Anti-opinionated, source-only, warn-not-block stability.">
|
|
<link rel="stylesheet" href="assets/css/style.css">
|
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>ける</text></svg>">
|
|
</head>
|
|
<body>
|
|
|
|
<nav class="top" data-nav></nav>
|
|
|
|
<header class="pagehead">
|
|
<p class="crumbs"><a href="index.html">home</a> / philosophy</p>
|
|
<h1>Keru's Philosophy</h1>
|
|
<p>The governing principle, in plain terms.</p>
|
|
</header>
|
|
|
|
<section>
|
|
<div class="wrap">
|
|
<div class="prose">
|
|
<blockquote><strong>The OS is a choice, not a conclusion.</strong></blockquote>
|
|
|
|
<p>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 <em>variable you resolve at install time</em>, not a fixed value baked into the distribution. Every init, every libc, every filesystem, every kernel, every privilege-elevation tool — all selectable, none forced.</p>
|
|
|
|
<hr>
|
|
|
|
<h3>Anti-opinionated, not opinionated</h3>
|
|
<p>Keru is not opinionated. It is <strong>anti-opinionated</strong>. 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 <strong>no opinion</strong> about which init, libc, filesystem, or daemon you should run, because that decision belongs to you, not to the distribution.</p>
|
|
|
|
<p>The distro's only opinion is that you have to form one. After that, it shuts up and builds exactly what you chose.</p>
|
|
|
|
<h3>Only what you asked for</h3>
|
|
<p>The install medium carries <strong>nothing but the installer</strong>. 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.</p>
|
|
|
|
<h3>Control without complexity</h3>
|
|
<p>This is the deliberate bet, and the thing that separates Keru from a Gentoo skin. The package manager, <strong>Kama</strong>, is a shell script. It reads a <code>make.conf</code> and runs recipe commands. No dependency solver. No package database. No compiled manager machinery.</p>
|
|
|
|
<blockquote>"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."</blockquote>
|
|
|
|
<p>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.</p>
|
|
|
|
<blockquote>"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."</blockquote>
|
|
|
|
<h3>Squared with reality</h3>
|
|
<p>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.</p>
|
|
|
|
<blockquote>"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."</blockquote>
|
|
|
|
<h3>Stability, honestly scoped</h3>
|
|
<p>Keru's promise is that the system won't break — on the combinations it offers you. That's a bounded promise, enforced by curation, and it never locks you out. You're warned, never blocked. <a href="stability.html">Read the stability stance in full.</a></p>
|
|
|
|
<h3>The through-line</h3>
|
|
<p>Keru's lineage ran from TOML packages to a 50-line build DSL, then to plain shell. And from <em>opinionated dogma</em> — "you get s6 and XFS whether you like it or not" — to <em>anti-opinionated anything-goes</em>. Keru keeps the from-scratch purity while rejecting the fixed dogmas outright.</p>
|
|
|
|
<blockquote>"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."</blockquote>
|
|
|
|
<p>The philosophy in one line:</p>
|
|
<blockquote><strong>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.</strong></blockquote>
|
|
|
|
<p>And in two words: <strong>anti-opinionated by design.</strong></p>
|
|
|
|
<hr>
|
|
<p><a href="anti-opinionated.html">Deeper: what anti-opinionated actually costs and grants</a> · <a href="ethos.html">The ける ethos</a></p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<footer data-footer></footer>
|
|
|
|
<noscript><div style="text-align:center;padding:16px">See the <a href="sitemap.html">sitemap</a> for all pages.</div></noscript>
|
|
|
|
<script src="assets/js/include.js" data-base="."></script>
|
|
</body>
|
|
</html> |