hmofet/unodos: UnoDOS — lively growth (the ahead, contract-driven line; grasp carries the pc64 x86-64/UEFI globe). Frozen legacy (archived): hmofet/unodos-3-legacy. · GitHub



Release
Manual

One supply tree, one design, twenty-two machines, from an IBM PC/XT with an
8088 to the fashionable laptop computer in your desk.

UnoDOS is a household of graphical working programs. It started as a GUI-first,
16-bit real-mode OS written fully in x86 meeting, becoming a kernel, a
window supervisor, two filesystems, cooperative multitasking and a full
utility set on a single 1.44 MB floppy. It has since grown right into a
contract-driven household of ports spanning house computer systems, consoles, handhelds,
single-board computer systems and a cellphone, and its flagship is now pc64: UnoDOS
working bare-metal on any fashionable 64-bit PC, by itself drivers, with its personal
community stack, browser, workplace suite, compiler and hypervisor.

The pc64 desktop

Prebuilt photos for each platform are on the
releases page: a hybrid ISO and
USB disk picture for contemporary PCs, cartridge ROMs for the consoles and handhelds,
disk photos for the house computer systems, and SD-card payloads for the boards. Most
of them run in an emulator inside a minute; the
user manual walks by booting actual
{hardware}, together with one-click USB flasher apps for Windows and macOS.

What has really been verified is a separate query from what builds, and
PLATFORMS.md is the ledger that solutions it: per platform, what
has booted on actual {hardware} (and on which bodily machine), what’s
emulator-verified solely, and each recognized hole.


UnoDOS pc64, the modern-PC flagship

pc64 boots bare-metal on basically any x86-64 PC made since ~2007.
UEFI performs the position the BIOS performs for the basic OS: the firmware arms over
a framebuffer, a keyboard and the boot quantity, after which, on most machines,
UnoDOS calls ExitBootServices and the firmware leaves. From that time
the OS runs fully by itself drivers. A hybrid disk picture boots the identical OS
on legacy-BIOS machines too.

The shell is constructed on unoui, the household’s cross-platform widget toolkit: a
windowed desktop with a taskbar, digital desktops, window snapping, an
animated Alt-Tab switcher, desktop icons and a packages menu. Ten themes are
live-switchable, from Aurora (the fashionable flat default, in mild and darkish)
to trustworthy retro appears (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 each management is reachable by pointer or
keyboard.

  • UnoWord, UnoCalc, UnoShow: an Office 97-class suite that reads and
    writes the actual Microsoft binary codecs (.doc, .xls, .ppt) by
    the in-tree unodoc library.
  • Browser: HTML, Markdown and CSS rendering with 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 structure engine possibility behind the identical seam.
  • Studio: an IDE that runs on the OS itself, with 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) with a uno
    API into the shell, filesystem and community.
  • Music, UnoAmp, Photos: from-scratch WAV, MIDI, MP3 and AAC-LC decoders
    (unomedia); UnoAmp is a Winamp 2 clone that masses basic
    skins; Photos views the frequent picture codecs.
  • SSH: a local SSH consumer (ed25519, in-tree crypto).
  • Plus Files, Editor, Paint, Tracker, Clock, Control Panel, System, a log
    viewer, the video games (Dostris, Pac-Man, OutLast) and Runner3D, the showcase
    for the uno3d 3D library.

Apps are loadable .UNO modules carrying their very own descriptors: drop one
into APPS and the shell discovers it. No rebuild, no reboot.

Everything beneath the firmware line is native, written for this tree:

  • Storage: AHCI, NVMe, SDHCI/eMMC and USB mass storage below a standard
    block layer, a local FAT16/FAT32 driver, GPT/ESP authoring.
  • USB: a polled xHCI host stack with 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) with WPA2, over a from-scratch
    TCP/IP stack: ARP, IPv4, ICMP, UDP, TCP, DHCP, DNS, TLS (BearSSL), sockets
    and syslog in each instructions.
  • Input: PS/2, I2C-HID (native laptop computer trackpads) and USB HID.
  • Audio: Intel HDA with AC’97 fallback right into a 48 kHz DMA ring.
  • ACPI: an in-tree AML interpreter (unoacpi).

unovirt enters VMX operation on Intel {hardware} and runs
visitors behind EPT with virtio gadgets: an actual Ubuntu kernel boots below
UnoDOS, reaches userspace, solutions at its shell, and mounts an ext4 disk

served from a file on a UnoDOS quantity. The Appliances app and VM supervisor
entrance it; an AMD/SVM backend is written and awaiting {hardware} proof.

Install, handle, automate

  • Installer: non-destructive set up onto an present disk’s ESP, or a
    whole-disk clone; a working machine can be reinstalled over the
    community
    .
  • unosecure: native accounts, RBAC and an audit path.
  • URC: a remote-control channel (fail-closed verb gate, one-time console
    arming) that drives actual machines headlessly: deploying builds, working
    assessments, streaming the display screen. It is how the {hardware} fleet is validated
    and not using a human on the keyboard.
  • Debug builds: a behavioral spec (pc64/SPEC.md) executed
    as an on-metal conformance take a look at, plus watchdogs, fault telemetry and a
    stress harness.

Validated on a Lenovo ThinkPad X1 Carbon Gen 8 (native trackpad, Wi-Fi, stay
theme and backbone switching), on an always-on ZimaBlade take a look at field (boots
from USB, detaches from the firmware, runs totally native), and on QEMU+OVMF
harnesses that boot the actual picture on each change. The design notes in
pc64/README.md report the firmware traps solely actual {hardware}
exposes; they’re half the worth of the port.

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

The complete port builds with inventory packages, no EDK2. See
pc64/DEVELOPMENT.md for Linux and Windows setting
setup and pc64/README.md for the total structure tour.


One contract, many worlds

UnoDOS 3.1 is contract-driven: a single machine-readable Contract
(unodef/) defines display screen geometry, the window and occasion structure and
the shared enums, and each globe is generated from it or checked in opposition to it.
The meeting ports and the x86 reference devour it byte-identically, and
eleven ports had been constructed contemporary on the three.1 structure relatively than
migrated, proving {that a} new goal prices a small generated floor. See
docs/UNODOS-3.1-MIGRATION.md and
docs/CONTRACT-ARCH.md.

Every port boots a UnoDOS desktop with the shared app set: Files, Notepad,
Music, Theme, Tracker, Paint and the video games (Dostris, OutLast, Pac-Man),
scaled to what the machine can maintain, all the way down to a launcher profile on 2 KB of
RAM. A feature-by-feature comparability lives in
docs/FEATURE-MATRIX.md.

Home computer systems

