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
![]() |
![]() |
![]() |
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.
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.
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. |
ferrix-os/zinc The zsh-compatible shell, written in Rust, with oh-my-zsh running in it. |
ferrix-os/yserver The X server, in Rust, that Steam and other X11 programs draw through, on Ferrix's rootless Wayland backend. |
ferrix-os/ferrix-os.github.io The website, at ferrix-os.github.io. |
|
ferrix-os/pixel7 Ferrix on the Pixel 7: the Android launcher app, the desktop build, release packaging and the monitor. |
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. |
- Linux programs: Chrome,
rustc,git,curl, Valve'ssteamcmdand 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 userferrix, not root, and its lock screen unlocks only with that user's password.cargo xtask run --loginboots to a console login prompt, andsuasks the user's own password. Passwords are checked byauthd, 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,
gitcan clone a repository andcurlcan 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.
Install Rust and QEMU, then:
git clone https://github.com/ferrix-os/ferrix.git
cd ferrix
cargo xtask run --arch x86_64That 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.
The boot test starts Ferrix on all three architectures:
cargo xtask test-boot --arch allOther 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.
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.






