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.
Write an application
Create a portable, single-file .rhai program and use the capability-checked
AFOS System API.
Understand the design
See exactly which behavior is shared and what a new platform backend must implement.
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.