This document contains a regularly replenishing list of stal/IX and conventional Linux differences.


“UNIX is simple and coherent…” - Dennis Ritchie

“GNU’s Not UNIX” - Richard Stallman

stal/IX is not UNIX or Linux in the usual sense of these terms.

stal/IX - an attempt to rethink some fundamentals without touching Linux API and ABI.

One of the stal/IX goals - from the very beginning to build the system in such a way that it’s possible to understand how it works, and not only use it conveniently.


Overall, the file system will be familiar to those who know Nix/Guix. Atomic updates, multi-versioning - all here!

No systemd

stal/IX currently uses runit as the most lightweight solution, perhaps, this will change in the future.


Glibc does not fully support static linking. stal/IX uses musl for internal needs, and allows to build custom soft with an arbitrary libc on a choice.

Non-root package management

All files on the system are IX user-owned, and all package management is done on his behalf.

Consequence - there is not a single suid binary on the system. Sudo - the thin layer over local ssh daemon, for privilege escalation.

Fully supervised process tree

Every process different from init has a parent different from init. All processes that fail to meet this requirement are killed by a specially dedicated background process. To manage services used runit, encouraging this behavior.

Static linking


Wayland only

X is dying, and to maintain the efficiency of the IX package base running with X means doing work that one day will have to be thrown out. We don’t have enough resources for that.

Login shell


Every user session must start from the login shell, even in ssh daemon.

Patch for dropbear to launch all processes, including non-interactive ones, with login shell.

Cross-compile by default

All packages are compiled as if host platform != target platform, thus, we achieve that the package base is built for all platforms most of the time. We have a cross-compiling CI for aarch64 and riscv!

File associations

The existing mechanisms for associating programs to file types are complex, fragile, and difficult to integrate into IX realms.

Therefore, stal/IX has its own mechanism for linking programs to file types. It is based on the xdg-open-dispatch script, and changes in upstream to redirect their mechanisms to xdg-open, patch for epiphany WEB browser.

Interaction with upstream