← 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.1
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.