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>
This commit is contained in:
+8
-8
@@ -59,7 +59,7 @@
|
||||
|
||||
| módulo | rol | LOC aprox proyectada |
|
||||
|---|---|---|
|
||||
| `carmen` | compositor Wayland (smithay + ente-incarnate sandbox + delegación de regiones) | 8,000-12,000 |
|
||||
| `carmen` | compositor Wayland (smithay + arje-incarnate sandbox + delegación de regiones) | 8,000-12,000 |
|
||||
| `akashi` | notes app con ECS + 4 lentes + gravedad semántica + Susurros | 10,000-15,000 |
|
||||
| `charka` | transpilador COBOL→Rust + runtime determinista + shadow validator | 25,000-50,000 |
|
||||
| `matilda` | administrador servidores + vhosts + Docker (con Ghost remoto) | 6,000-9,000 |
|
||||
@@ -97,8 +97,8 @@
|
||||
│ init/ │ │ runtime/ │ │ compat/ │
|
||||
└────┬────┘ └────┬─────┘ └──────────┘
|
||||
│ │
|
||||
│ ente-incarnate │ brain-split: rules, cognitive, audit
|
||||
│ (+ pivot_root, │ ente-cas, ente-bus, ente-wasm
|
||||
│ arje-incarnate │ brain-split: rules, cognitive, audit
|
||||
│ (+ pivot_root, │ arje-cas, arje-bus, arje-wasm
|
||||
│ overlayfs) │
|
||||
│ │
|
||||
└──────────┬────────┘
|
||||
@@ -160,7 +160,7 @@ Pre-requisitos antes de meter código nuevo. La mayoría paralelizable.
|
||||
| #13 | Split brain en brain-rules + brain-cognitive + brain-audit | sandokan, ágora | 3-5 días |
|
||||
| #14 | Unificar loader en brahman-cards | reduce duplicación | 1-2 días |
|
||||
| #16 | Promover lifecycle a sandokan-lifecycle | sandokan, matilda, charka-shadow, carmen | 4-7 días |
|
||||
| #19 | pivot_root + overlayfs en ente-incarnate | carmen, matilda Ghost, sandokan completo | 4-7 días |
|
||||
| #19 | pivot_root + overlayfs en arje-incarnate | carmen, matilda Ghost, sandokan completo | 4-7 días |
|
||||
| #20 | transport-ssh-multiplex | sandokan::RemoteEngine, matilda | 3-5 días |
|
||||
|
||||
Trabajo paralelo posible: 3-4 tracks. Estimación realista: **2 semanas**.
|
||||
@@ -187,8 +187,8 @@ Módulos de dominio que pueden empezar cuando sus deps de Fase B estén estables
|
||||
| #27 | dominium | (mayormente independiente) | 3-6K | 3-4 semanas |
|
||||
| #26 | takiy | dime (instancia ort) | 5-8K | 4-6 semanas |
|
||||
| #23 | akashi | dime (instancia 384d), separabilidad UI | 10-15K | 6-10 semanas |
|
||||
| #21 | matilda | sandokan-lifecycle, ente-incarnate enhanced, transport-ssh | 6-9K | 5-8 semanas |
|
||||
| #29 | carmen | ente-incarnate enhanced, sandokan, ente-logind-compat | 8-12K | 8-12 semanas |
|
||||
| #21 | matilda | sandokan-lifecycle, arje-incarnate enhanced, transport-ssh | 6-9K | 5-8 semanas |
|
||||
| #29 | carmen | arje-incarnate enhanced, sandokan, arje-logind-compat | 8-12K | 8-12 semanas |
|
||||
| #31 | ágora | CardKind extension, discovery-dht, brain-audit | 6-10K | 5-8 semanas |
|
||||
|
||||
Paralelizable hasta 4-6 tracks simultáneos. Estimación realista: **10-12 semanas**.
|
||||
@@ -312,7 +312,7 @@ Para considerar cada fase "cerrada":
|
||||
- [ ] `cargo check --workspace` verde tras rename a chasqui
|
||||
- [ ] brain split: 3 crates separados, brain umbrella opcional, loader unificado
|
||||
- [ ] sandokan-lifecycle extraído con tests pasando que cubren shuma's lifecycle existente
|
||||
- [ ] ente-incarnate con pivot_root + overlayfs + tests (chroot básico)
|
||||
- [ ] arje-incarnate con pivot_root + overlayfs + tests (chroot básico)
|
||||
- [ ] transport-ssh-multiplex con tests sobre russh
|
||||
|
||||
**Fase B**:
|
||||
@@ -325,7 +325,7 @@ Para considerar cada fase "cerrada":
|
||||
- [ ] takiy: latencia audio <10ms; persistencia ambos formatos
|
||||
- [ ] akashi: 4 lentes implementadas; Susurros activos; storage sqlite-vss funcional
|
||||
- [ ] matilda: Inspect/Diff/Apply ciclo cerrado; al menos provider Docker funcional
|
||||
- [ ] carmen: arranca compositor; renderea alacritty; sandbox via ente-incarnate
|
||||
- [ ] carmen: arranca compositor; renderea alacritty; sandbox via arje-incarnate
|
||||
- [ ] ágora: emite + verifica + revoca attestations; grafo navegable; integrado con CardKind
|
||||
|
||||
**Fase D**:
|
||||
|
||||
+6
-6
@@ -7,7 +7,7 @@ impacto (lo que desbloquea más trabajo).
|
||||
|
||||
- [x] Split core/ → protocol + init + runtime + compat
|
||||
- [x] Renames: shipote→shuma, nouser→akasha, yahweh→nahual, lapaloma→pineal
|
||||
- [x] Fraccionamiento: vista-core, barra-core extraídos
|
||||
- [x] Fraccionamiento: revista-core, barra-core extraídos
|
||||
- [x] SDDs por subdirectorio
|
||||
- [x] CHANGELOG particionado por proyecto
|
||||
- [x] `cargo check --workspace` pasa
|
||||
@@ -44,7 +44,7 @@ montable (editor abriendo paths semánticos).
|
||||
|
||||
| Crate | TODOs | Trabajo |
|
||||
| ---------------------- | ----- | ----------------------------------------- |
|
||||
| `ente-brain` | 11 | Rule engine declarativo + observer |
|
||||
| `arje-brain` | 11 | Rule engine declarativo + observer |
|
||||
| `shuma-core` | 14 | Supervisión avanzada (restart + health) |
|
||||
| `brahman-handshake` | 10 | Trust fase 4 (revocaciones, beyond peer) |
|
||||
| `cosmobiologia-engine` | 12 | Sistema GR + harmonics (tareas #55-#63) |
|
||||
@@ -71,9 +71,9 @@ Memorias del proyecto detallan:
|
||||
|
||||
| Shim | Métodos pendientes |
|
||||
| --------------------- | ------------------------------------ |
|
||||
| `ente-logind-compat` | `Inhibit`, `Sleep` hooks |
|
||||
| `ente-localed-compat` | `SetVariable` |
|
||||
| `ente-machined-compat`| `MachineImage` operations |
|
||||
| `arje-logind-compat` | `Inhibit`, `Sleep` hooks |
|
||||
| `arje-localed-compat` | `SetVariable` |
|
||||
| `arje-machined-compat`| `MachineImage` operations |
|
||||
|
||||
Permite correr GNOME/KDE end-to-end sin parches.
|
||||
|
||||
@@ -94,4 +94,4 @@ solitario; ~3-4 si se paraleliza (hito 1 con hito 6 son disjuntos).
|
||||
- 0 stubs `<50 LOC` que no sean intencionales.
|
||||
- `minga-vfs` montable como `mount.minga`.
|
||||
- Cosmobiología cubriendo: cartas natales, dial GR, harmonics, 3D, rectificación.
|
||||
- GNOME Shell arrancable sobre `arje` (Init = `ente-zero`) sin parches.
|
||||
- GNOME Shell arrancable sobre `arje` (Init = `arje-zero`) sin parches.
|
||||
|
||||
+6
-6
@@ -5,7 +5,7 @@ y `grep` sobre `src/` en cada crate (sin contar `target/` ni docs).
|
||||
|
||||
## Resumen ejecutivo
|
||||
|
||||
- **126 crates** activos en el workspace (124 originales + `vista-core` + `barra-core`).
|
||||
- **126 crates** activos en el workspace (124 originales + `revista-core` + `barra-core`).
|
||||
- **~78.000 LOC** de Rust en `crates/`.
|
||||
- **Build pasa** (`cargo check --workspace`) tras el reorg del 2026-05-19.
|
||||
- **2 warnings** no bloqueantes (variant unused + eternal-validation).
|
||||
@@ -33,8 +33,8 @@ Bootea bare metal + QEMU + initramfs. Pendiente: cobertura tests sobre
|
||||
|---|---|---|---|
|
||||
| 3,418 | parcial | ~14 | ★★★☆☆ |
|
||||
|
||||
`ente-brain` concentra 11 TODOs (rule engine declarativo + observer
|
||||
estadístico). `ente-bus`/`ente-cas`/`ente-wasm` estables.
|
||||
`arje-brain` concentra 11 TODOs (rule engine declarativo + observer
|
||||
estadístico). `arje-bus`/`arje-cas`/`arje-wasm` estables.
|
||||
|
||||
### `compat/` — Cobertura mínima viable
|
||||
| LOC | Tests | TODOs | Madurez |
|
||||
@@ -100,19 +100,19 @@ avanzada (restart policies + health checks).
|
||||
|
||||
Landing WASM operativa. 4 crates agnósticos + cdylib + scripts de build.
|
||||
|
||||
### `modules/pluma/` — Funcional, pequeño
|
||||
### `modules/fana/` — Funcional, pequeño
|
||||
| LOC | Tests | TODOs | Madurez |
|
||||
|---|---|---|---|
|
||||
| 178 | no | 0 | ★★★☆☆ |
|
||||
|
||||
Parser + reader web. Pendiente: AST con inline elements (links, emphasis).
|
||||
|
||||
### `modules/vista/` — Refactorizado (2026-05-19)
|
||||
### `modules/revista/` — Refactorizado (2026-05-19)
|
||||
| LOC | Tests | TODOs | Madurez |
|
||||
|---|---|---|---|
|
||||
| ~530 (177 core + ~350 web) | core: 5/5 verdes | 0 | ★★★★☆ |
|
||||
|
||||
`vista-core` agnóstico nuevo + `vista-web` ahora thin DOM binding.
|
||||
`revista-core` agnóstico nuevo + `revista-web` ahora thin DOM binding.
|
||||
|
||||
### `modules/barra/` — Refactorizado (2026-05-19)
|
||||
| LOC | Tests | TODOs | Madurez |
|
||||
|
||||
+30
-30
@@ -1,9 +1,9 @@
|
||||
# Booteando arje — initramfs, QEMU y bare metal
|
||||
|
||||
`arje` es el init absorbido por brahman: `ente-zero` corre como PID 1, lee
|
||||
`arje` es el init absorbido por brahman: `arje-zero` corre como PID 1, lee
|
||||
la **Tarjeta Semilla** (`/ente/seed.card.json`), monta `/proc /sys /dev
|
||||
/sys/fs/cgroup`, y encarna recursivamente cada Card declarada en
|
||||
`genesis` vía `ente-incarnate::Incarnator` (`clone(2)` + namespaces + cgroup v2).
|
||||
`genesis` vía `arje-incarnate::Incarnator` (`clone(2)` + namespaces + cgroup v2).
|
||||
|
||||
Este documento describe el ciclo completo:
|
||||
|
||||
@@ -21,11 +21,11 @@ Este documento describe el ciclo completo:
|
||||
El initrd es un **CPIO + gzip** (formato `newc`, estándar Linux). Su raíz:
|
||||
|
||||
```
|
||||
/init wrapper sh, ejecuta /sbin/ente-zero
|
||||
/sbin/ente-zero PID 1 (musl-static por default)
|
||||
/usr/sbin/ente-echo
|
||||
/usr/sbin/ente-policy-provider
|
||||
/usr/sbin/ente-*-compat 13 shims D-Bus (logind, hostnamed, …)
|
||||
/init wrapper sh, ejecuta /sbin/arje-zero
|
||||
/sbin/arje-zero PID 1 (musl-static por default)
|
||||
/usr/sbin/arje-echo
|
||||
/usr/sbin/arje-policy-provider
|
||||
/usr/sbin/arje-*-compat 13 shims D-Bus (logind, hostnamed, …)
|
||||
/usr/bin/brahman-status CLI: snapshot del broker (sesiones + matches)
|
||||
/usr/bin/busctl CLI: bus interno (list-entes, announce, …)
|
||||
/usr/bin/brainctl CLI: cerebro (rules, entropy, crystals)
|
||||
@@ -36,14 +36,14 @@ El initrd es un **CPIO + gzip** (formato `newc`, estándar Linux). Su raíz:
|
||||
```
|
||||
|
||||
Path canónico de la semilla en **prod**: `/ente/seed.card.json` (ver
|
||||
`crates/core/ente-zero/src/seed.rs`). En **dev** (no PID 1):
|
||||
`crates/core/arje-zero/src/seed.rs`). En **dev** (no PID 1):
|
||||
`./seed.card.json` en el cwd, o se sintetiza una mínima.
|
||||
|
||||
## 2. Build del initrd
|
||||
|
||||
### 2a. Por qué musl-static
|
||||
|
||||
`ente-zero` corre como **PID 1**: si tiene cualquier dependencia dinámica
|
||||
`arje-zero` corre como **PID 1**: si tiene cualquier dependencia dinámica
|
||||
(`libgcc_s.so.1`, `libc.so.6`, `ld-linux-x86-64.so.2`) que no está
|
||||
presente en el initramfs, el kernel paniquea con
|
||||
`error while loading shared libraries: libgcc_s.so.1`.
|
||||
@@ -96,7 +96,7 @@ ARJE_TARGET=x86_64-unknown-linux-gnu scripts/build-arje-initrd.sh
|
||||
1. Verifica que el target musl esté instalado; si no, da el comando
|
||||
exacto para instalarlo.
|
||||
2. `cargo build --release --target x86_64-unknown-linux-musl` para
|
||||
`ente-zero` + los 14 shims compat.
|
||||
`arje-zero` + los 14 shims compat.
|
||||
3. Sanity-check con `file`: aborta si algún binario quedó dinámico.
|
||||
4. Valida la seed con `seeds/validate.sh` (parse + `Card::validate`).
|
||||
5. Verifica que `busybox` sea estático (también aborta si es dinámico).
|
||||
@@ -164,9 +164,9 @@ wget -O /tmp/vmlinuz \
|
||||
| `loglevel=7` | log del kernel hasta debug |
|
||||
| `quiet` | silencia banner kernel |
|
||||
| `RUST_LOG=trace` | (no se interpreta; usar env en `/init`) |
|
||||
| `init=/sbin/ente-zero` | salta `/init`, ejecuta directo (no recomendado) |
|
||||
| `init=/sbin/arje-zero` | salta `/init`, ejecuta directo (no recomendado) |
|
||||
|
||||
`ente-zero` lee `RUST_LOG` y `BRAHMAN_*` del env. Para setearlas, editar
|
||||
`arje-zero` lee `RUST_LOG` y `BRAHMAN_*` del env. Para setearlas, editar
|
||||
`/init` antes de empaquetar, o agregar `-fw_cfg name=opt/foo,...` a qemu.
|
||||
|
||||
### 3d. Smoke test esperado
|
||||
@@ -174,9 +174,9 @@ wget -O /tmp/vmlinuz \
|
||||
Con `seeds/arje-prod.card.json`:
|
||||
|
||||
```
|
||||
ente-zero despierta como PID 1
|
||||
arje-zero despierta como PID 1
|
||||
Tarjeta Semilla cargada y validada path=/ente/seed.card.json
|
||||
bus interno escuchando path=/run/ente-bus.sock
|
||||
bus interno escuchando path=/run/arje-bus.sock
|
||||
brahman handshake escuchando (Unix) socket=/run/brahman-init.sock
|
||||
brahman admin escuchando socket=/run/brahman-admin.sock
|
||||
instanciando genesis seed=arje.seed.prod count=16
|
||||
@@ -242,8 +242,8 @@ de implementar como `Capability::SwitchRoot`.
|
||||
seeds/validate.sh seeds/arje-prod.card.json
|
||||
```
|
||||
|
||||
El script carga la Card vía `ente_brain::load_card_file()` (que llama a
|
||||
`brahman_card::Card::validate()`) y verifica que `ente-zero` la encarne
|
||||
El script carga la Card vía `arje_brain::load_card_file()` (que llama a
|
||||
`brahman_card::Card::validate()`) y verifica que `arje-zero` la encarne
|
||||
hasta `instanciando genesis`.
|
||||
|
||||
### 5c. Customizar
|
||||
@@ -294,7 +294,7 @@ Validación clave (`brahman_card::Card::validate`):
|
||||
|
||||
### 6a. Tracing
|
||||
|
||||
`ente-zero` usa `tracing-subscriber`. Default: `ente_zero=debug,info`.
|
||||
`arje-zero` usa `tracing-subscriber`. Default: `arje_zero=debug,info`.
|
||||
Override con `RUST_LOG`:
|
||||
|
||||
```bash
|
||||
@@ -309,10 +309,10 @@ los sockets caen al fallback `/tmp/`:
|
||||
|
||||
| socket | env override | servicio |
|
||||
| ---------------------------- | ----------------------- | ----------------------------------------- |
|
||||
| `/tmp/ente-bus-*.sock` | `ENTE_BUS_SOCK` | bus interno (Announce/Invoke/ListEntes) |
|
||||
| `/tmp/arje-bus-*.sock` | `ENTE_BUS_SOCK` | bus interno (Announce/Invoke/ListEntes) |
|
||||
| `/tmp/brahman-init.sock` | `BRAHMAN_INIT_SOCKET` | handshake brahman |
|
||||
| `/tmp/brahman-admin.sock` | `BRAHMAN_ADMIN_SOCKET` | snapshots de sesiones + matches |
|
||||
| `/tmp/ente-brain.sock` | `ENTE_BRAIN_SOCK` | introspección del cerebro (rules, observer) |
|
||||
| `/tmp/arje-brain.sock` | `ENTE_BRAIN_SOCK` | introspección del cerebro (rules, observer) |
|
||||
|
||||
El initrd trae 3 CLI clients precompilados en `/usr/bin/`:
|
||||
|
||||
@@ -351,7 +351,7 @@ arje# busctl list-entes
|
||||
|
||||
arje# brainctl top 5
|
||||
spawn 14
|
||||
ente_died 0
|
||||
arje_died 0
|
||||
…
|
||||
```
|
||||
|
||||
@@ -365,8 +365,8 @@ arje# socat - UNIX-CONNECT:/tmp/brahman-admin.sock | jq .
|
||||
### 6c. Snapshot / restore
|
||||
|
||||
```
|
||||
ente-zero --checkpoint /ente/checkpoint.json # escribe al cerrar
|
||||
ente-zero --restore /ente/checkpoint.json # reconstruye al boot
|
||||
arje-zero --checkpoint /ente/checkpoint.json # escribe al cerrar
|
||||
arje-zero --restore /ente/checkpoint.json # reconstruye al boot
|
||||
```
|
||||
|
||||
Snapshot adjunto del cerebro: `/ente/checkpoint.brain.json`.
|
||||
@@ -374,7 +374,7 @@ Snapshot adjunto del cerebro: `/ente/checkpoint.brain.json`.
|
||||
### 6d. Metrics
|
||||
|
||||
```
|
||||
ente-zero --metrics-addr 127.0.0.1:9911
|
||||
arje-zero --metrics-addr 127.0.0.1:9911
|
||||
```
|
||||
|
||||
Endpoint Prometheus desde dentro de la VM. Para exponerlo al host bajo
|
||||
@@ -382,20 +382,20 @@ QEMU, agregar `-netdev user,hostfwd=tcp::9911-:9911 -device virtio-net,netdev=
|
||||
|
||||
### 6e. Modo DEV en host (sin PID 1)
|
||||
|
||||
`ente-zero` detecta si su PID != 1 y entra en **DEV MODE**: no monta
|
||||
`arje-zero` detecta si su PID != 1 y entra en **DEV MODE**: no monta
|
||||
kernel surface, no se vuelve subreaper, sale tras 4 s. Útil para
|
||||
iterar Cards en el host:
|
||||
|
||||
```bash
|
||||
mkdir /tmp/arje-test && cp seeds/arje-minimal.card.json /tmp/arje-test/seed.card.json
|
||||
cd /tmp/arje-test && target/release/ente-zero
|
||||
cd /tmp/arje-test && target/release/arje-zero
|
||||
```
|
||||
|
||||
## 7. Troubleshooting
|
||||
|
||||
### 7a. `error while loading shared libraries: libgcc_s.so.1` al boot
|
||||
|
||||
**Causa**: el `/sbin/ente-zero` del initrd se compiló contra glibc
|
||||
**Causa**: el `/sbin/arje-zero` del initrd se compiló contra glibc
|
||||
(`x86_64-unknown-linux-gnu`) y depende dinámicamente de `libgcc_s.so.1`,
|
||||
`libc.so.6`, `ld-linux-x86-64.so.2`. Esas libs no están en el initramfs,
|
||||
el kernel mata PID 1 → panic.
|
||||
@@ -411,7 +411,7 @@ scripts/build-arje-initrd.sh # ya usa musl por default
|
||||
Verificar manualmente que el binario quedó estático:
|
||||
|
||||
```bash
|
||||
file target/x86_64-unknown-linux-musl/release/ente-zero
|
||||
file target/x86_64-unknown-linux-musl/release/arje-zero
|
||||
# → "ELF 64-bit LSB executable, ..., statically linked, ..."
|
||||
```
|
||||
|
||||
@@ -422,7 +422,7 @@ recomendado.
|
||||
|
||||
### 7b. Kernel panic: `Kernel panic - not syncing: Attempted to kill init!`
|
||||
|
||||
**Causa**: `ente-zero` salió con error antes de bind del bus, o `/init`
|
||||
**Causa**: `arje-zero` salió con error antes de bind del bus, o `/init`
|
||||
crashed antes de exec. PID 1 muriendo = panic kernel.
|
||||
|
||||
**Fix**: agregar `panic=10` al cmdline (ya está en el script) para
|
||||
@@ -464,9 +464,9 @@ target-feature=+crt-static"` o aislando el feature problemático.
|
||||
- [ ] `rustup target add x86_64-unknown-linux-musl` instalado en el host build.
|
||||
- [ ] `musl-tools` (Debian/Ubuntu) o equivalente disponible.
|
||||
- [ ] `busybox-static` disponible para vendorear userspace.
|
||||
- [ ] `cargo build --release --target x86_64-unknown-linux-musl -p ente-zero`
|
||||
- [ ] `cargo build --release --target x86_64-unknown-linux-musl -p arje-zero`
|
||||
compila sin warnings.
|
||||
- [ ] `file target/x86_64-unknown-linux-musl/release/ente-zero` reporta
|
||||
- [ ] `file target/x86_64-unknown-linux-musl/release/arje-zero` reporta
|
||||
"statically linked".
|
||||
- [ ] `seeds/validate.sh seeds/arje-prod.card.json` → OK.
|
||||
- [ ] `scripts/build-arje-initrd.sh` produce `out/arje.initrd.cpio.gz`.
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
| `/sbin/init` | NO se toca (sigue siendo systemd). |
|
||||
| `/lib/systemd/*` | NO se toca. |
|
||||
| `kernel + initramfs` | reusamos los del host (firmware, módulos, root FS). |
|
||||
| `init=` en GRUB | nueva entrada apunta a `/sbin/ente-zero`. |
|
||||
| `init=` en GRUB | nueva entrada apunta a `/sbin/arje-zero`. |
|
||||
| `GRUB_DEFAULT` | NO se cambia. Sigue arrancando systemd por default. |
|
||||
| `/ente/seed.card.json`| nueva — define qué arranca arje. |
|
||||
| `/usr/sbin/ente-*` | binarios musl-static del fractal. |
|
||||
| `/usr/sbin/arje-*` | binarios musl-static del fractal. |
|
||||
|
||||
Booteo del kernel → initramfs nativo hace su trabajo (mountea root,
|
||||
carga módulos) → cuando llega el `switch_root`, en lugar de exec
|
||||
`/lib/systemd/systemd`, exec `/sbin/ente-zero`. Esto deja firmware y
|
||||
`/lib/systemd/systemd`, exec `/sbin/arje-zero`. Esto deja firmware y
|
||||
udev fuera del scope de arje (todavía).
|
||||
|
||||
## 2. Instalación
|
||||
@@ -31,7 +31,7 @@ $EDITOR seeds/arje-host.card.json
|
||||
sudo scripts/install-arje-as-init.sh
|
||||
|
||||
# 3. (opcional) bootear arje SÓLO en el próximo reboot (no cambia default)
|
||||
sudo grub-reboot "arje (init=/sbin/ente-zero) — kernel $(uname -r)"
|
||||
sudo grub-reboot "arje (init=/sbin/arje-zero) — kernel $(uname -r)"
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
@@ -76,16 +76,16 @@ ninguno a tu seed** salvo que sepas que lo usás:
|
||||
| `gdm.service`, `lightdm.service` | DM gráfico — agregalo SÓLO si querés GUI.|
|
||||
| `NetworkManager-wait-online.service` | espera red. arje no necesita "esperar". |
|
||||
| `systemd-timesyncd.service` | reemplaza con cron-like + ntpd one-shot. |
|
||||
| `systemd-machined.service` | reemplazado por `ente-machined-compat`. |
|
||||
| `systemd-logind.service` | reemplazado por `ente-logind-compat`. |
|
||||
| `systemd-resolved.service` | reemplazado por `ente-resolved-compat`. |
|
||||
| `systemd-hostnamed.service` | reemplazado por `ente-hostnamed-compat`. |
|
||||
| `systemd-timedated.service` | reemplazado por `ente-timedated-compat`. |
|
||||
| `systemd-localed.service` | reemplazado por `ente-localed-compat`. |
|
||||
| `systemd-journald.service` | reemplazado por `ente-journald-compat`. |
|
||||
| `systemd-tmpfiles-*.service` | reemplazado por `ente-tmpfiles-compat`. |
|
||||
| `systemd-binfmt.service` | reemplazado por `ente-binfmt-compat`. |
|
||||
| `polkitd.service` | reemplazado por `ente-polkit-compat`. |
|
||||
| `systemd-machined.service` | reemplazado por `arje-machined-compat`. |
|
||||
| `systemd-logind.service` | reemplazado por `arje-logind-compat`. |
|
||||
| `systemd-resolved.service` | reemplazado por `arje-resolved-compat`. |
|
||||
| `systemd-hostnamed.service` | reemplazado por `arje-hostnamed-compat`. |
|
||||
| `systemd-timedated.service` | reemplazado por `arje-timedated-compat`. |
|
||||
| `systemd-localed.service` | reemplazado por `arje-localed-compat`. |
|
||||
| `systemd-journald.service` | reemplazado por `arje-journald-compat`. |
|
||||
| `systemd-tmpfiles-*.service` | reemplazado por `arje-tmpfiles-compat`. |
|
||||
| `systemd-binfmt.service` | reemplazado por `arje-binfmt-compat`. |
|
||||
| `polkitd.service` | reemplazado por `arje-polkit-compat`. |
|
||||
|
||||
Las últimas 12 ya están como Cards en `seeds/arje-host.card.json`. Las
|
||||
de la mitad de arriba **no** — no las agregues.
|
||||
@@ -94,11 +94,11 @@ de la mitad de arriba **no** — no las agregues.
|
||||
|
||||
| Card label | reemplaza | binario |
|
||||
| ------------------ | -------------------------- | -------------------------------------------- |
|
||||
| `tmpfiles-boot` | `systemd-tmpfiles-setup` | `/usr/sbin/ente-tmpfiles-compat --boot` |
|
||||
| `tmpfiles-boot` | `systemd-tmpfiles-setup` | `/usr/sbin/arje-tmpfiles-compat --boot` |
|
||||
| `mount-fstab` | `local-fs.target` | `/bin/mount -a` (one-shot) |
|
||||
| `swap-on` | `swap.target` | `/sbin/swapon -a` (one-shot) |
|
||||
| `dbus-system` | `dbus.service` | `/usr/bin/dbus-daemon --system --nofork` |
|
||||
| `compat-*` (×11) | shims D-Bus de systemd | `/usr/sbin/ente-*-compat` |
|
||||
| `compat-*` (×11) | shims D-Bus de systemd | `/usr/sbin/arje-*-compat` |
|
||||
| `network-dhcpcd` | `NetworkManager` / `networkd` | `/usr/sbin/dhcpcd -B` |
|
||||
| `sshd` | `ssh.service` | `/usr/sbin/sshd -D` |
|
||||
| `getty-tty1` | `getty@tty1.service` | `/sbin/agetty --noclear tty1 linux` |
|
||||
@@ -150,7 +150,7 @@ de la mitad de arriba **no** — no las agregues.
|
||||
| acción | systemd | arje |
|
||||
| ---------------------------- | ------------------------------------ | ------------------------------------------------------- |
|
||||
| Ver servicios activos | `systemctl list-units --state=running` | `brahman-status` + `busctl list-entes` |
|
||||
| Ver logs | `journalctl -u foo` | `ente-journalctl` (TODO en CLI; por ahora `dmesg`) |
|
||||
| Ver logs | `journalctl -u foo` | `arje-journalctl` (TODO en CLI; por ahora `dmesg`) |
|
||||
| Restart un servicio | `systemctl restart foo` | matar el PID (`brain` lo reanuda por `Supervision`) |
|
||||
| Habilitar/Deshabilitar | `systemctl enable/disable` | editar `/ente/seed.card.json` + reboot |
|
||||
| Ver dependencias | `systemctl list-dependencies foo` | `brahman-status` muestra references y flow matches |
|
||||
@@ -163,7 +163,7 @@ de la mitad de arriba **no** — no las agregues.
|
||||
- **udev / hotplug**: arje captura uevents (vía `spawn_uevent_stream`),
|
||||
pero no hay reglas declarativas todavía. Para boot inicial, el
|
||||
initramfs nativo ya hizo el cold-plug, así que no es bloqueante.
|
||||
- **Timers** (cron-like): `ente-timer-compat` existe pero no está en la
|
||||
- **Timers** (cron-like): `arje-timer-compat` existe pero no está en la
|
||||
seed host por default. Agregalo si querés `*.timer` units migradas.
|
||||
- **Service generators**: no hay equivalente a `systemd-fstab-generator`
|
||||
ni `systemd-getty-generator`. Tu seed los declara explícitamente.
|
||||
@@ -198,7 +198,7 @@ default:
|
||||
sudo grep -E "^\s*menuentry " /boot/grub/grub.cfg | nl
|
||||
|
||||
# Ponerlo como default (usa el índice del menú o el title exacto)
|
||||
sudo grub-set-default "arje (init=/sbin/ente-zero) — kernel $(uname -r)"
|
||||
sudo grub-set-default "arje (init=/sbin/arje-zero) — kernel $(uname -r)"
|
||||
```
|
||||
|
||||
Mantené la entrada systemd como rescue. Si querés acortar la lista de
|
||||
@@ -211,7 +211,7 @@ Si arje no levanta el primer boot:
|
||||
|
||||
1. Volver a GRUB → entrada systemd → bootea normal.
|
||||
2. `journalctl --boot=-1` (logs del intento previo).
|
||||
3. Buscar `ente-zero` o `Tarjeta Semilla`. Si nada → el ejecutable no
|
||||
3. Buscar `arje-zero` o `Tarjeta Semilla`. Si nada → el ejecutable no
|
||||
se lanzó (kernel panic temprano, falta `init=` correcto, etc.).
|
||||
4. Si arrancó pero falló alguna Card: la próxima vez, antes de reboot:
|
||||
```bash
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Changelog — akasha
|
||||
# Changelog — chasqui
|
||||
|
||||
Explorador semántico de Mónadas. Renombrado de `nouser` el 2026-05-19.
|
||||
Explorador semántico de Mónadas. Renombrado de `nouser` → `akasha` → el 2026-05-19.
|
||||
|
||||
### feat(nouser-explorer): integración al stack yahweh themed
|
||||
Iter 10. `nouser-explorer` (la app paralela a `nakui-explorer`
|
||||
Reference in New Issue
Block a user