One operating system.
22 machines.

UnoDOS is a graphical operating system written from scratch, running on everything from a Commodore 64 to a modern UEFI PC. Every platform below is a download. Load one in an emulator and check for yourself.

Five minutes on the x86-64 build: the window manager, ten themes, real Word and Excel files, a browser with two switchable JavaScript engines, and the system compiling and running a C program on itself.

What it is

One codebase, built fresh for each machine rather than ported through a compatibility layer. The same desktop, window manager and applications appear on an 8-bit console with 2 KB of RAM and on a modern 64-bit PC, because everything above the hardware is generated from or checked against a single machine-readable contract.

On the x86-64 build it carries its own storage, input, network and audio drivers, its own TCP/IP stack, a web browser, an office suite that reads and writes the real Microsoft formats, and a C compiler that runs on the operating system it compiles for. The whole image is about four megabytes.

The full source is on GitHub under the Mozilla Public License 2.0. Per-port status, including what has been verified on real hardware and what has not, is in PLATFORMS.md.

Downloads

Release v3.32.0. Every file below is built from the same source tree. Pick a machine, load the file in the emulator named beside it, and you are running UnoDOS in about a minute.

MachineFileSize
IBM PC / XT (8088)unodos-144.img1.44 MB floppy image · QEMU, 86Box, PCem, or a real PC with a floppy drive1.4 MB
Modern PC (x86-64 / UEFI)unodos-pc64.isohybrid UEFI ISO · Attach to a VM's CD-ROM: QEMU with OVMF, VirtualBox, VMware59.8 MB
Modern PC (BIOS or UEFI)unodos-pc64-hybrid.img.gz96 MiB disk image, gzipped · Decompress and write to USB with dd or Rufus. Boots legacy BIOS and UEFI alike, on any PC from roughly 2007 on13.8 MB
Commodore 64unodos_c64.d64D64 disk image · VICE (x64sc), or write to a real disk / SD2IEC171 KB
Commodore VIC-20unodos_vic20.prgPRG program · VICE (xvic)5 KB
Nintendo NES / Famicomunodos.nesiNES ROM (NROM-256) · Mesen, FCEUX, or a real console via EverDriveHardware run covered the base apps plus Dostris; the four later parity apps are emulator-verified only.40 KB
Super Nintendounodos.sfcSFC ROM (LoROM) · Snes9x, bsnes, or an SD2SNES / FXPakOn real hardware, tested only on a SupaBoy clone with an FXPak Pro: boots and is navigable, but icons render text-only and there is no audio.32 KB
Game Boy / Game Boy Colorunodos.gbGB ROM (CGB-compatible) · SameBoy, BGB, mGBA, or an EverDrive GB32 KB
Game Boy Advanceunodos.gbaGBA ROM · mGBA, or an EZ-Flash / EverDrive GBA20 KB
Sega Master Systemunodos.smsSMS ROM · Emulicious, MAME, or an Everdrive MD/SMS32 KB
Sega Game Gearunodos.ggGG ROM · Emulicious, MAME32 KB
Sega Genesis / Mega Driveunodos.genGenesis ROM · BlastEm, Kega Fusion, or a Mega EverDriveBoots from a flashcart. The PS/2, tape and Sega CD adapters are emulator-only.64 KB
Sega Dreamcastunodos-dc-uui.isoselfboot CD image · Flycast, redream, or burn to CD-R for real hardware658 KB
NEC PC Engine / TurboGrafx-16unodos.pcePCE ROM · Mednafen, Ootake, or a Turbo EverDriveBoots on a Turbo EverDrive v2.5 under TEOS only; the stock Krikzz v2 OS rejects the ROM.48 KB
Bandai WonderSwanunodos.wsWS ROM · Mednafen64 KB
Sony PlayStation 2unodos-ps2.elfEE ELF executable · PCSX2, or a real PS2 via uLaunchELF2.1 MB
Commodore Amiga (68K)unodos68k.adfADF disk image · WinUAE or FS-UAE. Attach unodos-data.adf as DF1 for the app disk880 KB
Apple IIunodos_apple2.dskDSK disk image (.woz also provided) · AppleWin, MAME, or a real II via a Floppy Emu140 KB
Apple IIgsunodos_iigs.poProDOS 800K image · GSplus, MAME800 KB
Macintosh Plusunodos_macplus.dsk800K disk image · Mini vMac800 KB
PowerPC Macintoshunodos_ppcmac.binOpen Firmware binary · QEMU (qemu-system-ppc)23 KB
Raspberry Pi (AArch64)kernel8.imgbare-metal kernel image · Copy to the boot partition of an SD card, or QEMU (qemu-system-aarch64)Boots to the desktop on a real Pi 3, with two known faults: the background renders brown (pixel-order swap) and input is serial-only, no USB HID.27 KB
PinePhone (Allwinner A64)unodos_pinephone.binbare-metal image · Emulator and instruction-level harness onlyEmulator-verified only. Confirmed NOT to boot on a real PinePhone; treat the hardware path as untested.26 KB

Wi-Fi firmware is not included. The x86-64 build drives Intel wireless adapters, but that firmware belongs to Intel and is not ours to redistribute, so published images ship without it. Everything else, including wired Ethernet, works out of the box.

You only need this on real hardware: a virtual machine's emulated network card works without it. Write the image to a USB stick, then run unodos-wifi-firmware-tool.zip, which fetches the blob for your card and puts it on the stick under the name the driver expects. It double-clicks on Windows and macOS and needs nothing installed beyond Python.

Macintosh (System 1-7) is not in this release. The Retro68 cross-toolchain on the build machine is incomplete, so this port has no current binary. The source is in the repository and builds once Retro68 is installed.

Or build it yourself

Nothing here needs a special environment. Clone the repository, pick a port, run its build script.

git clone https://github.com/hmofet/unodos
cd unodos/c64 && ./build.sh     # -> build/unodos_c64.d64

Each port's build script names the assembler or cross-compiler it needs and stops with a clear message if it is missing. The per-port audit documents in the repository root record what has been tested and where.

Follow the build

I write about how this was built: the architecture that lets one codebase target machines forty years apart, the failures worth reading about, and what the process says about building software this way. Occasional, no filler, unsubscribe whenever.

Email only. Never shared, never sold.