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.
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.
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.
- 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.
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 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 |
- 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.
