Files
brahman/crates/init/SDD.md
T
sergio b83d40a833 refactor(naming): A1 — ente→arje, vista→revista, pluma→fana
Rename batch de la Fase A del PLAN_MACRO:
- 25 crates ente-* → arje-* (protocol/init/runtime/compat). El linaje
  arje (init Linux) queda con prefijo coherente.
- vista → revista (revista-core + revista-web).
- pluma → fana (fana-md + fana-md-reader-web). fana absorbe el linaje
  markdown de pluma; será el writer DAG editor (prioridad alta).

Cambios:
- git mv de 29 crate dirs + 2 SDDs
- package/lib/bin names + path refs + imports .rs reescritos
- workspace Cargo.toml + comentarios de sección
- SDDs de init/runtime/compat/protocol actualizados a arje-
- SDD de revista + SDD de fana (reescrito: writer DAG editor)
- docs/STATUS.md, ROADMAP.md, PLAN_MACRO.md, arje-boot.md,
  arje-replace-systemd.md actualizados
- docs/changelog/akasha.md → chasqui.md

scripts/rename-fase-a.py idempotente (--dry-run soportado).
cargo check --workspace verde.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 00:10:14 +00:00

37 lines
1.6 KiB
Markdown

# init/ — Init (PID 1) y encarnación Linux
**Propósito.** `arje-zero` arranca como PID 1 del fractal. Provee el
bucle primordial (reap + bus + handshake), bootstrap del kernel
surface, encarnación de Cards en procesos aislados con namespaces +
cgroups, y snapshot/restore del grafo.
## Crates
| crate | tipo | rol |
| ---------------- | ------- | ----------------------------------------------------- |
| `arje-zero` | binario | PID 1: reap + handshake server + bus dispatcher |
| `arje-kernel` | lib | `bootstrap_kernel_surface`, subreaper, SIGCHLD/uevent |
| `arje-soma` | lib | Wrapper 44 LOC sobre `arje-incarnate` (compat API) |
| `arje-incarnate` | lib | `clone(2) + namespaces + cgroup + rlimits + cpu` |
| `arje-snapshot` | lib | `FractalSnapshot` JSON: checkpoint del grafo Cards |
## Dependencias
- `arje-kernel``nix`, `libc`, syscalls Linux puras.
- `arje-incarnate` reusable: shuma (sandboxes) y supervisores no-PID-1.
- Consume `protocol/` (handshake server, brahman-net opcional).
## Boot path
1. Kernel pasa control → `arje-zero` arranca como `/sbin/init`.
2. Levanta sockets: `/run/brahman/bus`, `/run/brahman/handshake`.
3. Lee `Card` semilla (`seeds/arje-{minimal,host,prod}.card.json`).
4. Para cada `genesis` child Card: `incarnate(card)` → spawn aislado.
5. Reap loop atiende SIGCHLD; bus loop atiende anuncios/invokes.
## Estado
Funciona bare metal + QEMU + initramfs (ver `docs/arje-boot.md`). LOC
~2.2K en init core. Pendiente: cobertura de tests sobre snapshot
restore en escenarios con stale fds.