AnotherOS

Documentation

Running AnotherOS, and writing software for it.

Everything here describes what the system actually does today. Where something is implemented but only proven under emulation, or works on one machine and not another, the page says so — a documentation set that overstates is worse than a short one, because you are deciding whether to spend an afternoon on it.

The pages below fall into three groups.

Using it — getting a live image onto a machine, installing it, and managing software.

The platform — how it boots, what the system call surface is, what hardware is supported, and the firmware interfaces underneath.

Writing software for it — the toolkit most applications should use, the graphics API, the display protocol beneath both, and the subsystems an application talks to: audio, notifications, the file manager and the pasteboard.

If you are writing a native application, start with the AO toolkit. If you are porting one, start with the syscall ABI and ports and packaging. If you want to run a Windows program, start with the Win32 subsystem.

Booting the live image

The ISO is a complete system. Nothing is installed unless you ask for it, and no second drive is needed — the root filesystem is…

Installing to disk

Installation is optional. The live image is the same system that gets installed, by construction — the installer copies the…

Packages and the filesystem

The layout AnotherOS does not use a flat FHS root as its source of truth. Every package lives at its own version…

How it boots

One kernel image, two boot protocols, and what is running by the time you see a desktop.

The syscall ABI

A Linux-faithful system call surface — which is what lets unmodified musl, BusyBox and Go binaries run.

Hardware support

What drivers exist, what has been run on real machines, and what is still only proven in emulation.

ACPI

Batteries, the lid, the power button, screen brightness — and why running firmware code is unavoidable.

UEFI boot entries

Runtime variable services, efivarfs, and making an installed disk the firmware's default.

NetBooting a Mac

Why a Mac needs a protocol no other machine uses, and how AnotherOS network-boots one.

The AO toolkit

The native application framework — an AppKit-shaped C API, callable from C, C++ and Go.

The display protocol

How a client talks to the Fasadas compositor — surfaces, buffers, input and the pasteboard.

Desktop effects

What the compositor animates, what each effect costs, and how to give time back.

The level bezel

The on-screen display for brightness, keyboard light and volume keys.

Notifications

Banners, alerts, action buttons and the Notification Centre — from a shell, from C, or from the toolkit.

File operations

One copy, move, trash and undo engine, shared by the Finder and the desktop.

Audio — Garsas

The sound stack: one server, per-application volume, and a client API that keeps working when there is no sound card.

Hardware video decode

What the GPU's decoder can do, what it cannot, and how to find out on your machine.

Networking — Tinklas

Wi-Fi and wired configuration, the radio switch, and why an empty scan list has four meanings.

Remote control

A VNC server built into the compositor — see and drive the live desktop over the network.

The Win32 subsystem

Running native Windows 32-bit executables as first-class, crash-isolated desktop applications.

Ports and packaging

The toolchain, the on-device compiler, how to write a port, and how packages are installed.