feat(renaser): Fase 7c — persistencia inter-sesión por-app
Cada app tiene ahora su propia ranura de estado en el Manifiesto de Génesis (EntradaApp.estado): guarda y recobra lo suyo, sobrevive al reinicio, y no pisa a ninguna otra app. - apps/memoriosa: app WASM interactiva nueva. Cuenta las teclas pulsadas y persiste el recuento; al reiniciar despierta con su cuenta intacta. Reemplaza la 2a instancia de hola en la genesis. - kernel: capacidades sys_estado_cargar / sys_estado_guardar. El kernel custodia un manifiesto VIVO (Mutex<Manifiesto>); fijar_estado lo muta, lo re-graba en el grafo y lo re-ancla. ContextoCapacidades.indice_app da a cada app su identidad — su ranura, jamas la de otra. - cargar_userspace instala el manifiesto vivo antes de instanciar las apps: el init de una app ya consulta su estado al despertar. Verificado en QEMU (screendump + sendkey): disco virgen -> memoriosa con 0 celdas, testigo verde; 5 pulsaciones -> 5 celdas; reinicio -> 5 celdas intactas, testigo ambar (init releyo el estado del grafo). Cierra la Fase 7 — el userspace nace del grafo, completa. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+6
-4
@@ -97,7 +97,7 @@ gobierna, no por el IOAPIC — basta leer la línea que el firmware ya asignó.
|
||||
Verificado en QEMU: el disco se enruta a la IRQ 11; una tarea-sonda del reactor
|
||||
lee un bloque de forma asíncrona mientras las apps siguen pintando.
|
||||
|
||||
## Fase 7 — el userspace nace del Grafo de Objetos
|
||||
## Fase 7 — el userspace nace del Grafo de Objetos (completada)
|
||||
|
||||
Hasta la Fase 6, el userspace venía **empotrado en el binario del kernel**:
|
||||
cuatro `include_bytes!` de `.wasm` y regiones escritas a mano. La Fase 7 lo
|
||||
@@ -114,9 +114,11 @@ destierra — las aplicaciones pasan a ser objetos del grafo, gobernadas por un
|
||||
por el kernel y el constructor de imagen `boot`. `boot` siembra el disco
|
||||
virgen con el grafo ya poblado —bytecode y manifiesto—; el kernel pierde
|
||||
todo `include_bytes!` del userspace. Su binario ya no carga ni un `.wasm`.
|
||||
- **7c — persistencia inter-sesión (pendiente).** Una app guarda su estado
|
||||
mutado como un objeto nuevo del grafo; el campo `EntradaApp.estado` lo
|
||||
ancla. Al despertar, la app retoma donde quedó.
|
||||
- **7c — persistencia inter-sesión (completada).** La app `memoriosa` graba
|
||||
su estado como un objeto del grafo; el kernel lo ancla en la ranura
|
||||
`EntradaApp.estado` y re-graba el manifiesto. Al despertar, `init` lo relee
|
||||
y la app retoma donde quedó. Capacidades `sys_estado_cargar` /
|
||||
`sys_estado_guardar`; el kernel custodia un manifiesto VIVO y mutable.
|
||||
|
||||
Líneas abiertas posteriores: más capacidades del host (temporización, audio);
|
||||
la Fase 8 — el compositor sobre `mirada-layout`.
|
||||
|
||||
Reference in New Issue
Block a user