Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10,060 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

E-OS

typing tagline

License: AGPL-3.0 Rust Microkernel x86_64 and aarch64 COSMIC + E-OS DE

status version desktop boot verified hardware AES FDE RAID-1 mirror based on Redox

What · Quick Start · Docs · Roadmap · Changelog · Security · Contributing

🦊 Development & CI live on GitLab — this GitHub repo is a read-only mirror (GitHub Actions is off account-wide). File issues / merge requests on GitLab.


🖥️ Preview

E-OS running the COSMIC desktop
E-OS 0.1.0 “Genesis” — the COSMIC desktop, booted under QEMU/KVM.

The E-OS login greeter
The red/black E-OS login greeter — wallpaper and launcher icon built from source.

The red/black E-OS bootloader
The red-on-black E-OS bootloader — themed and built from source.


⚡ What is E-OS

E-OS is a modern, memory-safe operating system written in Rust. It is a downstream distribution of Redox OS — building on Redox's proven microkernel foundation while pursuing its own identity, roadmap, and hardening goals.

E-OS is not a from-scratch OS, and never claims to be. It stands on the shoulders of Redox OS (MIT) and the Rust ecosystem. Our work is the distribution: curation, hardening, branding, a custom crimson desktop environment, storage/crypto/network features, tooling, documentation, and the features on the roadmap. Credit to upstream is permanent — see Built on Redox OS.

Why E-OS?

🦀 Rust everywhere Kernel, drivers, libc (relibc) and userland in a language that eliminates whole classes of memory-safety bugs.
🧩 True microkernel Drivers, filesystems, the RAID layer and the network stack run in user space as isolated processes. A driver crash isn't a kernel panic.
🔐 Capability-secure + encrypted Everything is a scheme (URL-like resource). Least-privilege by construction; optional full-disk encryption with hardware-accelerated AES.
🎨 Crimson desktop COSMIC (Rust) plus a custom E-OS desktop environment — animated crimson wallpaper, labelled desktop icons, and a crimson COSMIC theme.
📦 Reproducible builds Containerized (Podman) build system, pinned toolchain; patched recipes pinned to E-OS source forks, so a fresh clone reproduces every change.

✨ Highlights

Foundation

  • Microkernel architecture — minimal trusted computing base; servers in userspace.
  • relibc — a clean-room C library in Rust (Linux + Redox targets).
  • RedoxFS — a modern, copy-on-write, optionally-encrypted filesystem.
  • Everything-is-a-scheme — uniform, capability-style resource model.
  • COSMIC — a fast, modern Rust desktop, extended with the E-OS DE.
  • Dual-arch — builds for x86_64 and aarch64, both booting to the desktop under QEMU. (build state)

Shipped in the 0.1.0 line (see CHANGELOG.md, verified under QEMU)

  • 🎬 Animated crimson desktop — a per-frame smoke-and-sparks wallpaper, a floating launcher, and labelled, double-clickable desktop icons.
  • 🔒 Full-disk encryption with hardware AES — RedoxFS AES-XTS that uses the ARMv8 Crypto Extensions at runtime (with a clean software fallback), gated by a kernel-exported CPU-feature channel.
  • 🪞 RAID-1 mirroring — a userspace raid1d block daemon: write-both / read-fallback, degraded boot, resync/rebuild of a re-added member, and split-brain safety.
  • 🌐 USB networking & storage — a Rust USB RNDIS network driver (usbnetd) and USB mass-storage support.
  • 🔑 Post-quantum-ready signing — a prototype tool that signs the package repo with a hybrid ed25519 + ML-DSA-65 (FIPS 204) signature.

🧱 Architecture

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#E50914','primaryTextColor':'#ffffff','primaryBorderColor':'#E50914','lineColor':'#E50914','secondaryColor':'#1f1f1f','tertiaryColor':'#0b0b0b','fontFamily':'Fira Code'}}}%%
flowchart TD
    subgraph US["User space"]
        APPS["Applications · COSMIC + E-OS desktop · CLI"]
        LIBS["relibc · libstd · ion shell"]
        SRV["User-space servers<br/>drivers · redoxfs · raid1d · netstack · usbnetd · orbital"]
    end
    subgraph KS["Kernel space"]
        K["E-OS microkernel<br/>scheduling · memory · IPC · schemes"]
    end
    HW["Hardware — x86_64 &amp; aarch64 UEFI · NVMe · virtio · e1000 · xHCI · HDA"]

    APPS --> LIBS --> SRV
    SRV <-->|"syscalls · scheme IPC"| K
    K --> HW

    classDef red fill:#E50914,stroke:#E50914,color:#fff;
    classDef dark fill:#1a1a1a,stroke:#E50914,color:#fff;
    class K red;
    class APPS,LIBS,SRV,HW dark;
