← jkn.me
The Macaros app icon: a purple macaron
Operating system

Macaros

AmigaOS, running as a native app on your Mac. AROS - the open-source AmigaOS reimplementation - is an ordinary arm64 macOS process here: macOS owns every driver, and AROS reaches them through standard exec I/O.

native AArch64 backend hosted darwin-aarch64 signed + notarized v0.2
The AROS Wanderer desktop running in a Cocoa window on macOS, beside the Macaros About panel and the AROS Settings window
A double-clickable .app. The Wanderer desktop in a Cocoa/Metal window, with a real menu bar, an About panel and a schema-driven settings window - not an emulator of a specific old machine, but the AROS operating system compiled for AArch64.
The Ferail file manager running on AROS, with its context menu open
A full GPUI app boots on it. Ferail runs as C:Ferail through a from-scratch software-raster GPUI backend - themed chrome, native Intuition menus and asl.library requesters included.
The Zed editor running on AROS, showing a Rust file with syntax highlighting
So does an editor. Zed, opening a Rust file off the AROS filesystem with syntax highlighting intact. The hosted stack is an application platform, not just a booting kernel.
# Boot it, type into the Shell, capture the framebuffer - no human,
# no window-server session, no screen-recording permission prompt.
$ graft/aros-ctl run
$ graft/aros-ctl wait 3
$ graft/aros-ctl type "echo hello"
$ graft/aros-ctl enter
$ graft/aros-ctl shot
$ graft/aros-ctl stop

Drivable with nobody at the keyboard

One rule shapes the project: an agent must be able to run build → boot → observe → judge unattended. Injected input enters the same pump as real NSEvents, and screenshots come from an offscreen oracle rather than the on-screen drawable.

AROS's first native AArch64 bring-up

A clean-room CPU backend - vectors, MMU, context switch, exception model, preemptive multitasking - proven on QEMU virt, and reusable on every ARM64 target.

Hosted on purpose

Bare metal on Apple silicon is an explicit non-goal. Running hosted sidesteps the undocumented interrupt controller and signed boot, so the effort goes into the OS.

A 68k JIT for the classics

run68k runs self-contained 68k binaries with 68881/68882 hardware FP, byte-exact-verified against an independent interpreter.

Each surface is one idea - macOS owns the driver, AROS reaches it via exec I/O
Display Cocoa/Metal window, AROS-side cocoa.hidd over the full graphics/intuition/layers stack
Input Keyboard, mouse and wheel on the same event path as real NSEvents; gadtools menu strips
Clipboard Two-way NSPasteboard ↔ clipboard.device
Host volumes A Mac folder mounted as MacRO: / MacRW:, with drag-from-Finder
Audio CoreAudio-backed AHI sub-driver
Networking bsdsocket.library forwarded to native sockets - TCP/IP and DNS
Media ffmpeg decode, an FFViewX viewer and an ffmpeg.datatype, with GPU 2D via gpufx.library
Rust std Runs natively - net, fs, env, args, process, time and thread all verified live

Experimental hobby project

Expect rough edges. The AmigaDOS Shell runs the full 116-command C: set and the desktop is real, but this is a research port, openly one.

Licensing

AROS is distributed under the AROS Public License. The graft layer, its design docs and the build instructions are all in the repository. Macaros uses FFmpeg under the LGPL 2.1 or later; the exact FFmpeg source used by this release is available with the release assets.