UnoDOS

Hacker News by 11 min read 40x views
UnoDOS

Share Post

License Release Manual

One origin tree, one design, twenty-two machines, from an IBM PC/XT alongside an 8088 to the contemporary laptop on your desk.

UnoDOS is a family of graphical functioning systems. It began as a GUI-first, 16-bit real-mode OS written entirely in x86 assembly, fitting a kernel, a window manager, two filesystems, cooperative multitasking and a full application set on a sole 1.44 MB floppy. It has since grown into a contract-driven family of ports spanning residence computers, consoles, handhelds, single-board computers and a phone, and its flagship is now pc64: UnoDOS running bare-metal on any contemporary 64-bit PC, on its own drivers, alongside its own network stack, browser, agency suite, compiler and hypervisor.

The pc64 desktop

Prebuilt images for all phase are on the releases page: a hybrid ISO and USB disk depiction for contemporary PCs, cartridge ROMs for the consoles and handhelds, disk images for the residence computers, and SD-card payloads for the boards. Most of them run in an emulator inside a minute; the user manual walks through booting real hardware, including one-click USB flasher apps for Windows and macOS.

What has really been verified is a distinct inquiry from what builds, and PLATFORMS.md is the ledger that answers it: per platform, what has booted on genuine hardware (and on which bodily machine), what is emulator-verified only, and all known gap.


UnoDOS pc64, the modern-PC flagship

pc64 boots bare-metal on basically any x86-64 PC made since ~2007. UEFI plays the function the BIOS plays for the traditional OS: the firmware hands over a framebuffer, a keyboard and the footwear volume, and then, on most machines, UnoDOS calls ExitBootServices and the firmware leaves. From that point the OS runs entirely on its own drivers. A hybrid disk depiction boots the identical OS on legacy-BIOS machines too.

The casing is built on unoui, the family's cross-platform widget toolkit: a windowed desktop alongside a taskbar, virtual desktops, opening snapping, an animated Alt-Tab switcher, desktop icons and a programs menu. Ten themes are live-switchable, from Aurora (the contemporary flat default, in ray and dark) to loyal retro looks (Mac OS 7, 1-bit Mac Plus, Windows 3.1, Amiga Workbench, C64, Apple II, NeXTSTEP). Text is kerned, anti-aliased TrueType with bundled open fonts, and all authority is reachable by pointer or keyboard.

  • UnoWord, UnoCalc, UnoShow: an Office 97-class suite that says and writes the genuine Microsoft binary formats (.doc, .xls, .ppt) through the in-tree unodoc library.
  • Browser: HTML, Markdown and CSS rendering alongside cookies, cache, discover and save, HTTP and CA-validated TLS 1.2 HTTPS, and two switchable JavaScript engines: the in-tree unojs bytecode VM and vendored quickjs-ng, with a libcss-based layout motor choice rearward the identical seam.
  • Studio: an IDE that runs on the OS itself, alongside syntax highlighting, a build-and-run loop, an AI assistant, and UnoC, a built-in C compiler that compiles native UnoDOS apps on UnoDOS.
  • Python: MicroPython as a first-class runtime (PYRT.UNO) alongside a uno API into the shell, filesystem and network.
  • Music, UnoAmp, Photos: from-scratch WAV, MIDI, MP3 and AAC-LC decoders (unomedia); UnoAmp is a Winamp 2 copy that loads classic skins; Photos views the average depiction formats.
  • SSH: a native SSH client (ed25519, in-tree crypto).
  • Plus Files, Editor, Paint, Tracker, Clock, Control Panel, System, a log viewer, the games (Dostris, Pac-Man, OutLast) and Runner3D, the showcase for the uno3d 3D library.

Apps are loadable .UNO modules carrying their own descriptors: autumn one into APPS\ and the casing discovers it. No rebuild, no reboot.

Everything below the firmware row is native, written for this tree:

  • Storage: AHCI, NVMe, SDHCI/eMMC and USB bulk retention under a common block layer, a native FAT16/FAT32 driver, GPT/ESP authoring.
  • USB: a polled xHCI presenter stack alongside hubs, HID keyboards and mice, mass storage, and USB Ethernet (ASIX AX88179, Realtek RTL8152).
  • Networking: wired NICs (Intel e1000/e1000e/igb, Realtek r8169) and Wi-Fi (Intel, Realtek, Marvell drivers) alongside WPA2, complete a from-scratch TCP/IP stack: ARP, IPv4, ICMP, UDP, TCP, DHCP, DNS, TLS (BearSSL), sockets and syslog in the two directions.
  • Input: PS/2, I2C-HID (native laptop trackpads) and USB HID.
  • Audio: Intel HDA alongside AC'97 fallback into a 48 kHz DMA ring.
  • ACPI: an in-tree AML translator (unoacpi).

