NOTE: Stolen from Portuguese and translated into English by me, with a little help from Kagi Translate
In 2008, a developer with previous experience in NetBSD began work on a new package manager for Linux called XBPS, an acronym for X Binary Package System. He had in mind to create a tool that was fast, reliable, well-featured, and, most importantly, portable enough to work independently of any specific distribution.
Projects like this are not uncommon in the open source world, but XBPS ended up taking a slightly different path. To test their package manager in a truly neutral environment, the developer decided to create an operating system from scratch. If XBPS worked there, it would work anywhere. This is how Void Linux was born, an independent distribution that, over time, went from a technical experiment to a real alternative within the Linux ecosystem, even being compared in some scenarios with Arch Linux.
A really independent system
Unlike distributions like Ubuntu or Linux Mint, which are based on other distros, Void Linux is built from the ground up. This means that it does not inherit technical decisions, tools or limitations from previous projects. The entire system revolves around the XBPS, which remains one of its central pillars.
This independence allowed Void to adopt unusual choices. Over time, it came to differentiate itself not only by its origin, but by a combination of technologies that rarely appear together in other distributions.
Runit instead of Systemd
One of the first noticeable differences is in the init system. While most modern distributions use systemd, Void Linux opts for runit.
The init system is the first process started after the kernel and is responsible for initializing essential system services such as networking, audio, and graphical interface. The runit follows a simpler and more straightforward approach, focusing on speed and POSIX standard compliance. It avoids centralizing multiple functions in a single component, unlike systemd, which aggregates multiple responsibilities.
Although Void is one of the main promoters of the runit, it is not the only system to use it. Distributions such as AntiX, Artix, Gentoo, and Devuan also support it, and the runit can even appear in BSD systems, including NetBSD itself and OpenBSD, and can also be used in environments such as macOS for user-level process management.
GLIBC or MUSL
Another point that differentiates Void Linux is the possibility of choosing between two C libraries: glibc and musl.
These libraries act as an intermediate layer between programs and the Linux kernel. The choice between them directly impacts the behavior of the system. GLIBC is the most common and offers wide compatibility, being used by most distributions. MUSL was designed with simplicity, lightweight and POSIX compliance in mind, resulting in smaller binaries and lower resource consumption.
This choice, however, may have implications. Not all software works perfectly with MUSL, especially proprietary applications or those dependent on specific GLIBC behaviors. Still, Void stands out for consistently supporting MUSL, which is relatively rare. An example of another distribution that follows this line is Alpine Linux, widely used in container environments precisely because of its lightness.
Rolling release with a conservative approach
Void Linux follows the rolling release model, as does Arch Linux. This means that the system is installed once and updated continuously, without the need for periodic reinstallations. However, there is an important difference in how these updates are conducted.
While Arch tends to quickly adopt newer versions of packages, Void maintains a more conservative stance. Updates arrive continuously, but with a certain amount of additional care, reducing the likelihood of unexpected issues. This creates a balance between constant updates and stability, something that can be relevant for those who intend to use the system on a daily basis.
Technical minimalism in practice
Void Linux is often associated with the concept of minimalism, but not in a visual sense. This is a technical minimalism, where the system delivers only what is necessary to function.
It's possible to run Void with around 250MB of RAM, which highlights the impact of your design choices. There are no extra components running in the background unnecessarily, no tools installed by default beyond the essentials. This results in a fast and responsive system that requires manual configuration for virtually any task.
Installation and first steps
The Void Linux installation process starts with downloading the image from the official website. There are versions for different architectures, including 32-bit systems, as well as options with XFCE graphical interface and base images in text mode. During the download, the user also chooses between the versions with GLIBC or MUSL.
When starting the base image, the system presents a text mode environment. The default credentials are provided on the download page itself and on the home screen: the root user with password “voidlinux” or the user “anon”, also with the same password. To start the installer, administrative access is required, which can be done with the void-installer or sudo void-installer command.
The installer is text-based but well organized. By following the sequence of steps, it is possible to complete the installation without major difficulties. After the reboot, the system starts again in text mode, with no graphical interface installed.
Installing a graphical environment
To use the system with graphical interface, it is necessary to manually install the desired components. During testing, installing KDE Plasma was relatively simple, but required some additional adjustments, especially in the configuration of SDDM, the KDE login manager.
A relevant point noted during this process was that XBPS does not automatically install all the necessary graphics components. Elements such as Xorg or Wayland need to be installed manually, which highlights the more explicit nature of the system. This type of behavior requires greater familiarity with the inner workings of Linux.
For those who prefer to avoid this initial process, there is the version with XFCE pre-installed. Still, the installer remains in text mode, and the resulting system is quite lean. The installation includes only the basic interface components and the Firefox browser, with no app store or graphical tools for package management.
Using XBPS on a day-to-day basis
XBPS is simple in the way it organizes your commands. To update the system, usexbps-install -Syu , as long as the XBPS itself is up to date. Otherwise, the system informs you of the need to runxbps-install -u xbps it first.
Package installation is done withxbps-install nome-do-pacote , which may include the option-S to update repositories simultaneously. Packet removal is performed withxbps-remove nome-do-pacote, and using the parameter-R also removes unused dependencies. To fetch packages, the term commandxbps-query -Rs returns relevant results.
During our testing with the MUSL version, there was a case of unfulfilled dependencies when trying to install GIMP. The solution involved updating the system and changing the mirror of the repositories using the xmirror tool. After the full update and reboot, the installation proceeded normally. This type of situation illustrates both the flexibility and potential difficulties associated with using MUSL.
Compilation and isolation with xbps-src
In addition to installing binary packages, Void supports compiling software via xbps-src. An important differentiator is the use of isolated environments via chroot during the build process.
This isolation prevents build dependencies from interfering with the main system, keeping the environment cleaner and more predictable. The concept is similar to that used by modern containerization tools such as Docker, although applied differently.
Community, culture and governance
Void Linux has a smaller community compared to other popular distributions. This directly impacts the amount of documentation available and the ease of finding ready-made solutions to specific problems. While the Void Handbook is useful, it doesn't have the same level of detail as the Arch Linux documentation.
There is also a recurring profile of users migrating to Void in search of a leaner, less popular experience. This can influence the culture of the community, which tends to be more technical and, in some cases, less welcoming to beginners.
The project underwent a significant change in 2020 when its original creator left the team following internal disagreements. Despite this, development continued under the responsibility of other maintainers, and the system remains active, receiving regular updates.
Is it worth using?
The decision to use Void Linux depends directly on the user profile. For those not interested in differences between init systems, C libraries or package managers, the system probably does not offer relevant advantages over more popular alternatives.
On the other hand, users with a technical interest, who value control and understand the inner workings of the system, may find Void an interesting platform. It could also be a viable option for older machines, especially given its lightweight nature and support for 32-bit architecture.
In the current scenario, where Linux is moving towards more automated solutions, with greater use of containers and immutable systems, Void follows a more traditional approach. This does not make it obsolete, but positions it as a specific alternative, aimed at an audience that prefers a greater level of control over the system.
In the end, Void Linux doesn't try to be for everyone. It works well within its own context, serving a specific group of users who know exactly what they are looking for.
Perhaps Void Linux takes user freedom of choice a little more seriously than you'd like. A more reduced and simplified alternative, but one that still provides many choices to the user, is to install Arch Linux using Archinstall.