martes, 17 de marzo de 2026, 4:26 a. m.
Hoy presentamos SavanXP v0.1.3, una version enfocada en fortalecer la base
grafica del sistema, mejorar la experiencia en QEMU y consolidar componentes
internos que impactan directamente en estabilidad, compatibilidad y respuesta
general.
Esta release marca un avance importante en la evolucion del proyecto. El objetivo no fue solo sumar capacidades nuevas, sino tambien ordenar mejor el camino hacia un backend grafico mas moderno, manteniendo compatibilidad con lo ya construido y reforzando piezas clave como timing, input y memoria.
Lo mas destacado de la version
Nuevo backend virtio-gpu para QEMU
La principal novedad de v0.1.3 es la incorporacion de un driver
virtio-gpu 2D para QEMU. Se trata de una primera implementacion funcional
que amplia la base grafica del sistema y deja preparada una ruta mas clara
para futuras mejoras.
Junto con este trabajo, SavanXP incorpora:
- una base compartida
virtio_pcipara driversvirtiomodernos; - un nuevo nodo
/dev/gpu0con ABI publica para consulta, adquisicion y presentacion; - soporte MVP para operaciones esenciales del dispositivo;
- la utilidad
gputestpara validar el camino de presentacion directa.
En conjunto, estos cambios permiten empezar a desacoplar la evolucion grafica del sistema del framebuffer clasico, sin perder continuidad con el trabajo ya realizado.
Compatibilidad con el camino grafico existente
/dev/fb0 se mantiene como interfaz compatible para las aplicaciones
fullscreen ya existentes. Cuando el backend esta disponible, esa capa puede
seguir funcionando sobre virtio-gpu, lo que permite avanzar hacia la nueva
base sin forzar una migracion inmediata del userland grafico.
Esta compatibilidad es una parte importante de la release: la nueva direccion del stack no reemplaza abruptamente lo anterior, sino que se integra sobre lo ya construido.
Mejoras visibles en QEMU
La experiencia de arranque y handoff grafico tambien mejora de forma clara en esta version.
El perfil de ejecucion pasa a usar virtio-vga con resolucion 1280x800, y
el modo pedido desde boot queda alineado con esa configuracion para reducir
saltos innecesarios durante la transicion. Tambien se corrige el escenario en
el que el sistema podia volver a 640x480 al finalizar el arranque aun
cuando el dispositivo aceptaba un modo superior.
Ademas, v0.1.3 incluye:
- redraw mas limpio al volver desde sesiones graficas exclusivas;
- mejor cobertura visual de la consola y la shell fullscreen;
- correccion de la desincronizacion del mouse con el host mediante el uso de
la geometria efectiva del framebuffer activo en
virtio-input.
Son ajustes concretos, pero con impacto directo en la sensacion de solidez del entorno grafico.
Mejoras internas relevantes
Aunque el frente grafico concentra la mayor parte de la atencion, esta version tambien introduce cambios importantes en dos areas fundamentales del sistema: tiempo y memoria.
Por un lado, el timer local APIC/x2APIC ahora se calibra contra RTC/CMOS
durante el boot. Esto mejora el alineamiento de uptime_ms y sleep_ms con
el tiempo real dentro de QEMU, beneficiando tanto la respuesta general como el
comportamiento de aplicaciones graficas y ports externos.
Por otro lado, el heap del kernel deja de ser lineal-only y pasa a reciclar
bloques liberados, hacer split/coalesce y devolver arenas completas cuando
quedan vacias. En paralelo, el runtime POSIX de sdk/v1 reemplaza su
allocator tipo arena por un heap fijo reciclable, habilitando reutilizacion
real de malloc, free, calloc y realloc en aplicaciones externas.
Estas mejoras no solo corrigen limitaciones practicas actuales, sino que tambien preparan mejor la base del sistema para extensiones futuras.
Impacto en doomgeneric
Otro efecto positivo de esta version es la mejora en el comportamiento de
sdk/doomgeneric, que deja de correr acelerado por una base temporal
incorrecta y vuelve a apoyarse sobre una referencia mucho mas cercana al
tiempo real.
Esto refuerza el valor del port como prueba integrada del estado de la plataforma: fullscreen, input, timing, presentacion y compatibilidad general con aplicaciones externas de mayor tamaño.
Limites conocidos
virtio-gpu representa un avance importante para la GUI fullscreen en QEMU,
pero sigue siendo una implementacion inicial.
Por el momento:
- la subida de pixeles sigue siendo sincronica;
- la copia sigue realizandose por CPU;
- todavia no hay
mmap, page flipping ni doble buffer real; - el rendimiento de ports externos sigue dependiendo en gran medida del costo de escalado y del tamano final del frame.
La direccion tecnica ya esta definida, pero las mejoras mas fuertes en suavidad y latencia quedaran para iteraciones posteriores.
Cierre
SavanXP v0.1.3 es una release centrada en consolidar el siguiente paso del
sistema en materia grafica. La incorporacion de virtio-gpu, la aparicion de
/dev/gpu0, la mejora del handoff en QEMU y los cambios en timing y memoria
dejan una base mas consistente para continuar evolucionando el proyecto.
Todavia quedan etapas importantes por recorrer, pero esta version establece un punto de apoyo mucho mas firme para la siguiente generacion de aplicaciones, pruebas y mejoras del SO.