Skip to content

v0.4.2

Latest

Choose a tag to compare

@SavanDev SavanDev released this 06 Nov 04:57
· 2 commits to master since this release

SavanXP v0.4.2 — summarized change list: the opening line of each entry. Full detail in CHANGELOG.md ([0.4.2] — 2026-11-06).

Highlights

  • First boot on real hardware. The ISO, written to a USB stick, boots an AMD desktop (Zen, 400-series chipset, UEFI) and is driven by its USB keyboard and mouse.
  • A USB stack on xHCI: keyboards, mice and tablets next to PS/2 and virtio, USB sticks as disks, hubs, and hot plug.
  • FAT and Disk Management, users, permissions and elevation, SxGL and Nightwood, the first game on the native API.

Download

SavanXP-v0.4.2.iso is a LiveCD that boots through BIOS and UEFI: from a CD image in QEMU (q35, 512 MiB of RAM or more), or written to a USB stick (dd, or Rufus in DD image mode) on a real PC with an x86_64 CPU and Secure Boot off. The Limine menu adds boot log on screen and no USB entries for real hardware. The system volume loads into RAM, so changes do not survive a reboot. The live system sees the machine's SATA and USB disks (not NVMe); only Disk Management writes to them, and only when asked. The image is the plain system build plus the Doom port with the Freedoom: Phase 1 IWAD (freedoom1.wad, BSD-3-Clause; license in FREEDOOM-LICENSE.txt). The FFmpeg port, the Media Player and Celeste Classic are not included. Checksums in SHA256SUMS.

Added

  • Boot options for real hardware
  • xHCI on real hardware
  • USB hubs and hot plug
  • USB sticks
  • USB keyboards, mice and tablets
  • USB: xHCI controllers and device enumeration.
  • QEMU machines with USB
  • System Properties
  • Disk Management mounts FAT volumes
  • A FAT driver, and the boot volume at /boot
  • Disk Management
  • Files: Explorer toolbar and address bar
  • Files: Large Icons view
  • Display Properties
  • Desktop icons and shortcuts
  • Context menus in applications
  • The kernel lock reports its contention
  • Task Manager: Applications tab
  • Task Manager: one CPU graph per core and kernel times
  • Task Manager: User Name, CPU Time and Threads columns, sort by header, End Process Tree
  • SUN programs can use the SXGUI toolkit
  • SUN programs can read the process table and the system
  • SxFS records an owner, a group and a mode on every inode
  • Every process carries an identity, and the VFS checks it
  • Elevation: a program can run with the system's rights once the user says yes
  • SxGL, the 3D rasterizer: a documented OpenGL 1.1 fixed-function subset in software
  • Nightwood, the first game written against SUN
  • SUN programs can play sound
  • A window can capture the pointer
  • SAVANXP_QEMU_DISPLAY=sdl opens QEMU with SDL instead of GTK

Changed

  • The user's settings live in /users/user/Settings
  • The development boot drive is attached as fat:<dir>,snapshot=on
  • Only a driver marked can_be_root mounts /
  • GPT tables are checked before they are used
  • The version shows the build number
  • The Start menu opens without the one-second wait
  • Smokes and tools/shoot.sh boot at the default resolution
  • Clicking the desktop gives it the keyboard
  • A kernel panic or ring-0 fault stops every core
  • Device interrupts go to the APs
  • QEMU boots two cores by default
  • Task Manager is a SUN program
  • SXN_SYS_TERMINATE follows kill's rule
  • The taskbar looks like Windows NT 4.0's.
  • Gears draws with SxGL
  • The elevation prompt shows every argument
  • The desktop runs as the user
  • Add or Remove Programs asks for elevation
  • Settings live in the user's profile
  • The system runs from its disk, mounted at /
  • The initramfs is a rescue system
  • The kernel is written against namespace arch
  • The userland runtime's units are listed once
  • SXGFX, SXCHROME and SXGUI-C left the POSIX SDK for the platform layer
  • The WM protocol headers moved to include/wm/
  • The VFS reaches filesystems only through fs::Driver
  • Input drivers register with the kernel's input layer
  • SUN programs are named <name>.sxe on disk

Fixed

  • Booting without a PS/2 controller hung
  • A FAT volume over a whole disk is no longer read as an MBR
  • Asking for a volume's usage no longer stalls the system
  • POSIX open with no access mode returns EINVAL
  • A port can no longer be sent over a pipe
  • A program started by name from the Command Prompt shows its own title and icon
  • The APs start on processors without SMEP
  • Four cores under QEMU TCG no longer crawl
  • Task Manager's End Process works on processes that are not the user's
  • A held key no longer answers the elevation prompt
  • Add or Remove Programs refuses a data_dir under /users
  • elevation-smoke runs from a clean checkout
  • taskbar-smoke passes again.
  • CMake uses the python3 on PATH