takana · de takay: golpear, martillar
takana · from takay: to strike, to hammer
Una distribución de Linux con dos pisos: abajo un laboratorio hermético que compila todo desde fuente y guarda cada artefacto por su hash; arriba un Linux clásico y mutable donde se puede romper cosas y volver atrás.
A Linux distribution with two floors: downstairs a hermetic laboratory that compiles everything from source and stores each artefact by its hash; upstairs a classic, mutable Linux where you can break things and go back.
01 · los dos pisos01 · the two floors
Una distribución inmutable te da reproducibilidad y te quita la máquina: no podés tocar nada sin aprender un lenguaje declarativo primero. Una clásica te deja tocar todo y no te puede decir de dónde salió un binario. takana pone las dos, en pisos separados.
An immutable distribution gives you reproducibility and takes the machine away: you cannot touch anything without learning a declarative language first. A classic one lets you touch everything and cannot tell you where a binary came from. takana has both, on separate floors.
El laboratorio compila desde fuentes upstream con commits fijados, aislado (bubblewrap + zig cc + musl estático), y direcciona cada artefacto por su hash BLAKE3. El userland es un Linux normal, con /bin, /lib y /etc de verdad; los binarios se hidratan del almacén por enlaces duros. Podés pisar archivos en caliente y revertir cuando quieras.
The laboratory compiles from upstream sources at pinned commits, sandboxed (bubblewrap + zig cc + static musl), and addresses each artefact by its BLAKE3 hash. The userland is an ordinary Linux, with a real /bin, /lib and /etc; binaries are hydrated from the store by hard links. You can overwrite files live and revert whenever you want.
try, commit, discard.Experimentation overlay. Try a change on the real system with a safety net: try, commit, discard.fanotify registra todo lo que cambiás a mano. Vivís de forma imperativa y el sistema calcula el delta contra la base limpia — el diario ES tu configuración.Mutation journal. A fanotify daemon records everything you change by hand. You live imperatively and the system computes the delta against the clean base — the journal IS your configuration..swm. Compartís la receta de la mutación —parche de fuente, banderas, ediciones de config—, no el binario cocinado. Quien lo recibe lo reproduce y lo verifica..swm manifest. You share the recipe for the mutation — source patch, flags, config edits — not the cooked binary. Whoever receives it reproduces and verifies it.02 · el estado, medido02 · the state, measured
| PiezaPiece | EstadoState | Qué quiere decirWhat that means |
|---|---|---|
| Núcleo del laboratorioLaboratory core | 🟢 | Compila aislado y direcciona por hash BLAKE3.Sandboxed builds, BLAKE3 content addressing. |
| Auto-hospedajeSelf-hosting | 🟢 | El toolchain se reconstruye a sí mismo dentro de una máquina virtual, bit por bit igual.The toolchain rebuilds itself inside a VM, bit for bit identical. |
| Kernel propioOwn kernel | 🟢 | Linux compilado acá, que arranca la máquina y se reproduce idéntico.Linux built here, boots the machine and reproduces identically. |
| Cadena Rust/LLVMRust/LLVM chain | 🟢 | De mrustc a rustc, sin binarios ajenos de confianza.From mrustc up to rustc, with no trusted foreign binaries. |
Paquetería .swm.swm packaging | 🟢 | Empaquetar, repositorio firmado, instalar, desinstalar, dependencias, repo por red.Package, signed repository, install, uninstall, dependencies, network repo. |
| CatálogoCatalogue | 🟢 869 | Recetas en el catálogo, compiladas por una granja que promueve las que funcionan.Recipes in the catalogue, built by a farm that promotes the ones that work. |
| Instalar en disco realInstall on a real disk | 🟡 | Las imágenes EFI/ISO existen; el instalador desde el vivo está a medias.EFI/ISO images exist; the installer from the live system is half done. |
| Userland en RustRust userland | 🟡 | coreutils y findutils de uutils ya construyen y corren.uutils coreutils and findutils already build and run. |
| Distro redondaA rounded distro | ⚪ | Instalable por alguien que no la escribió. Todavía no.Installable by somebody who didn't write it. Not yet. |
Lo más difícil ya está: no dependemos de binarios precocidos de nadie. Partiendo de un compilador mínimo, takana reconstruye su propio Rust, su propio kernel y sus propias herramientas — y al hacerlo dos veces da exactamente el mismo resultado. Eso se probó dentro de una máquina virtual, no en teoría.
The hardest part is done: we depend on nobody's precooked binaries. Starting from a minimal compiler, takana rebuilds its own Rust, its own kernel and its own tools — and doing it twice gives exactly the same result. That was proved inside a virtual machine, not in theory.
03 · la frontera03 · the border
takana es el suelo; tawasuyu es lo que se para encima. No son dos mundos sueltos: comparten el almacén direccionado por contenido (BLAKE3), un bus entre el init de tawasuyu y el demonio de takana con contrato por bytes, el grafo de arranque, y arje —el proceso número uno de tawasuyu— como init de las imágenes, estático contra musl.
takana is the ground; tawasuyu is what stands on it. They are not two loose worlds: they share the content-addressed store (BLAKE3), a bus between tawasuyu's init and takana's daemon with a byte-level contract, the boot graph, and arje — tawasuyu's process number one — as the init of the images, statically linked against musl.
Lo que sigue abierto está escrito y priorizado, no supuesto: consenso de reconstrucción M-de-N, y explicar por qué difiere cuando dos compilaciones no dan el mismo hash.
What is still open is written down and prioritised, not assumed: M-of-N rebuild consensus, and explaining why it differs when two builds don't produce the same hash.