Skip to content
gonz0wPublic

About

A hobby x86_64 capability multikernel: Zig kernel, Rust services, and experiments toward a persistent Zsh system.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Aether

Source checks

Aether is a hobby operating system built to learn how a small, understandable system can fit together. It is an experimental x86_64 capability multikernel, with a Zig kernel and Rust user-space services.

Each participating core owns its local kernel state and cooperates through explicit messages. Capabilities describe what a domain may access. Higher-level policy belongs in services that can be isolated and replaced.

There is plenty left to build. Questions, careful bug reports, research notes and documentation feedback are welcome.

Where it stands

The accepted foundation includes bounded QEMU experiments for UEFI boot, protected user domains, capability-controlled IPC, two-core messaging, a Rust framebuffer service and supervised worker replacement. Native C, filesystem and shell integration have their own narrower experiments and evidence.

Aether is not yet a complete boot-to-shell distribution. The first release still targets sys-init booting into interactive serial Zsh, with a working runner, persistent OpenZFS behind the Rust filesystem service, and native package management. Existing dash sessions and framebuffer demos are foundations for that goal. General recovery and assembled-system qualification remain open.

QEMU x86_64 is the first target. Physical x86_64 bring-up follows; native NVIDIA display support is deferred. The boot framebuffer does not provide a native GPU driver.

Read the architecture and R1 acceptance gates for the contracts and limits behind these statements. Follow Issues for current work; a dated experiment is evidence for its recorded inputs.

One repository, four components

Component Responsibility
Kernel Per-core execution, capabilities, memory, IPC and hardware-facing mechanisms
userland User-space services, filesystem policy, C runtime and shell integration
sys-init Boot ordering, readiness, supervision and shutdown policy
pkg-mgr Package artifacts, package state and installation policy

Package installation does not activate a service or create authority. Shared interfaces stay explicit, and each mutable object has an authoritative owner. The repository guide explains component commands and pins.

This public snapshot is focused on source and versioned documentation. Local qualification receipts, SDKs, prepared images and generated build bundles are excluded; local working history is preserved separately. Standards releases, review snapshots and imported Git hooks also remain private. The public-source boundary identifies unavailable inputs and which checks can run here. A fresh checkout cannot replay every historical result.

Build the kernel experiment

The documented setup is validated on arm64 macOS. No other host setup is qualified yet. Install the exact versions in the dependency and boot guide:

Tool Pinned or tested version
Zig 0.16.0
Rust 1.98.0, with x86_64-unknown-none
QEMU 11.1.1
xorriso 1.5.8.pl02
Python 3.14.7 tested

You also need curl and a working Rust toolchain manager. Package-manager latest versions may differ from these pins; check before building.

From the repository root:

rustup toolchain install 1.98.0 --profile minimal --target x86_64-unknown-none
python3 scripts/deps.py
zig build
zig build run

Setup downloads checksum-verified Limine and OVMF inputs into .deps/. Subsequent kernel builds use those local inputs. The generated image is zig-out/aether.iso; the run command opens QEMU. Close its window or press Ctrl-C to stop.

For checks, start with the development guide and choose the checks affected by a change. The broad zig build test gate and component/native suites have additional prerequisites; missing local inputs are blocked coverage. The hosted jobs are Source integrity (Agent Temper digests, selected Python syntax/JSON and conventional PR titles) and Kernel models (self-contained Zig roots). They do not validate private standards or establish native OS behavior or release readiness. zig build test and make check-system retain their required private standards/local inputs and are blocked without them; zig build keeps its documented boot prerequisites.

Join in

  • Use Issues for reproducible bugs and bounded feature requests.
  • Use Discussions for questions, design exploration and sharing experiments.
  • Read CONTRIBUTING before proposing work. Pull requests are currently opened by the repository owner; public issue reports are welcome.
  • Report vulnerabilities through the private security route.

The wiki is a short navigation guide. Versioned source documents hold technical contracts and historical summaries. Issues become the sole live work authority after verified onboarding/migration; legacy planning queues remain read-only context.

License

Original Aether work uses BSD-2-Clause. Imported code, firmware and other third-party material retain their own terms and notices. See the repository licensing summary before reusing or distributing mixed artifacts.

About

A hobby x86_64 capability multikernel: Zig kernel, Rust services, and experiments toward a persistent Zsh system.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages