Skip to content
ferrix-osPublic

About

Experimental Rust operating system running unmodified Linux apps on its own kernel, with restartable userland drivers and a Wayland desktop.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Ferrix: Linux apps without Linux

Ferrix

Linux apps without Linux.

Boot Ferrix in QEMU and you can open its Wayland desktop, browse with Chrome, or run git, curl and rustc. Those are ordinary Linux binaries running on Ferrix's own Rust kernel. Disk, network, graphics and input drivers run as separate processes that Ferrix can restart if they crash.

Ferrix is still experimental. Logins, su and the lock screen check passwords, but parts of authentication and of process isolation are unfinished, so it is not ready to be your everyday OS.

Boot Ferrix · See what works · Read the technical guide · Visit the website

Ferrix's Wayland desktop with Chrome, btop and a terminal

zinc shell showing driver processes, service status and a curl request Chrome browsing Wikipedia on the Ferrix desktop btop showing Chrome, the compositor and driver processes
The zinc shell, driver processes and a curl request. Chrome browsing Wikipedia on Ferrix. btop showing what's running.

Captured on x86-64 under KVM. How the screenshots were made.

The repositories

Ferrix lives in the ferrix-os organization. This repository holds the kernel, its libraries, the system's programs and the build; the parts below have repositories of their own, which cargo xtask checks out into this tree at the commits components.toml names.

btop, built against ferrousli, on Ferrix
ferrix-os/ferrousli
The C library, written in Rust, that Linux programs on Ferrix are built against, and the toolkit they are ported onto it with.
zinc running oh-my-zsh on Ferrix
ferrix-os/zinc
The zsh-compatible shell, written in Rust, with oh-my-zsh running in it.
Steam's store on Ferrix through yserver
ferrix-os/yserver
The X server, in Rust, that Steam and other X11 programs draw through, on Ferrix's rootless Wayland backend.
Ferrix's website
ferrix-os/ferrix-os.github.io
The website, at ferrix-os.github.io.
The Pixel 7 tools' icon
ferrix-os/pixel7
Ferrix on the Pixel 7: the Android launcher app, the desktop build, release packaging and the monitor.
vkgears drawing Vulkan gears on Ferrix
ferrix-os/apps
Every program a person starts: Ferrix's own, like badapple and ferrofetch, and those ported onto ferrousli, like foot, btop, curl, git and vkgears.

What works

  • Linux programs: Chrome, rustc, git, curl, Valve's steamcmd and other tested binaries run without patches, 32-bit x86 programs included. Valve's Steam client starts and shows its sign-in window. Ferrix implements the Linux system calls they need. It also has its own C library, ferrousli, for native userland programs.
  • A desktop: The hyprix Wayland compositor tiles windows and starts with a terminal running the zinc shell. Chrome can play video with sound. X11 programs appear as ordinary windows through yserver, an X server written in Rust. The bar, launcher and idle daemon are Rust rewrites of waybar, fuzzel and hypridle that read their usual configuration files.
  • Users and passwords: The full desktop (run-compositor --everything) runs as the user ferrix, not root, and its lock screen unlocks only with that user's password. cargo xtask run --login boots to a console login prompt, and su asks the user's own password. Passwords are checked by authd, a service of Ferrix's own that stores them as Argon2id hashes.
  • Drivers outside the kernel: Disk, network, graphics, input, sound and console drivers run as processes. On x86-64 and AArch64, an IOMMU limits their device access. Ferrix can restart them after a crash.
  • Persistent storage and networking: The root filesystem is btrfs, and an installer can put Ferrix on a virtual machine's own disk. Inside Ferrix, git can clone a repository and curl can fetch over HTTPS.
  • Three architectures: Boot tests cover x86-64, AArch64 and ARMv7-A. Ferrix has also booted on an STM32MP157D-DK1 board and a Pixel 7.

The roadmap tracks what is done and what is still being built. Ferrix is not ready as an everyday operating system.

Boot Ferrix

Install Rust and QEMU, then:

git clone https://github.com/ferrix-os/ferrix.git
cd ferrix
cargo xtask run --arch x86_64

That opens a serial console. For the desktop, run cargo xtask run-compositor. The technical guide covers firmware requirements, other architectures, Windows, graphics options and the extra downloads needed for Chrome and the Rust toolchain. Quit QEMU with Ctrl-A, then x.

Check the claims

The boot test starts Ferrix on all three architectures:

cargo xtask test-boot --arch all

Other tests compile a program with an unmodified rustc inside Ferrix and boot an x86-64 image built inside Ferrix. On 2026-10-03 Ferrix also built its own AArch64 image inside Ferrix on a Pixel 7, in the phone's own virtual machine, and that image passed the boot test. The guide has the commands and serial output. These tests demonstrate specific working paths; they are not a claim that every Linux app works.

How the project is built

Claude sessions write most of the code in separate worktrees. A human owner sets priorities, and changes have to pass their tests before landing. The working rules include mistakes the project has made and what changed afterward. Human contributions are welcome; see CONTRIBUTING.md.

Ferrix is MIT licensed. Explore the code and component docs, get the logo and press kit, or open an issue.

About

Experimental Rust operating system running unmodified Linux apps on its own kernel, with restartable userland drivers and a Wayland desktop.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages