A free Amiga OS: what's done, and what's left.
Today a ROM made only of our own modules booted an Amiga to a working Shell, and then started OS 3.2's own Workbench disk. That's a big step. It isn't a free operating system yet, so here is the whole list of what is still missing, as it stands.
We counted every part of AmigaOS 3.2, all 300 of them, from exec in the ROM to the last commodity on the Extras disk, and checked each against our own code. This is what we found.
What we mean by free.
Three things, and all three have to be true.
Nothing borrowed
You can boot and use a complete system that does everything AmigaOS 3.2 does, with nothing from Commodore, Hyperion or Cloanto in it.
Free inputs only
Every part is built from free tools and free headers, so anyone can make it without buying a developer kit.
Published source
The source is public under a free licence. Ours is MIT.
Where we are today.
Our 1 MB test ROM holds only our own modules. In a lab machine it starts every module in the ROM, configures seven expansion boards, boots from the hard drive, runs S:Startup-Sequence and opens a Shell window that runs the commands you type. Later the same day it booted OS 3.2's own disk to a grey Workbench screen.
That boot is real, but it was done by hand, on one test machine, and it isn't repeatable by anyone else yet. The disk it booted still held OS 3.2's own commands, and two of the ROM's modules are only ROM-ready in changes that are still being reviewed.
A Shell from an all-open ROM
exec, dos, the handlers, CON: and RAM: all our own, running typed commands.
OS 3.2's Workbench disk
Booted to Workbench over our ROM, with IPrefs and the monitor drivers still switched off.
Free and repeatable
A ROM anyone can rebuild, a boot test that runs automatically, and a disk with only free files on it.
All 300 parts, counted.
"Done" means written, merged and complete on its own terms. It doesn't always mean measured: most modules haven't yet had their side-by-side test against OS 3.2 since this week's new builds. "Partial" means real code that is missing something. "On OS 3.2" means our library still hands its work to OS 3.2's own.
| Area | Done | Partial | On OS 3.2 | In review | Not started |
|---|---|---|---|---|---|
| Kickstart ROM modules | 19 | 18 | 0 | 0 | 4 |
| Disk libraries, devices and handlers | 16 | 8 | 3 | 0 | 15 |
| ReAction classes and datatypes | 39 | 8 | 0 | 0 | 14 |
| Fonts, keymaps and locale | 2 | 1 | 0 | 0 | 6 |
| C: commands, S: scripts and the Shell | 26 | 5 | 0 | 5 | 32 |
| Workbench and Prefs | 0 | 19 | 0 | 0 | 10 |
| Tools, commodities and install disks | 0 | 5 | 0 | 1 | 44 |
| All of OS 3.2 | 102 | 64 | 3 | 6 | 125 |
Counted on 14 October 2026. A row that covers several components, such as the 28 ReAction gadget classes, counts each one.
The eight biggest gaps.
Most of the 125 parts we haven't started fall under one of these.
Source anyone can rebuild
Free means anyone can build the ROM themselves. Today almost all of the code, and the tool that assembles the ROM, live in our own repositories and are not public yet. Getting them ready to publish is part of this work.
Our own developer headers
Every module except exec is still compiled against the official AmigaOS 3.2 developer headers. A free build needs a free set of headers, function lists and inline macros of our own, so nobody needs anyone else's kit to build it.
A free boot disk
There is no open Startup-Sequence and no free floppy boot block yet. Of OS 3.2.3's 63 C: commands, 29 have no code at all, among them Assign, Dir, List, Info, LoadWB and IPrefs.
Workbench on our own code
workbench.library and icon.library still hand their work to OS 3.2's own copies while we write the real thing. Our OpenBench desktop needs RTG graphics, and falls back to OS 3.2's LoadWB without it.
ARexx
There is no open ARexx interpreter yet, so scripts still run in OS 3.2's. Every call into rexxsyslib.library is ours; the language inside it is not.
The data on the disks
Fonts, keymaps, monitor drivers, DataTypes descriptors, mountlists, translations and help files have no open versions yet.
The rest of the disk set
Five handlers (PIPE:, PRT:, AUX:, CD-ROMs and PC disks), mounting ADF images, the MMU and 68060 libraries, nine datatypes, and most of System, Tools and Commodities, such as Format, DiskCopy, HDToolBox, Installer and Exchange.
Real hardware
We estimate the open ROM at about 640 KB, and a real A1200's ROM socket holds 512 KB. Our test ROM uses a 1 MB layout that only emulated machines map. There is no 68000 build yet either.
The road, in order.
Three milestones, each one building on the last.
Boot free to a Shell
- Finish the review of the last two ROM-ready modules, layers and input
- Commit the ROM's module list, a scripted build and a boot log
- A boot volume with only free files, and a free floppy boot block
- An open Assign and Startup-Sequence that make ENV: and T:
- Booting from floppy and IDE, not just our own storage ROM
- A boot test that runs on every change
- Build it from free headers, and publish the source
Boot free to Workbench
- dos starting ramlib, so libraries load from LIBS:
- Three exec faults seen on the way to Workbench
- icon.library and workbench.library on our own code
- LoadWB, and a desktop that runs without RTG
- intuition's Workbench preferences, gadtools in ROM and native AGA screens
- Default icons, drawer windows and Workbench menus
- IPrefs, and Workbench on 68000 machines
Match OS 3.2 in full
- The remaining handlers, datatypes and CPU libraries
- ARexx
- Fonts, keymaps, monitor drivers, translations and help
- The missing Prefs editors, tools and commodities
- The install disks, built from a free disk tree
- A ROM that fits a real A1200, and builds for the other OS 3.2 machines
What's already ours.
A lot of the system is written and merged. Some highlights:
In the ROM
exec, expansion, utility and keymap, the timer, trackdisk, keyboard, gameport and console devices, the eight resources, romboot, CON: and RAM:. exec builds as a ROM module with no outside headers at all.
On the disk
amigaguide, asl, bullet, commodities, diskfont, iffparse, locale, lowlevel, mathtrans, nonvolatile, realtime, version, rexxsupport and 68040.library, plus the clipboard, parallel and mfm devices.
ReAction
38 of OS 3.2's ReAction classes: windows, requesters, every gadget from buttons to the text editor, and the image classes.
Commands and locale
26 C: commands, each matched against OS 3.2.3 side by side, a Shell with 31 built-in commands, 21 languages and 35 countries.
How we keep it honest.
Nothing of theirs in our code
We checked the full history of our repositories. None holds a Kickstart image, an OS 3.x program or disk, any text from the developer headers or a Commodore or Hyperion copyright line. The topaz font is drawn by hand, and the country and language data come from public facts.
OS 3.2 at test time only
Our side-by-side tests run each call against OS 3.2 to prove we answer the same way. That needs a real copy of OS 3.2 when the test runs, and nothing from it goes into what we build.
"Free" only when it is
Our October preview ROM puts our exec into your own Kickstart 3.2.3, so it can never be free, and we won't call it that. Only a ROM made entirely of our own modules gets the name.