Initial scaffold
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# Keru OS
|
||||
|
||||
An independent, source-only Linux distribution built around one idea: you
|
||||
don't install a system, you *craft* one.
|
||||
|
||||
This repository holds the **operating system itself** — the installer, the ISO
|
||||
build tooling, the profile system, and the build pipeline. The two things Keru
|
||||
depends on live in their own repositories:
|
||||
|
||||
- **[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, and the install image is assembled by hand
|
||||
rather than with a stock tool like archiso.
|
||||
|
||||
Runit handles services. The standard Linux kernel drives the hardware.
|
||||
`nmtui` manages networking. Nothing you didn't ask for ends up on the disk.
|
||||
|
||||
## The differentiator: craft your system at install time
|
||||
|
||||
Keru's installer is a TUI that walks you through designing your exact machine
|
||||
*before* it ever boots:
|
||||
|
||||
- **init system** — Runit (default), s6, OpenRC, systemd
|
||||
- **C library** — glibc or musl
|
||||
- **filesystem** — ext4, btrfs, xfs, zfs, f2fs
|
||||
- **kernel** — linux, linux-lts, linux-hardened
|
||||
|
||||
Swappable at install time, fixed at first boot. The system that lands on your
|
||||
disk is precisely the one you chose.
|
||||
|
||||
## Repository layout
|
||||
|
||||
```
|
||||
installer/ TUI installer — writes make.conf from your choices
|
||||
iso/ from-scratch ISO build tooling (xorriso + squashfs + syslinux)
|
||||
profile/ make.conf template (the swappables + build flags)
|
||||
scripts/ build pipeline: build-root, mkfs-root, common helpers
|
||||
docs/ design docs + the recipe format spec
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
The three repos should sit next to each other (or point at each other via
|
||||
`KAMA_DIR` / `PKGS_DIR` / `PKGDIR`):
|
||||
|
||||
```
|
||||
~/dev/
|
||||
├── KeruOS/
|
||||
├── kama/
|
||||
└── kama-packages/
|
||||
```
|
||||
|
||||
Then, from `KeruOS/`:
|
||||
|
||||
```sh
|
||||
make install # run the TUI installer
|
||||
# or, headlessly:
|
||||
sh scripts/build-root.sh # build a rootfs into /tmp/keru/root
|
||||
make iso # assemble an install image
|
||||
```
|
||||
|
||||
Requires the sibling `kama` and `kama-packages` repos to be present.
|
||||
|
||||
## Status
|
||||
|
||||
Design + scaffolding. Nothing is building end-to-end yet.
|
||||
|
||||
## License
|
||||
|
||||
AGPL-3.0
|
||||
Reference in New Issue
Block a user