Loading

Everything a program touches — files, disks, the display, even the RAID mirror — is a scheme, accessed through a URL-like path (file:, disk.*:, display: …). Drivers and services are ordinary user-space processes that provide schemes, so the kernel stays small and faults stay contained.


🧰 Tech Stack

Layer Technology
Language Rust (nightly, pinned) + a little assembly
Kernel Custom microkernel (x86_64 + aarch64, UEFI boot)
libc relibc (Rust)
Filesystem RedoxFS (CoW, AES-XTS encryptable, hardware AES on aarch64)
Storage RAID-1 mirror daemon (raid1d) over any disk schemes
Desktop COSMIC (System76) + the E-OS DE (wallpaper, desktop icons, crimson theme)
Drivers user-space: nvmed, virtio-blkd, e1000d, xhcid, usbnetd, ihdad, ahcid, …
Build Podman containers · cookbook · pkgar packages
Emulation QEMU 10+, OVMF/EDK2 (UEFI), KVM/HVF
CI / Quality ⚠️ GitHub Actions disabled account-wide (ROADMAP R-004) · local gitleaks/cargo-audit scans (R-005) · Dependabot
%%{init: {'theme':'base','themeVariables':{'pie1':'#E50914','pie2':'#b00610','pie3':'#7a0a14','pie4':'#3d3d3d','pie5':'#1a1a1a','pieStrokeColor':'#0b0b0b','pieOuterStrokeColor':'#0b0b0b','pieTitleTextColor':'#E50914','pieSectionTextColor':'#ffffff','fontFamily':'Fira Code'}}}%%
pie showData title E-OS source composition (approx.)
    "Rust" : 88
    "Assembly" : 4
    "Shell / build" : 5
    "Config / docs" : 3
Loading

🚀 Quick Start

Host: Linux, Windows 11 + WSL2 (Ubuntu), or macOS (Apple Silicon). Builds run inside rootless Podman containers — you do not pollute your host toolchain.

# 1) Get the build system
git clone https://github.com/Gh0s777tt/E-OS.git eos && cd eos

# 2) Bootstrap deps (Podman build, QEMU full, runtime crun)
curl -sf https://gitlab.redox-os.org/redox-os/redox/-/raw/master/podman_bootstrap.sh -o podman_bootstrap.sh
bash -e podman_bootstrap.sh
source ~/.cargo/env

# 3a) Build the full x86_64 desktop image  ── CI=1 is REQUIRED for headless/CI builds *
make CI=1 all

# 3b) …or the aarch64 E-OS image (crimson desktop + backend features)
make CI=1 ARCH=aarch64 CONFIG_NAME=eos all

# 4) Boot it
make qemu                 # x86_64 COSMIC desktop (GUI)
make qemu gpu=no          # headless serial console

* CI=1 is mandatory when building non-interactively. The cookbook repo tool renders a TUI that panics (slice index … repo.rs:1693) when stdout is not a real terminal. CI=1 disables the TUI and prints plain logs. See EOS_BUILD_STATE.md and docs/building.md.

Output images: build/x86_64/desktop/harddrive.img · build/aarch64/eos/harddrive.img. First-boot logins: user (no password) · root / password — the OOBE forces a password change on first login on every path (text, serial and the graphical greeter), so the shipped defaults can't reach a shell (R-602).

➡️ Full guide: docs/getting-started.md · Troubleshooting: docs/building.md · Hardware roadmap: docs/hardware-capabilities-roadmap.md