Port CPU Highlights
IBM PC/XT (x86) 8088+ The reference OS; see beneath. ✅ actual {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 with per-cell color, SID, CIA TOD clock, all apps disk-loaded
VIC-20 6502 Fresh 3.1 globe 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 over SensiblePort, full app parity
Mac System 1–7 68000+ Hosted Toolbox port (1-bit and Color QuickDraw), app-free core, loadable modules
MacPlus (standalone OS) 68000 Bare-metal: personal boot blocks, drivers and renderer. ✅ actual Mac SE
PowerPC Mac PPC G3/G4 Open Firmware consumer, the primary big-endian PowerPC globe

Consoles and handhelds

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

Boards and cellular

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

Several ports are validated on actual silicon (NES, PC Engine, Genesis, Mac SE,
the x86 line, pc64’s laptop computer and SBC fleet); the remaining are verified in
emulators or on ROM-free instruction-level harnesses (Unicorn, py65, a
from-scratch 65816 core), so no proprietary ROMs are wanted to construct or take a look at
something.

The basic OS (the x86 reference)

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

  • Boots from a 1.44 MB floppy (or laborious drive, CompactFlash, USB) straight
    right into a windowed desktop: draggable icons, mouse help, a 16-window
    z-ordered window supervisor with define drag and resize.
  • A ~46 KB kernel exposing 106 system calls over INT 0x80: graphics in
    4 video modes (CGA 320×200 to VESA 640×480), a 15-widget GUI toolkit
    with file dialogs, FAT12 and FAT16 learn/write, cooperative multitasking (5
    concurrent apps plus the shell in 640 KB), a system clipboard, three bitmap
    fonts and PC-speaker audio.
  • 19 functions, from a full textual content editor and file supervisor to Paint,
    Tracker, Settings, a boot-floppy creator and three video games.
  • Runs at full characteristic parity on a real 8088 at 4.77 MHz, verified on a
    cycle-accurate XT (Microsoft serial mouse on COM1, XT-IDE CompactFlash
    boot) and on actual {hardware} from a 386SX to an Atom netbook. See
    docs/PORT-8088.md.

Build and run it:

sudo apt set up nasm qemu-system-x86 make python3
make floppy144        # construct/unodos-144.img, a bootable FAT12 floppy
make run144           # boot it in QEMU

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

Apps are flat NASM binaries in their very own 64 KB segments; a minimal windowed
app is about 60 strains. Start with the
app development guide, the
API reference (all 106 calls with register-level
element) and docs/ARCHITECTURE.md.

The ports keep small as a result of the heavy equipment is shared:

Library What it’s
unodef The Contract: one machine-readable definition each globe is generated from
unoui Cross-platform widget toolkit and themes (docs/UNOUI.md)
uno3d Portable 3D pipeline with software program, PS2 GS and Dreamcast PVR backends (docs/UNO3D.md)
unomedia Image and audio decoders (WAV, MIDI, MP3, AAC-LC, and the frequent picture codecs), from scratch
unodoc Microsoft binary doc codecs: CFB and .doc/.xls/.ppt, learn and write
unonet The community stack the pc64 drivers feed
unojs / unoweb JavaScript engine and DOM/HTML/CSS structure engine
unofs, unosound, unosched, unobus, unoacpi Filesystems, audio sequencing, scheduling, buses, ACPI

Repositories and branches

  • grasp (this repo, hmofet/unodos):
    the ahead, contract-driven line and the house of pc64. All present
    growth occurs right here.
  • hmofet/unodos-3-legacy:
    the unique shipped, real-hardware-validated OS and its ports (tag
    legacy-pre-3.1). Frozen and archived, known-good.
  • User manual: set up, desktop,
    apps, networking, home equipment and the developer information, for individuals who simply
    need to run it.
  • docs/: structure, API reference, port spec, characteristic matrix,
    storage and boot-chain internals, and the plan and handoff paperwork behind
    every subsystem.
  • CHANGELOG.md: the total historical past, 425+ builds and
    counting. Current model: v3.34.0.
  • AGENTS.md and CONTRIBUTING.md: how
    work lands on this tree.

Copyright (c) 2026 Arin Bakht

This challenge is licensed below the Mozilla Public License 2.0
(MPL 2.0).

  • Use: Free, together with commercially, with no royalty
  • Inspection: The full supply is right here, and all the time will probably be
  • Modification: Allowed, however if you happen to distribute a modified model of a file
    from this challenge, that file’s supply should be printed below MPL 2.0. You
    can’t take UnoDOS personal.
  • Larger works: You could mix UnoDOS with proprietary code of your individual and
    license the mixed work nevertheless you want. Only the UnoDOS information keep MPL.
  • Attribution: Required, retain the copyright discover and the license textual content

Third-party parts hold their very own licenses and are unaffected by the above
(MIT, Apache-2.0, BSD-3-Clause, public area, and CC BY for 2 fonts). Every
certainly one of them is listed in THIRD-PARTY.md.


UnoDOS 3, as a result of generally the previous methods are the very best methods.



Source link