Vanilla Linux is no longer in development, see why.
What is Vanilla?
It’s a new radically different, simple, modern Linux distribution based on a complete LLVM toolchain, musl and busybox.
design | downloads | contribute | mailing lists | support | repository | post-mortem
Goals and non goals
- No systemd. Systemd isn’t a bad thing in itself, but it’s too complex to be qualified as KISS.
- No installer. Installers are too complex, error prone and not enough flexible. The key idea is to use the a minimal archive and then install additional packages.
- No cross compilation. While sometimes handy, making cross-buildable packages is too complex and many software are not cross-compilable.
- Flexibility. The source packages tree allow package customization with ease in clean chroots.
- Stability. Fixed versions with ABI/API compatibility honored.
- Weak dependencies. The vpk tool installs dependencies by default but let user process dependencies manually.
- Elegance. All applications, init scripts and package paths are following a strict coding and UX styles.
- Simplicity. Packages are simple tarballs and inspected via simple text files.
- Free and opensource. The Vanilla Linux repository tree does not contain proprietary software. All Vanilla tools and recipes are written using the permissive ISC license.
- Neutral. Packages are kept as close as possible to upstream with no or few changes for compatibility only.
Vanilla Linux use many different parts of the system in contrast to popular distributions. As such, it is not qualified as “GNU/Linux” distribution as the minimal running system does not require GNU components. On the other hand, Vanilla Linux isn’t against GNU and provide many programs (like GCC) as alternatives.
- musl: a clean and lightweight C library that aims to be correct.
- busybox: a set of components for a basic system.
- llvm: toolchain for several languages including C, C++.
- linux: the obvious Linux kernel.
- wayland: strong focus on wayland for a long-term replacement to X.Org (X.Org is shipped though).
- libressl: LibreSSL is used instead of OpenSSL.
- sysvinit: an old fashion traditional init system (can replace busybox’s init).
- sysklogd: simple system logger daemon (can replace busybox’s syslogd).
- dcron: simple job scheduler daemon (can replace busybox’s crond).