🗺️ Roadmap

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#E50914','primaryTextColor':'#fff','primaryBorderColor':'#E50914','lineColor':'#E50914','fontFamily':'Fira Code'},'gantt':{'barHeight':22}}%%
gantt
    dateFormat  YYYY-MM-DD
    axisFormat  %b '%y
    section Foundation
    Verified modern base (v0.1.0 Genesis) :done, m1, 2026-06-06, 2d
    Repo, brand, docs, security           :done, m2, 2026-06-07, 14d
    section Identity
    Boot splash & branding                :done, m3, 2026-06-08, 10d
    aarch64 boot-to-desktop               :done, m4, 2026-06-08, 20d
    Crimson desktop environment (DE)      :done, m5, 2026-07-11, 2d
    section Hardware capabilities
    RAID-1 mirror (R-501)                 :done, m6, 2026-07-12, 1d
    Hardware-accelerated FDE (R-502)      :done, m7, 2026-07-12, 1d
    Hybrid post-quantum signing (R-503)   :done, m8, 2026-07-12, 1d
    section Frontier
    Stable desktop · installer · LTS      :active, m9, 2026-07-13, 45d
Loading

See the full, numbered plan in ROADMAP.md and the storage/crypto track in docs/hardware-capabilities-roadmap.md.


🧩 Core Components

Component Role Origin
kernel The microkernel (+ aarch64 CPU-feature detection) redox-os/kernel → eos-kernel
relibc C library in Rust (+ ld.so hardening/fixes) redox-os/relibc → eos-relibc
redoxfs Filesystem + hardware AES-XTS redox-os/redoxfs → eos-redoxfs
base Drivers & daemons, incl. raid1d and usbnetd redox-os/base → eos-base
orbutils Launcher + E-OS desktop (icons, wallpaper) redox-os/orbutils → eos-orbutils
bootloader UEFI/BIOS boot (crimson theme) redox-os/bootloader
cookbook Package/recipe build system redox-os/cookbook
cosmic-* Desktop environment pop-os/cosmic-*
tools/eos-repo-sign Hybrid PQ package-signing prototype E-OS

🔐 Security

E-OS is AGPL-3.0 — strong copyleft. Anyone who runs a modified E-OS, including over a network, must make their source available. This is a deliberate anti-appropriation choice.

  • 🔒 Full-disk encryption — RedoxFS AES-XTS, hardware-accelerated (ARMv8 Crypto Extensions) with a constant-time software fallback.
  • 🧬 Post-quantum-ready — prototype hybrid ed25519 + ML-DSA-65 signing for the package repo; migration plan in docs/security.md.
  • 🔑 gitleaks secret scanning — runs locally (launchd + git hooks, R-005); the GitHub Actions job is inert while Actions is disabled account-wide.
  • 🤖 Dependabot active; cargo-audit runs locally. CodeQL is Actions-gated (currently disabled, R-004).
  • 👮 Branch protection on the default branch + CODEOWNERS reviews.
  • ✍️ Signed commits encouraged (see docs/security.md).

Found a vulnerability? Do not open a public issue — read SECURITY.md for private disclosure.


🤝 Contributing

PRs and issues welcome. Start with CONTRIBUTING.md and the Code of Conduct. Good first steps live in docs/getting-started.md; open items are tracked in docs/known-issues.md.

By contributing you agree your work is licensed under AGPL-3.0-or-later.


📦 Releases & Changelog

Current: v0.1.0 "Genesis" — the verified-bootable base, now carrying a rich [Unreleased] line (crimson DE, RAID-1, hardware FDE, USB networking/storage, PQ signing). Every change is recorded, numbered (U-NNN) and described in CHANGELOG.md (Keep a Changelog · SemVer).


🙏 Built on Redox OS

E-OS exists because of Redox OS and its community, led by Jeremy Soller. The kernel, relibc, RedoxFS, drivers and build system are Redox's work, under the MIT License (licenses/Redox-OS-MIT.txt).

If you like E-OS, please support upstream: Redox Donate · The Redox Book · Matrix chat.

"Redox" is a trademark of its owners; E-OS is independent and unaffiliated. See TRADEMARK.md.


⚖️ License

Made with 🦀 and ❤️ · © 2026 E-OS contributors · AGPL-3.0 · back to top ↑

About

E-OS - a modern, memory-safe microkernel OS in Rust. A hardened AGPL-3.0 downstream of Redox OS.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages