Volver a noticias
jueves, 8 de octubre de 2026, 4:27 p. m.
SavanXP v0.4.0 - La revolución de ld.so
SavanXP 0.4.0
SavanXP es un sistema operativo experimental para x86_64 + UEFI. Arranca con
el gestor Limine, con kernel propio en C/C++, sesion grafica propia y un
volumen persistente montado en /disk. Se construye y se prueba desde Linux
con Bash y CMake. Licencia MIT.
Lo que ya hace el sistema:
- Kernel de 64 bits, procesos ELF64, planificador con desalojo y llamadas propias.
- Sesion grafica con gestor de ventanas (
windowd), fondo, Program Manager, barra de tareas y menu Inicio como clientes. - Apps incluidas: Files, Notepad, Shell, Add/Remove Programs, System Properties, Task Manager, Calculator, Minesweeper, Gears.
- Base POSIX minima y SDK v1 para compilar aplicaciones externas contra el repo.
- Volumen SxFS persistente, red, audio, entrada, GPU y almacenamiento basicos.
Que trae la 0.4.0 (2026-10-08)
Es la version donde el sistema deja de llevar una copia de cada libreria en cada binario y pasa a cargar librerias compartidas de verdad.
Cargador y librerias compartidas
ldsomapeaDT_NEEDEDdesde/lib, con un solo sesgo de carga por libreria, simbolos resueltos en toda la cadena y el ejecutable dentro del ambito de simbolos.- Cadena real en
/disk/lib:libmath.so.0.4,libsxgfx.so.0.4,libgfx2d.so.0.4,libsxgui.so.0.4,libsxmidi.so.0.4ylibffmpeg.so.0.4. - El caso dificil fue FFmpeg como una sola libreria: 6,8 MB, 2334 simbolos y
9228 reubicaciones. El Media Player paso de 7 MB enlazado en estatico a
344 KB con un
DT_NEEDED. - Un programa con una dependencia ausente arranca igual y dice cual falta
(
ldso_missing()), en vez de morir en un salto PLT.
Musica y audio
- Doom tiene musica: cada MUS se convierte a MIDI y
libsxmidilo sintetiza en ejecucion. ConGENMIDIdel WAD usa voces FM de dos operadores; sin el, el render es identico al anterior. - Celeste Classic reproduce sus cinco loops OGG a traves de
libffmpeg. /bin/audiodmezcla dos programas a la vez, con volumen maestro, volumen por aplicacion y ventana emergente con deslizadores en la barra de tareas.
Escritorio
- Menu Inicio recortado: boton Start, lista plana de programas, pie con Shut Down y Restart con confirmacion en dos pasos.
- Titulos con RetroSans, rampas de acento propias y barras de titulo de 20 px.
- Cerrar una ventana en plena carga ya no congela el escritorio.
Sistema y formato
- SxFS formato v2: 4096 inodos, techo de 1 GiB, volumen persistente de 1 GiB y
LiveCD de 256 MiB.
build/disk.imgllega a QEMU como disco, no como modulo. - SMP en fases 0-3: todos los nucleos corren procesos de usuario bajo un
bloqueo grande del kernel. TCP con reintentos, reensamblado y
ECONNRESET/ETIMEDOUTen vez de un EOF limpio. - Virtio cubierto donde importa:
virtio-blk,virtio-net, teclado y captura de audio.--accel kvmdisponible; los smokes siguen en TCG.
Verificacion
- Los escenarios visuales ya no comprueban "algo se movio": afirman los glifos en pantalla desde las tablas de fuentes compiladas.
doom-music-smokefalla si el WAV capturado sale en silencio y falla si el audio sobrevive al cierre.sxgui-smoke,calc-smoke,mines-smoke,taskmgr-smoke,tcp-smokeyverify_doom_persistence.shcubren el resto.
Probarla
./build.sh build
./build.sh run
./build.sh smoke smoke
Puertos versionados aparte: ./ports/doomgeneric/build.sh,
./ports/ffmpeg/build.sh y ./ports/ccleste/build.sh.