feat(renaser): Fase 11 — el reloj del sistema como capacidad de host
El userspace gana un sentido del tiempo: hasta ahora una app solo sabía cuántas veces la habían llamado, no cuánto tiempo había pasado. - Capacidad `sys_tiempo_mono() -> u64` — la décima función del host: los milisegundos monótonos desde el arranque. `reloj` expone la cuenta del PIT (100 Hz) como `milisegundos()`; `env` la inyecta. Lectura pura, no toca la memoria del módulo, jamás retrocede. - App nueva `pulso` (`apps/pulso/`, wasm32): un compás visual cuya escena es una función PURA de `sys_tiempo_mono` — sin estado entre fotogramas—. Dos instancias laten al unísono nazcan cuando nazcan. - `GENESIS` crece de 5 a 6 apps; `pulso` es la maestra del escritorio. Verificado en QEMU (sendkey): la barra de `pulso` avanza con el tiempo de pared; un segundo `pulso` lanzado con Alt+N ~15 s después aparece sincronizado con el primero — el compás se rige por el reloj absoluto, no por una cuenta de fotogramas. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -107,11 +107,13 @@ struct AppGenesis {
|
||||
region: (u32, u32, u32, u32),
|
||||
}
|
||||
|
||||
/// El userspace de genesis — las cinco aplicaciones que pueblan un disco recien
|
||||
/// forjado. Un saludo (`hola`), la `memoriosa` interactiva que recuerda entre
|
||||
/// sesiones (Fase 7c), y tres demos de los guardarrailes del kernel: `discola`
|
||||
/// (combustible), `glotona` (memoria) y `cronista` (la cronica de los arranques).
|
||||
const GENESIS: [AppGenesis; 5] = [
|
||||
/// El userspace de genesis — las seis aplicaciones que pueblan un disco recien
|
||||
/// forjado. El compas visual `pulso` (Fase 11), un saludo (`hola`), la
|
||||
/// `memoriosa` interactiva que recuerda entre sesiones (Fase 7c), y tres demos
|
||||
/// de los guardarrailes del kernel: `discola` (combustible), `glotona`
|
||||
/// (memoria) y `cronista` (la cronica de los arranques).
|
||||
const GENESIS: [AppGenesis; 6] = [
|
||||
AppGenesis { nombre: "pulso", archivo: "pulso.wasm", region: (100, 120, 360, 120) },
|
||||
AppGenesis { nombre: "hola", archivo: "app.wasm", region: (100, 120, 480, 560) },
|
||||
AppGenesis { nombre: "memoriosa", archivo: "memoriosa.wasm", region: (700, 120, 360, 80) },
|
||||
AppGenesis { nombre: "discola", archivo: "discola.wasm", region: (60, 700, 360, 80) },
|
||||
|
||||
Reference in New Issue
Block a user