takana

takana · de takay: golpear, martillar

takana · from takay: to strike, to hammer

takana

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

Por qué dos pisos y no unoWhy two floors and not one

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.

Las tres piezas del medioThe three pieces in between

  • Overlay de experimentación. Probás un cambio sobre el sistema real con red: try, commit, discard.Experimentation overlay. Try a change on the real system with a safety net: try, commit, discard.
  • Diario de mutaciones. Un demonio 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.
  • Manifiesto .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

Qué anda y qué noWhat works and what doesn't

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🟢 869Recetas 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 distroInstalable 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

Qué tiene que ver con tawasuyuHow it relates to tawasuyu

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.