Skip to the content.

Home · Get started · Applications · Filesystem · Architecture · Security · Bare metal · Porting · GitHub


AFOS

AFOS is a terminal-first application environment whose system logic is shared across native desktop and bare-metal targets. The shell, virtual filesystem, permissions, application discovery, authentication, and Rhai execution all live in a portable no_std + alloc Rust core. Platforms provide only the services that cannot be universal: console I/O, persistent storage, time, entropy, and platform information.

Choose a path

Run AFOS

Start the native terminal build, execute one command, or boot a Limine ISO.

Get started →

Write an application

Create a portable, single-file .rhai program and use the capability-checked AFOS System API.

Application guide →

Understand the design

See exactly which behavior is shared and what a new platform backend must implement.

Architecture →

Target status

Target Status What changes
macOS, Linux, Windows Supported Native terminal and host-backed storage
x86_64 bare metal Supported and QEMU-tested Limine, framebuffer, serial, PS/2
AArch64 bare metal Supported and QEMU-tested Limine, framebuffer, PL011
Browser WASM Shared crates compile Browser backend and UI are deferred

Desktop and bare metal run the same AFOS core and official Rhai interpreter. No custom Rhai implementation is maintained in this repository.

System at a glance

single-file Rhai app
        │
        ▼
AFOS System API + capability policy
        │
        ▼
shell · VFS · authentication · runtime registry
        │
        ▼
portable Platform contract
        │
        ├── desktop backend
        └── bare-metal backend (x86_64 / AArch64)

Files at a glance

/
├── sys/                  immutable files loaded from the bundle
│   └── apps/             trusted bundled applications
├── apps/                 installed applications
└── user/
    ├── config/           AFOS configuration
    ├── saves/            user-owned documents and saves
    └── appdata/<app-id>/ private application state

Appdata belongs to an application and is available to that app without a permission prompt. Saves belong to the user and require a declared filesystem capability.

Next steps