AmigaOS Version History and Architecture

AmigaOS evolved through a sequence of ROM + disk releases. The version numbers appear in several places and are a frequent source of confusion. This article establishes the canonical mapping.

Version number mapping

Kickstart ROM Workbench / disk Internal Key hardware era
1.2–1.3 1.2–1.3 V33–V34 OCS Amiga 500/2000
2.04 2.0 V36 ECS Amiga 3000
2.04 ROM 2.1 (disk only) V38 ECS — disk-based upgrade, no new ROM
3.0 3.0 V39 AA (Advanced Amiga) — new ROM + new disks
3.1 3.1 V40 AA — new ROM + new disks
3.1.4 V45 AmigaOS 3.1.4 project (Hyperion, 2016-2018) — 68k continuation, bug-fix ROM replacement
3.2 V47 AmigaOS 3.2 (Hyperion, 2019-2021) — new ROM + disk set; $VER: AmigaOS 3.2 CD-ROM Release 47.1

From the source: "V38 is 2.1, V39 is 3.0, and V40 is 3.1." V38 was a disk-only upgrade requiring only the 2.04 Kickstart ROM. V39/V40 required both a new ROM and a new disk set.

How to check the OS version at runtime

Disk-based software version — open version.library:

struct Library *VersionBase;
if (VersionBase = OpenLibrary("version.library", 0))
{
    if (VersionBase->lib_Version >= 38)
    {     /* at least V38 Workbench */     }
}

ROM version — read SysBase->LibNode.lib_Version (36 = V36/2.0, 39 = V39/3.0, 40 = V40/3.1).

Critical rule: Never assume the disk version reflects every other library. If you need V38+ asl.library features, check asl.library's version explicitly. The same applies to every other library. Check each library you depend on by version before using its features.

What each release introduced

V38 (Workbench 2.1, disk-based, requires 2.04 ROM)

Four main additions: 1. locale.library — runtime internationalization; create a single binary that runs in any language. 2. bullet.library — Agfa/Compugraphic Intellifont outline font engine (size, shear, rotate). 3. CrossDOS — read/write MS-DOS floppies with standard Amiga drives (no Bridgeboard). 4. General Workbench/tool improvements.

Key disk-layout changes that persist through V40: - System shipped on FFS floppies (not OFS). - Devs/DOSDrivers/ drawer — mount files with icons, controllable from Workbench. - Storage/ drawer/disk mirrors Devs/ for inactive items. Users drag icons from Storage/ to Devs/ to activate. - asl.library fully rewritten: ScreenMode requester, sleep window, AppWindow file requester, 2–7x faster directory loading. - commodities.library got MatchIX(), rawmouse strings, and new qualifier synonyms (LCOMMANDLEFT_COMMAND / LAMIGA / LEFT_AMIGA).

V39 (Workbench 3.0, new ROM)

The major changes are in the graphics subsystem and Intuition. V39 is the "AA" (Advanced Amiga) release — 24-bit color, screen modes, new GUI features. See AA Graphics Features for details.

Key disk changes: - Separate Storage disk (was a drawer on Extras under V38). - Fonts disk renamed from AmigaFonts to FONTS. - Speech support removed (narrator.device, translator.library no longer included). V37 speech components still work if already installed; the V38/V39 installer does not remove them. - Utilities/Display replaced by MultiView. - GadTools major overhaul: NewLook menus, GT_GetGadgetAttrs(), palette and listview redesign, GTLV_CallBack hooks.

V40 (Workbench 3.1, new ROM)

Minor incremental release. See V40_Release_Notes tutorial for specifics.

V45 (AmigaOS 3.1.4, Hyperion, 2016-2018)

The first post-Commodore 68k continuation. A bug-fix ROM replacement by Hyperion Entertainment. Removed never-finished exec internals (task trees, AVL trees), fixed memory pools, restored ROMWack in place of SAD. Laid the groundwork for 3.2.

V47 (AmigaOS 3.2, Hyperion, 2019-2021)

A full new ROM + disk set, distributed on CD ($VER: AmigaOS 3.2 CD-ROM Release 47.1). Major developer-facing changes are documented in a dedicated article: AmigaOS 3.2 — What Changed for Developers. Highlights: fulfilled NP_Error/NP_CloseError, V50 dos functions, buffered *Printf, iconify gadget (WA_IconifyGadget), native scrollwheel, DrawInfo V3 (NUMDRIPENS 13), rewritten locale/FormatString, and new subsystems (ReAction, mmu.library, Roadshow TCP/IP).

V50 slots in the V47 jump tables are reserved for future API; some functions are implemented early. Test for a function's presence; do not assume a V50-numbered function exists.

New-style MountLists (V38+)

A new device-per-file mount format:

/* Device filename = device name (e.g., DEVS:DOSDrivers/PIPE) */
Handler     = L:Aux-Handler
Stacksize   = 1000
Priority    = 5

The old DEVS:MountList multi-device format still works as a fallback. Tool Types in the .info file override mount-file settings. FORCELOAD = 1 forces loading from disk instead of reusing the filesystem resource list.

See Also


Sources: Commodore-Amiga, Inc., "Release 2.1: Overview" and "V38, V38, V40 Changes" (1992-1993); Hyperion Entertainment / AmigaOS Team, NDK 3.2 ReleaseNotes (2016-2021). Raw: raw/architecture/v38-overview.md; raw/architecture/os-3.2-release-notes.md Updated: 2026-08-04