unovirt enters VMX procedure on Intel hardware and runs guests rearward EPT alongside virtio devices: a genuine Ubuntu kernel boots under UnoDOS, reaches userspace, answers at its shell, and mounts an ext4 disk served from a document on a UnoDOS volume. The Appliances app and VM manager front it; an AMD/SVM backend is written and awaiting hardware proof.

Install, manage, automate

  • Installer: non-destructive instal onto an existing disk's ESP, or a whole-disk clone; a operating device can additionally be reinstalled over the network.
  • unosecure: local accounts, RBAC and an audit trail.
  • URC: a remote-control conduit (fail-closed verb gate, one-time console arming) that drives genuine machines headlessly: deploying builds, running tests, streaming the screen. It is how the hardware fleet is validated without a individual at the keyboard.
  • Debug builds: a behavioral spec (pc64/SPEC.md) executed as an on-metal conformance test, affirmative watchdogs, error telemetry and a stress harness.

Validated on a Lenovo ThinkPad X1 Carbon Gen 8 (native trackpad, Wi-Fi, live theme and resolution switching), on an always-on ZimaBlade test box (boots from USB, detaches from the firmware, runs completely native), and on QEMU+OVMF harnesses that footwear the genuine depiction on all change. The scheme notes in pc64/README.md document the firmware traps lone genuine hardware exposes; they are fractional the value of the port.

sudo apt instal gcc-mingw-w64-x86-64 qemu-system-x86 ovmf python3 python3-pil cd pc64 ./build.sh # -> build/esp/EFI/BOOT/BOOTX64.EFI ./build.sh run # footwear it in QEMU+OVMF

The entire harbor builds alongside inventory packages, no EDK2. See pc64/DEVELOPMENT.md for Linux and Windows environment setup and pc64/README.md for the complete architecture tour.


One contract, many worlds

UnoDOS 3.1 is contract-driven: a sole machine-readable Contract (unodef/) defines display geometry, the opening and event layout and the shared enums, and all earth is generated from it or checked against it. The gathering ports and the x86 citation consume it byte-identically, and eleven ports were built fresh on the 3.1 architecture fairly than migrated, proving that a new mark expenses a small generated surface. See docs/UNODOS-3.1-MIGRATION.md and docs/CONTRACT-ARCH.md.

Every harbor boots a UnoDOS desktop alongside the shared app set: Files, Notepad, Music, Theme, Tracker, Paint and the games (Dostris, OutLast, Pac-Man), scaled to what the device can hold, downward to a launcher overview on 2 KB of RAM. A feature-by-feature difference lives in docs/FEATURE-MATRIX.md.

Home computers

Port CPU Highlights
IBM PC/XT (x86) 8088+ The citation OS; see below. ✅ genuine hardware, incl. a cycle-accurate 8088
Amiga 68000 Self-booting ADF, copper/bitplanes, Paula audio, disk-loaded apps, PC-interchangeable FAT12
Commodore 64 6510 Hi-res bitmap desktop alongside per-cell colour, SID, CIA TOD clock, all apps disk-loaded
VIC-20 6502 Fresh 3.1 earth on the 22×23 character matrix
Apple II 6502 Own GCR 6-and-2 RWTS, hi-res renderer, disk-loaded apps
Apple IIGS 65C816 Super Hi-Res desktop, Ensoniq DOC audio, FAT12 complete SmartPort, complete app parity
Mac System 1–7 68000+ Hosted Toolbox harbor (1-bit and Color QuickDraw), app-free core, loadable modules
MacPlus (standalone OS) 68000 Bare-metal: own footwear blocks, drivers and renderer. ✅ genuine Mac SE
PowerPC Mac PPC G3/G4 Open Firmware client, the archetypal big-endian PowerPC world

Consoles and handhelds

Port CPU Highlights
Sega Genesis 68000 VDP tile desktop, SRAM/tape/Sega-CD storage. ✅ boots on genuine hardware
Super Nintendo 65816 Shadow+DMA tilemap model, SPC700 audio driver. 🟡 conditional continue on copy hardware
NES 6502 2 KB of RAM. ✅ validated on a genuine AV Famicom
PC Engine HuC6280 ✅ validated on a Turbo EverDrive
Master System / Game Gear Z80 The archetypal contract-driven harbor and its 12-bit-colour sibling
Game Boy / Color SM83 One ROM boots DMG greyscale and GBC colour
Game Boy Advance ARM7TDMI The archetypal ARM world, on a Mode-3 framebuffer
WonderSwan V30MZ The archetypal x86 handheld
PlayStation 2 R5900 Portable C center complete the Graphics Synthesizer; memory-card storage, USB input
Dreamcast SH-4 Same C center complete PowerVR2; VMU storage; 60 fps in Flycast

Boards and mobile

