renaser dialogaba sólo con el teclado; las ventanas flotantes nacían en cascada y allí se quedaban. La Fase 13 trae el ratón. - Driver `drivers/raton`: el ratón PS/2 cuelga del dispositivo auxiliar del 8042 + IRQ12. El driver despierta el aux, programa su IRQ, le ordena reportar, ensambla paquetes de 3 bytes con guarda del bit-3. Posición como atómicos, eventos como cola lock-free — el mismo guardarraíl que el teclado. - El puntero, capa de PRESENTACIÓN: `Pantalla::estampar_puntero` pinta un sprite de flecha 12×18 sobre el framebuffer después de copiar el lienzo. El lienzo nunca lo contiene — hace de save-under natural—. - Compositor: `atender_raton` drena eventos. Botón bajando es un clic-para-enfocar consistente con `mover_foco` (silencia bocina, alza si flota). Si la enfocada flota, arranca un arrastre con el desfase de agarre; el botón sostenido la sigue al puntero; al soltar, termina. - `refrescar_puntero` reestampa el framebuffer si el puntero se movió en una vuelta tranquila en que ninguna app pintó. Verificado en QEMU (mouse_move / mouse_button del monitor): el puntero aparece al arrancar, se mueve por la pantalla, un clic sobre pulso le da el foco, y un arrastre con el botón sostenido mueve la flotante de la cascada al centro-abajo. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
renaser
renaser es un kernel asíncrono de Espacio de Direccionamiento Único
(SASOS), escrito en Rust #![no_std] para x86_64 bare-metal.
Es un sistema operativo disruptivo que rompe por completo con el paradigma POSIX de los años 70: no emula Linux, no usa archivos planos, no usa TTYs ni capas GNU. El aislamiento entre aplicaciones no descansa en la MMU ni en los anillos de privilegio de la CPU, sino en límites matemáticos sobre el bytecode — aislamiento por software (SFI). La interfaz es visual desde el primer microsegundo: el texto es, simplemente, un caso particular del dibujo.
Qué hace, hoy
- Arranca por UEFI y adopta el framebuffer GOP con doble búfer sin parpadeo.
- Se autoempaqueta en una imagen de disco UEFI y se lanza en QEMU.
- Tiene reflejos de fallo: GDT/TSS, IDT y manejadores de excepción; si colapsa, lo dibuja (franja roja de pánico, naranja de memoria agotada).
- Late con el hardware: PIC remapeado, temporizador (PIT) y teclado.
- Gestiona memoria dinámica (heap de 64 MiB, asignador global).
- Ejecuta un reactor asíncrono cooperativo sobre los
Futurenativos de Rust: las interrupciones no conmutan contexto, despiertan tareas. - Rasteriza texto vectorial al vuelo con
fontdue. - Ejecuta un userspace WebAssembly aislado por capacidades (
wasmi): las aplicaciones solo tocan el mundo a través de funciones de host concedidas.
Construir y ejecutar
Requisitos: rustup con toolchain nightly, QEMU y firmware OVMF.
cargo run
Compila el kernel para x86_64-unknown-none, forja la imagen de disco UEFI y
abre QEMU. Ver CLAUDE.md para el resto de comandos y el flujo de la app WASM.
Documentación
| Documento | Contenido |
|---|---|
ARCHITECTURE.md |
la arquitectura del sistema, subsistema a subsistema |
ROADMAP.md |
fases completadas y plan de las siguientes |
CLAUDE.md |
guía operativa: comandos, estructura y convenciones |
Licencia
MPL-2.0