53 lines
3.0 KiB
HTML
53 lines
3.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>C libraries — Keru OS</title>
|
|
<meta name="description" content="Choose your C library with Keru: glibc, musl, or uclibc-ng. The foundation under your whole system.">
|
|
<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="swappables.html">swappables</a> / libcs</p>
|
|
<h1>C libraries</h1>
|
|
<p>The foundation under everything that runs.</p>
|
|
</header>
|
|
|
|
<section>
|
|
<div class="wrap">
|
|
<div class="prose">
|
|
<p>Every C program on your system links against a C library. It's the floor under userspace: <code>malloc</code>, <code>printf</code>, thread primitives, the syscall wrappers, all of it. Keru lets you choose which floor the rest of your system stands on.</p>
|
|
</div>
|
|
|
|
<div class="grid grid-3" style="margin-top:30px">
|
|
<div class="card"><span class="h">glibc</span><p>The default, and the most compatible. Maximal feature set, broadest software support, the ecosystem baseline.</p></div>
|
|
<div class="card"><span class="h">musl</span><p>Small, fast, clean implementation. MIT-licensed, statically-friendly, famous for strict correctness and small binaries.</p></div>
|
|
<div class="card"><span class="h">uclibc-ng</span><p>The maintained fork of uClibc — designed for embedded and minimal systems, tiny footprint, configurable.</p></div>
|
|
</div>
|
|
|
|
<div class="prose" style="margin-top:34px">
|
|
<h3>Why this is a choice</h3>
|
|
<p>Binary distributions can't really offer this — a prebuilt package set is glued to one libc. A source-only distribution can, because it compiles everything against whatever you picked. Keru carries that through: your chosen libc is bootstrapped first (in the toolchain stage), and every package is built against it.</p>
|
|
|
|
<h3>Stability notes</h3>
|
|
<p>musl and uclibc-ng are early-0.1 territory. The installer's stability check currently flags <code>uclibc-ng</code> combinations as not-yet-proven, and <code>musl + systemd</code> as a known-hard pairing. Warnings — never blocks. <a href="stability.html">The stance.</a></p>
|
|
|
|
<div class="callout">glibc is the default for a reason: it's the widest path. But "the path everyone takes" is an argument, not a law — and in Keru, you make the call.</div>
|
|
|
|
<p><a href="swappables.html">← All swappables</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> |