Port CPU Highlights
Raspberry Pi AArch64 The archetypal 64-bit world, on the VideoCore mailbox framebuffer
PinePhone AArch64 Portrait 480×640 on the Allwinner DE2, self-booting microSD

Several ports are validated on genuine silicon (NES, PC Engine, Genesis, Mac SE, the x86 line, pc64's laptop and SBC fleet); the remainder are verified in emulators or on ROM-free instruction-level harnesses (Unicorn, py65, a from-scratch 65816 core), so no proprietary ROMs are needed to build or test anything.

The traditional OS (the x86 reference)

The first UnoDOS 3: a GUI-first OS for IBM PC XT-compatibles, written entirely in real-mode x86 assembly. No DOS, no runtime, fair the BIOS and an Intel 8088 or later.

  • Boots from a 1.44 MB floppy (or difficult drive, CompactFlash, USB) straight into a windowed desktop: draggable icons, mouse support, a 16-window z-ordered opening director alongside outline drag and resize.
  • A ~46 KB kernel exposing 106 scheme calls complete INT 0x80: graphics in four video modes (CGA 320×200 to VESA 640×480), a 15-widget GUI toolkit with document dialogs, FAT12 and FAT16 read/write, cooperative multitasking (5 concurrent apps affirmative the casing in 640 KB), a scheme clipboard, three bitmap fonts and PC-speaker audio.
  • 19 applications, from a complete content publishing company and document director to Paint, Tracker, Settings, a boot-floppy creator and three games.
  • Runs at complete characteristic parity on a genuine 8088 at 4.77 MHz, verified on a cycle-accurate XT (Microsoft serial mouse on COM1, XT-IDE CompactFlash boot) and on genuine hardware from a 386SX to an Atom netbook. See docs/PORT-8088.md.

Build and run it:

sudo apt instal nasm qemu-system-x86 create python3 make floppy144 # build/unodos-144.img, a bootable FAT12 floppy make run144 # footwear it in QEMU

make hd-image builds the 64 MB FAT16 hard-drive image; tools/write.ps1 writes images to bodily media on Windows (with system-drive elimination and read-back verify), and plain dd does it on Linux.

Apps are flat NASM binaries in their own 64 KB segments; a minimal windowed app is concerning 60 lines. Start alongside the app betterment guide, the API reference (all 106 calls alongside register-level detail) and docs/ARCHITECTURE.md.

The ports remain small since the dense machinery is shared:

Library What it is
unodef The Contract: one machine-readable definition all earth is generated from
unoui Cross-platform widget toolkit and themes (docs/UNOUI.md)
uno3d Portable 3D pipeline alongside software, PS2 GS and Dreamcast PVR backends (docs/UNO3D.md)
unomedia Image and audio decoders (WAV, MIDI, MP3, AAC-LC, and the average depiction formats), from scratch
unodoc Microsoft binary document formats: CFB and .doc/.xls/.ppt, peruse and write
unonet The network stack the pc64 drivers feed
unojs / unoweb JavaScript motor and DOM/HTML/CSS layout engine
unofs, unosound, unosched, unobus, unoacpi Filesystems, audio sequencing, scheduling, buses, ACPI

Repositories and branches

  • master (this repo, hmofet/unodos): the forward, contract-driven row and the residence of pc64. All current development happens here.
  • hmofet/unodos-3-legacy: the first shipped, real-hardware-validated OS and its ports (tag legacy-pre-3.1). Frozen and archived, known-good.
  • User manual: install, desktop, apps, networking, appliances and the developer guide, for group who just want to run it.
  • docs/: architecture, API reference, harbor spec, characteristic matrix, storage and boot-chain internals, and the scheme and handoff documents behind each subsystem.
  • CHANGELOG.md: the complete history, 425+ builds and counting. Current version: v3.34.0.
  • AGENTS.md and CONTRIBUTING.md: how work lands in this tree.

Copyright (c) 2026 Arin Bakht

This project is licensed under the Mozilla Public License 2.0 (MPL 2.0).

  • Use: Free, including commercially, alongside no royalty
  • Inspection: The complete origin is here, and continually volition be
  • Modification: Allowed, but if you allocate a modified type of a file from this project, that file's origin must be published under MPL 2.0. You cannot obtain UnoDOS private.
  • Larger works: You may merge UnoDOS alongside proprietary code of your own and license the blended activity nevertheless you like. Only the UnoDOS records remain MPL.
  • Attribution: Required, keep the copyright notice and the licence text

Third-party components keep their own licenses and are unaffected by the above (MIT, Apache-2.0, BSD-3-Clause, community domain, and CC BY for two fonts). Every one of them is listed in THIRD-PARTY.md.


UnoDOS 3, since sometimes the old ways are the finest ways.

Other Article Hacker News
↑
Close Right Ads
Close Left Ads