migrate website from KeruOS web to its own repo
Deploy website to GitHub Pages / deploy (push) Failing after 3s
Deploy website to GitHub Pages / deploy (push) Failing after 3s
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Introducing Keru OS — Keru OS news</title>
|
||||
<meta name="description" content="Announcing Keru OS: an independent, source-only, anti-opinionated Linux distribution.">
|
||||
<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> / <a href="../news.html">news</a> / announcing keru</p>
|
||||
<h1>Introducing Keru OS</h1>
|
||||
<p class="meta" style="font-family:var(--mono);color:var(--ink-dim);font-size:.85rem">2026-09-01 · announcement</p>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<div class="wrap">
|
||||
<div class="prose">
|
||||
<p>Keru (ける) is a Linux distribution built on a deliberately unusual premise: <strong>the distro holds no opinion about your system.</strong> Not a light opinion, not a sensible default disguised as neutrality — no position at all.</p>
|
||||
|
||||
<p>Most distributions are an answer to "who decides what your system is?" and the answer is usually "the maintainers, wisely." Keru's answer is different: <strong>you decide, at install time, and the distro builds exactly that.</strong></p>
|
||||
|
||||
<h3>What that means concretely</h3>
|
||||
<ul class="features">
|
||||
<li><strong>Init is a choice.</strong> runit, s6, openrc, systemd, busybox-init, sysvinit, dinit, shepherd — side by side, weightless.</li>
|
||||
<li><strong>Your C library is a choice.</strong> glibc, musl, uclibc-ng.</li>
|
||||
<li><strong>Your filesystem is a choice.</strong> ext4, btrfs, xfs, zfs, f2fs, jfs, reiserfs.</li>
|
||||
<li><strong>Your kernel is a choice.</strong> linux, linux-lts, hardened, cachyos, zen.</li>
|
||||
<li><strong>Even sudo is a choice.</strong> doas, sudo, opendoas, or su.</li>
|
||||
</ul>
|
||||
|
||||
<p>And it's source-only. The whole system — toolchain included — is compiled from original source by Kama, a package manager that's a ~225-line shell script. There are no binary packages, no opaque machinery, no background assumptions.</p>
|
||||
|
||||
<h3>Why</h3>
|
||||
<p>Because "you get s6 and XFS whether you like it or not" is a fine stance for a distro that wants an opinion — but it's a burden for anyone who wants a system that is <em>theirs</em>. Keru's only opinion is that you have to form one. After that, it builds exactly what you chose.</p>
|
||||
|
||||
<p>Read the <a href="../philosophy.html">full philosophy</a>, or follow <a href="../news.html">progress here</a>.</p>
|
||||
|
||||
<div class="callout">Everything is at an early stage. The first installable release, 0.1, will ship as a bootable ISO. Until then: the design is public, the repos are live, and the road is documented.</div>
|
||||
</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>
|
||||
@@ -0,0 +1,58 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Design decisions, so far — Keru OS news</title>
|
||||
<meta name="description" content="The recorded decisions that stop Keru from drifting: shell manager, warn-not-block stability, sibling repos, installer-only ISO.">
|
||||
<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> / <a href="../news.html">news</a> / design decisions</p>
|
||||
<h1>Design decisions, so far</h1>
|
||||
<p class="meta" style="font-family:var(--mono);color:var(--ink-dim);font-size:.85rem">2026-09-01 · design</p>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<div class="wrap">
|
||||
<div class="prose">
|
||||
<p>Keru is early enough that its choices are still choices, not habits — so we're recording the ones already made, and why. If a decision ever looks wrong, this is the record of what it was meant to do.</p>
|
||||
|
||||
<h3>1. The package manager is a shell script</h3>
|
||||
<p>Kama (~225 lines, pure shell) reads <code>make.conf</code> and runs recipe commands. No resolver, no database, no binary format. Rationale: legibility over machinery. The real cost of a build is the compiler, not the manager, so the manager should be boringly simple.</p>
|
||||
|
||||
<h3>2. Stability is warn-not-block</h3>
|
||||
<p>Keru guarantees stability on the combinations it offers, and warns (never stops) you past that. Rationale: stable-on-what's-offered keeps the promise honest, and never-lock-out keeps it faithful to the anti-opinionated ethos.</p>
|
||||
|
||||
<h3>3. Three sibling repos</h3>
|
||||
<p>KeruOS, kama, kama-packages — separate, sibling by default, each human-sized. Rationale: independent cadence, legible diffs, clear ownership. Paths are overridable via <code>KAMA_DIR</code>/<code>PKGS_DIR</code>.</p>
|
||||
|
||||
<h3>4. The ISO carries only the installer</h3>
|
||||
<p>No prebuilt base image on the disk. The entire system is fetched and compiled during install, with network as a hard gate. Rationale: this is what makes "everything is swappable" real rather than aspirational — power to choose comes from nothing being prebuilt.</p>
|
||||
|
||||
<h3>5. All ephemeral build deps (AUR-style)</h3>
|
||||
<p>Build-time dependencies are compiled, installed, and purged after use (<code>PURGE_TEMP_DEPS=1</code>). Rationale: they never accumulate, so the final system reflects exactly what it needs to run — not what it needed to be built.</p>
|
||||
|
||||
<h3>6. The installer auto-starts on boot</h3>
|
||||
<p>live/init execs install.sh directly; if it exits, an emergency shell catches you. Rationale: "boot → choose → build" should have zero friction, and a user should never be stranded.</p>
|
||||
|
||||
<h3>7. The website lives in the OS repo</h3>
|
||||
<p>The site now lives in its own repo (<code>github.com/AstralZX/keru</code>) — plain static HTML, pure black, no framework. Rationale: keep it framework-free to match the ethos, splitting the documentation from the code it documents.</p>
|
||||
|
||||
<div class="callout">None of these are dogma — they're recorded because they're decisions, and decisions are meant to be repeatable or revisitble. This page is where revisiting starts.</div>
|
||||
</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>
|
||||
@@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>The philosophy is the architecture — Keru OS news</title>
|
||||
<meta name="description" content="Why Keru's 'you choose everything' claim is structural, not a slogan.">
|
||||
<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> / <a href="../news.html">news</a> / philosophy is the architecture</p>
|
||||
<h1>The philosophy is the architecture</h1>
|
||||
<p class="meta" style="font-family:var(--mono);color:var(--ink-dim);font-size:.85rem">2026-09-01 · design</p>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<div class="wrap">
|
||||
<div class="prose">
|
||||
<p>"You choose everything" sounds like marketing. It's not — it's the shape of the code. Keru's philosophy and its architecture are the same thing, and that's the whole stability argument in miniature.</p>
|
||||
|
||||
<h3>The claim</h3>
|
||||
<p>Keru says every foundational component is a variable you resolve at install time. Here's how that's true at the structural level, not just in spirit:</p>
|
||||
|
||||
<ul class="features">
|
||||
<li><strong>The installer encodes the choices.</strong> <code>install.sh</code> presents switches and writes them into <code>make.conf</code>. Init, libc, fs, kernel, sudo, net — each a line.</li>
|
||||
<li><strong>The profile is the only interface.</strong> <code>make.conf</code> is what the build reads. There's no hidden stack to override your choices; the choices <em>are</em> the input.</li>
|
||||
<li><strong>Kama executes, doesn't decide.</strong> The package manager runs recipes. It has no opinion because it has no place for one.</li>
|
||||
<li><strong>The build is a pipeline of your selections.</strong> Stage 2 builds exactly <code>$KERNEL</code>, <code>$INIT</code>, <code>$SUDO</code>, <code>$NET</code>. Nothing else is possible.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Why that matters</h3>
|
||||
<p>A distro is stable-for-its-idea when saying the thing and doing the thing are the same act. There's no gap for the machine to betray the pitch. If the pitch says "whatever you chose lands on the disk," the pipeline is materially incapable of doing anything else — because its only inputs are your choices.</p>
|
||||
|
||||
<h3>The boundary is honest too</h3>
|
||||
<p>The same architecture makes the limits visible. Choice multiplies combinations, so stability is scoped to what's offered, and risky picks get warned, not blocked — <a href="../stability.html">the warn-not-block stance</a>. That's another place the philosophy and the structure agree: the installer tells you the truth because the design has no way to hide it.</p>
|
||||
|
||||
<p>Read more in <a href="../philosophy.html">the philosophy</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>
|
||||
@@ -0,0 +1,55 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>The road to 0.1 — Keru OS news</title>
|
||||
<meta name="description" content="What has to exist before the first installable ISO ships.">
|
||||
<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> / <a href="../news.html">news</a> / road to 0.1</p>
|
||||
<h1>The road to 0.1</h1>
|
||||
<p class="meta" style="font-family:var(--mono);color:var(--ink-dim);font-size:.85rem">2026-09-01 · roadmap</p>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<div class="wrap">
|
||||
<div class="prose">
|
||||
<p>The first installable release, <strong>0.1</strong>, ships as a bootable ISO. No source builds for the user, no manual tooling — you boot it, the installer starts itself, you choose, and it builds. Here's the honest list of what has to be true before that ISO exists.</p>
|
||||
|
||||
<h3>The pipeline must actually build</h3>
|
||||
<ul class="features">
|
||||
<li><strong>Toolchain bootstrap on real hardware.</strong> binutils → gcc → libc → toolchain, from literal nothing. This is the hard step; source distros live or die here.</li>
|
||||
<li><strong>A working base set.</strong> <code>base</code>, <code>toolchain</code>, <code>openssh</code>, and the tooling each swappable needs, all building against the chosen libc.</li>
|
||||
<li><strong>Every offered combo, proven.</strong> The stability promise is "stable on what we offer" — so the offering must be curated to what's tested.</li>
|
||||
</ul>
|
||||
|
||||
<h3>The ISO must boot and install</h3>
|
||||
<ul class="features">
|
||||
<li><strong>live/init works.</strong> The ISO boots, mounts virtual filesystems, and hands you the installer with no prompt in the way.</li>
|
||||
<li><strong>Network gate works.</strong> Connectivity check, <code>nmtui</code> handoff, re-check loop — the hard requirement handled gracefully.</li>
|
||||
<li><strong>The installer writes a correct profile.</strong> Menus → make.conf → build, with the stability checks warning (never blocking) along the way.</li>
|
||||
<li><strong>The installed system boots.</strong> First boot runs the init you chose, on the filesystem you chose, with the kernel you chose. Fixed at first boot.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Honesty about the present</h3>
|
||||
<p>Right now the design is public, the repos are live, and this site documents it all — but nothing has booted on hardware yet. The gap between "the architecture is sound" and "0.1 exists" is exactly the work in this roadmap. We're not pretending it's done; we're saying plainly what remains.</p>
|
||||
|
||||
<div class="callout">When 0.1 lands, it will be linked here and on the <a href="../install.html">install page</a>. Until then, progress shows up in the <a href="../news.html">news</a>.</div>
|
||||
</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>
|
||||
Reference in New Issue
Block a user