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:
@@ -847,3 +847,29 @@ una app puede nacer o cerrarse con el reactor ya en marcha.
|
||||
re-tesela de 5 a 8 ventanas. Tres `Alt+Q` cierran la app enfocada una a una
|
||||
y el teselado reclama su espacio, de 8 de vuelta a 5. El kernel sigue estable
|
||||
a través de todas las altas y bajas.
|
||||
|
||||
## Fase 11 — El reloj del sistema como capacidad de host — 2026-05-22
|
||||
|
||||
Hasta la Fase 10 una aplicación sólo sabía CUÁNTAS veces la habían llamado —un
|
||||
`tick` tras otro—, no CUÁNTO tiempo había pasado. La Fase 11 le da al userspace
|
||||
un sentido del tiempo: el reloj monótono del sistema, como capacidad.
|
||||
|
||||
### Añadido
|
||||
- **Capacidad `sys_tiempo_mono() -> u64`** — la décima función del host. Los
|
||||
milisegundos transcurridos desde el arranque. El temporizador (PIT) ya late a
|
||||
100 Hz; `reloj` expone esa cuenta como `milisegundos()` y `env` la inyecta.
|
||||
Es una lectura PURA —no toca la memoria lineal del módulo, no hay puntero que
|
||||
validar— y MONÓTONA: jamás retrocede.
|
||||
- **App `pulso`** (`apps/pulso/`, `wasm32`). Un compás visual: una cabeza
|
||||
brillante que recorre una pista y vuelve, con un período de 6 s. Su escena es
|
||||
una FUNCIÓN PURA de `sys_tiempo_mono` —no guarda estado entre fotogramas—.
|
||||
De ahí su prueba: dos instancias de `pulso`, nazca una al arrancar y otra
|
||||
mucho después con un `Alt+N`, laten exactamente al unísono.
|
||||
- `pulso` se suma al userspace de génesis: `GENESIS` pasa de 5 a 6 apps, con
|
||||
`pulso` como la primera —la ventana maestra del escritorio—.
|
||||
|
||||
### Verificado
|
||||
- QEMU (`sendkey`): la barra de `pulso` avanza con el tiempo de pared entre dos
|
||||
capturas. Un `Alt+N` da a luz un segundo `pulso` ~15 s después del arranque;
|
||||
flotado junto al primero, su barra está en la MISMA fase — la prueba de que
|
||||
el compás se rige por el reloj absoluto, no por una cuenta de fotogramas.
|
||||
|
||||
Reference in New Issue
Block a user