Volver a noticias

martes, 17 de marzo de 2026, 4:26 a. m.

SavanXP v0.1.3: una actualizacion centrada en la evolucion del stack grafico

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_pci para drivers virtio modernos;
  • un nuevo nodo /dev/gpu0 con ABI publica para consulta, adquisicion y presentacion;
  • soporte MVP para operaciones esenciales del dispositivo;
  • la utilidad gputest para 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.