gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

⎇ main recipes/simi.toml TOML · 45 líneas · 2.5 KB Historia crudo

bump(takana): las 5 recetas de nuestro propio repo saltan juntas a c0ded9ac 88d721118 · Sergio ·

1# simi — el `/bin/sh` del producto. Código takana-PROPIO, no una adopción.
2#
3# Mismo patrón de receta que netup/hammerd/arje-zero: construye un crate del workspace a un commit
4# fijado, deps vendoreadas para build hermético `--offline`, link estático con zig cc. Sólo depende
5# de libc ⇒ vendor mínimo.
6#
7# Por qué propio y no adoptado (ver `docs/plan-botar-busybox.md`): el único candidato Rust maduro es
8# brush, y se midió — 6,9 MB contra 1,17 del busybox entero, 4,1× la latencia de arranque, y dos
9# divergencias POSIX medidas (reubeno/brush#1394 y #1396, las dos reportadas por nosotros). simi son
10# 4448 líneas con CERO divergencias contra el ash de busybox en los 159 casos del banco diferencial.
11#
12# SELLADA en el worker el 2026-09-21: `b3:46ff6fcf67bd23dece4d130c92855908520200f88ca85981317f81fcc56bb834`
13# ELF x86-64 **estático** (verificado por `scripts/static-audit.sh simi`: «estáticos de verdad: 1,
14# MIENTEN: 0»), stripped, **498 736 bytes**. Contra el artefacto sellado, no contra el build del hub:
15#   · banco diferencial, 159 casos vs el ash de busybox 1.36.1 → **0 divergencias** (bash: 8, brush: 35)
16#   · latencia de arranque **468 µs contra 449 µs del ash — 1,04×** (brush: 1569 µs, 3,5×)
17#
18# ⚠ Todavía NO está en ningún perfil de `docs/state/targets.toml`, y es a propósito: declararla es
19# meterla en la raíz de confianza del arranque (frente C) y eso es su propia unidad de trabajo.
20
21name    = "simi"
22version = "0.0.1"
23license = "MIT"
24
25[source]
26# El propio takana. El commit es el identificador inmutable; subirlo cuando simi avance.
27repo   = "https://git.gioser.net/sergio/takana.git"
28commit = "c0ded9acb285ee6c7c6b191590c9635a6242a274"
29
30[build]
31compiler = "zig-cc"
32target   = "x86_64-linux-musl"
33link     = "static"
34
35# Split de la info de depuración, igual que hammerd. Entra en `hash_inputs`.
36strip_debug = true
37# Sólo el binario `simi` del workspace.
38flags    = ["-p", "simi"]
39
40# Sin `[build.phases]`: igual que hammerd y netup, el BuildSys::Cargo del lab instala el binario del
41# crate. **El symlink `sh` NO lo pone esta receta**, y eso es a propósito: quién gana como `/bin/sh`
42# lo decide el ensamblado del producto (`USERLAND_COMPONENTS` en `crates/takana-bootstrap/src/lib.rs`,
43# que hidrata el userland Rust DESPUÉS de busybox para que ensombrezca sus applets, y `lib.rs:676`,
44# que retira el homónimo de los otros directorios). Ese cableado es frente C y es su propia unidad de
45# trabajo: mete a simi en la raíz de confianza del arranque, y eso no se hace de paso.