title: "A Brief Introduction to Free/Libre Operating Systems" date: 2019-01-19
The following is an introduction to choosing a free operating system (OS), and a look at some of the ideas driving the creation and use of free software more generally. I will discuss some of the basic principles of free software, and then introduce a few of the most popular Free-as-in-Freedom OS'es, to help provide some sense of the options available for moving to freer computing experience.
There is an active community of technologists, lawyers, artists, and hobbyists that consider freedom to be of central importance in discussions about computers. Computer technology has come to have such enormous influence on our lives, the argument goes, that these machines and their use ought to be considered on the plane of ethics. How we use computers will say a lot about our society. And at the center of this ethical discussion: user freedom.
User-freedom (to borrow a phrase from Christopher Lemmer Webber), in the context of software, refers roughly to the freedom to be able to inspect, modify, distribute, and use software in whatever ways you see fit. You should be able to make improvements and alterations the software-enhanced devices that you have purchased (see TiVoization; you should be permitted to repair software-enhanced objects (such as automobiles) that you have purchased when they fail, and manufacturers must not make the information to do so inaccessible (see right to repair); you should not be punished for sharing software, original or unmodified (see 4 software freedoms).
The effort to achieve these freedoms has been driven in large part by work on computer operating systems. Because the operating system is the foundation or core of any work done on a computer, it is a natural starting point and home base for a community and a method of work to enhance freedom through software. Everything a user might run (a browser, word processor, video player, etc), will sit on top of the operating system; working for freedom in these higher-level applications is important, but the value of such an accomplishment will be nullified if the base on which they sit is corrupted. So the early work began with the core. The GNU Project and the Free Software Foundation have provided much of the leadership and example for how such an approach might work.
The GNU project1 and the Free Software Foundation have spearheaded the free software movement since about 1983/84, during which period the 2 organizations, working hand in hand, spent much of their early energy building a free/libre replacement to the Unix operating system, which was a popular and immensely influential proprietary OS from the 1970's onward that was used widely in business and research. GNU and FSF continue today to do work central and critical to the health of the free operating system ecosystem.
[1: for those unfamiliar with GNU, the acronym stands for GNU's Not Unix. GNU is a recursive acronym, which is the sort of joke that programmers like. Other examples include PHP (PHP: Hypertext Preprocessor), and WINE (Wine is Not an Emulator).]
The moral of the GNU/FSF trajectory story is that if you are composing a free software computing environment, whatever your reasons, the first piece to consider is which operating system to use. The following are some questions to navigate when making that decision.
If you were to ask around a bit about which operating system you ought to look at if you are interested in software freedom, the most common response you would get, I suspect, would be to "use Linux". Which is a fine first pass. Using Linux is indeed a good starting point to set out on a free software journey. But this answer misses a number of important points. I will address these three caveats, before getting into the OS reviews. In overview, these issues with the answer "use Linux" are that:
Let's look at these points in more detail, before examining the candidate OS'es.
The first issue with the answer that you should "use Linux" is that there is some disagreement about what to call "Linux distributions", often shortened to "distros". These terms refer to a bundle of software applications, typically including the core operating system (particularly the Linux kernel, which handles hardware initialization, memory management, and other low level functions), along with various system utilities and user-space applications (such as web browsers and word processors). While "Linux distro" or "Linux distribution" is the most commonly used term to refer to these software bundles (see, e.g., distrowatch.com), there are vocal advocates of free software that insist on calling them GNU/Linux distributions, to acknowledge the role that the GNU project has played in the development of some key software included with these distros, such as the GNU C Compiler (gcc), bash, tar, GRUB,
gzip, and coreutils (as discussed a bit in the first section).
Arguably more important than the software packages that the GNU project has created are the ideological contributions of the FSF and GNU to the free software movement. Lead by Richard Stallman, the FSF has long championed the importance of computing platforms that respect and enhance the rights and freedoms of users. They have articulated a view of software use and development that foregrounds the issue of freedom. It is an evolving set of ideas about why freedom is important and how we can protect it.
Related to the naming nuance above, there is a common conflation of free software with open-source software (OSS). The contemporary visibility and (seemingly) intuitive positioning of OSS causes some understandable confusion in conversation about software freedom. But GNU and The FSF argue that free software and open source software are not the same thing, they do not stand-in for one another as synonyms pointing at the same idea. The primary message of the Free Software movement is that we should be cognizant of how software development, distribution, and use impacts the freedom of individuals, and thus how it affects the structure of societies more broadly. It is a "Big Idea", an explicitly socio-political one. Open-source software, on the other hand, has claimed for itself the territory of a socially and economically beneficial software development methodology. It is not concerned, first and foremost with freedom, but instead with transparency, openness, and the multiplicative, beneficial effects of developing software in the open. The topic is complex and nuanced, and bringing it up in polite company is surely akin to casting Repulsive Miasma, -1 Social Graces. But if you're interested in learning more about the topic while you run, drive, or do dishes, I recommend listening to both Free as in Freedom and Libre Lounge, two excellent podcasts focused on free software. FAIF focuses on issues surrounding software policy, law, licensing, and other high-level socio-technical issues, while Libre Lounge examines user freedom, culture, usability, and other related topics.
To return to the first issue: because of GNU's role in laying much of the groundwork for modern "Linux distros", and for their important role in promoting software freedom, I think it is more appropriate to refer to the distros we are going to look at as GNU/Linux distros, but there are plenty of differing opinions around the web (see here or here for more).
There are some free-software alternatives to GNU/Linux, perhaps most notably the Berkley Software Distributions. These distros are a viable alternative to GNU/Linux and share much in common with the GNU/Linux distros, so users familiar with one ecosystem should be able, without too much pain, to migrate to the other. While GNU/Linux is used more widely than BSD, BSD has a strong and active community around it.
There are others, as well. An interesting newcomer to the space is RedoxOS, which is a free operating system and bundle of utilities (just as with a GNU/Linux distribution) written in the Rust programming language (rather than in C, as much of GNU/Linux, including the Linux kernel, is). I do not review Rust here, because I have not yet had the opportunity to try it, but I would encourage you to give it a chance if you are in exploration mode.
Not all GNU/Linux distros package exclusively free software. In fact, most distributions ship with non-free software. Some include proprietary software with more restrictive licenses than those endorsed by the FSF (which maintains the GNU Pubic License, or GPL, but also endorses a number of other software licenses; see here for more info). So while the core components of the operating system may be free, the auxiliary programs that come along with the OS may not be. There are two basic components to this: which applications are included by default when you install a new GNU/Linux distro, and which packages are made available for later download via the official package repositories (or "repos") of the distro. The package repositories make up the user-land software ecosystem of the distro.
So while most distributions include a mix of free and non-free software packages, there are a number of distros whose declared purpose is to package exclusively free software. By choosing to use one of these operating systems, you make it as easy as possible to use free software. These distributions are most valuable in the specific case that you want to run only and entirely free software.
And this brings us to the core of this article: a look at some of the GNU/Linux distros best suited to use as the foundation of a fully Free Software computing environment.
In the remainder of this post we examine the following operating systems:
Trisquel is an Ubuntu-based distribution that packages exclusively free software (Ubuntu is, in turn, based on Debian, which we discuss below). It is one of the distros officially endorsed by both the FSF and Libreboot, the latter of which is doing great work in liberating hardware, by distributing fully free boot firmware, which is the low-level foundation that initializes your computer's hardware and atop which your OS sits. (an upcoming post will discuss Libreboot in more detail.)
Trisquel is a full-featured distro that comes with everything you need to get started working right away. It ships with a web browser, a suite of office tools (LibreOffice), and many other utilities, so that you have a fully functional system right out of the box.
If you are comfortable with a Debian-based distro like Ubuntu or Mint, you could switch to Trisquel without much trouble. It maintains a large collection of packages, which makes it easy to find the software you need. The extensive support resources around the web for distros such as Debian, Ubuntu, and Mint, are largely relevant to Trisquel without much or any modification, and this can be enormously helpful when you run into sticky problems with the OS or an installed package. Trisquel is easy to get started with, and is a very solid choice for a free OS. This is a great distribution for folks new to free software and/or GNU/Linux, as well as those with more experience under their belt.
Parabola, like Trisquel, is endorsed by both the FSF and Libreboot, but unlike Trisquel, is based on Arch Linux. There are a number of key differences between the Debian based distros and Parabola/Arch. First, Parbola and Arch are often called minimalist distros, meaning that the base install gives you only the very basics that you need for a running system (after install, you will boot into a humble command line). From there, it is up to you to build the system you want, including graphical environments, web browsers, and everything/anything else you might use. This is in contrast to a distro like Trisquel, which ships with a full suite of software, including a graphical desktop environment and common GUI tools like Firefox. Parabola gives you the freedom to compose an environment built of exactly and only the tools that you want. Parabola/Arch are often considered distros for more advanced users and/or users who wish to do a great deal of customization to their GNU/Linux environment. There is an initial learning curve with Parabola/Arch, primarily in using a text-based, command-line driven installation process, but once this first hurdle is cleared, using Parabola need not be much more difficult than using Trisquel.
A second difference between Parabola/Arch and Trisquel is that the former use use a rolling release model, which means you can install the system once and (in theory), continue to update that install forever. This means no "fresh re-installs" of the OS are necessary to stay up to date. The alternative release model, the one used by Trisquel, Ubuntu, and Debian, is to release new versions periodically (e.g., Trisquel 7 -> Trisquel 8), to which a user may upgrade.
A third difference is that Parabola/Arch are often called "bleeding edge" distros, because the software in the distributions' repositories tends to be "hot off the press". In other words, what you download via the package manager (called pacman in these distros) tends to be the newest or very nearly the newest version of the software available. The positive side of this is that you can get new software shortly after it is released, and you will always have the latest (and hopefully greatest) versions of the tools you use. The negative side of this is that the quick release cycle sometimes means that the package maintainers may miss a bug or integration issue with a new version of a package, and an update might cause issues with your system. While this is a real risk, and can cause headaches if it happens, it is not a frequent or regular occurrence. The risks of system-breakage with Arch-based systems are much lower than some discussions around the web might indicate, and should not deter the curious user from trying these distros.
The final difference I'll mention between Parabola and Trisquel is the great variety of community contributed packages in the Arch/Parabola ecosystem. Arch and Parabola users have access to an incredibly extensive set of "unofficial", user-written packages via the Arch User Repository (AUR). This greatly expands the variety of software that is available for easy installation and maintenance on your system. In addition to the packages that the Arch community maintains, the support resources around the web are second to none. If you have an issue with Parabola/Arch, you will likely be able to find help in the Arch Wiki or on the Arch Forums. Furthermore, if you have issues with any GNU/Linux distro, you'll likely find some help in the Arch Forums. If you are new to GNU/Linux, this might seem uninteresting or unimportant, but once you get your feet wet a bit, you will come to realize that is impossible to overstate the value of these resources.
Parabola is more difficult to get started with than Trisquel. It requires a bit of manual setup to get going, and while the official setup guide is excellent, the command line work and manual configuration required may be intimidating to newcomers to the GNU/Linux ecosystem. Once installed however, you will have a system tailored to your exact specifications. This distro is a good choice for users who love tinkering and customizing, those who are comfortable with GNU/Linux already, and those who are looking to explore a new operating system as a learning experience.
The FSF has recently added PureOS to its list of officially endorsed distros (see here for the story).
PureOS is another Debian based distro, developed by the folks at Purism, who also ship liberty-focused hardware (see the upcoming blog post on free hardware for more on Purism). According to the CEO of Purism, "PureOS is a GNU operating system that embodies privacy, security, and convenience strictly with free software throughout." source PureOS, is a viable option to Trisquel as a user-friendly, fully free OS. If you try it out, let me know what you think.
Freenix, formerly FreeSlack, is a project to help users maintain a fully free system based on Slackware, which is the oldest GNU/Linux distro still in use. Slackware has been around since 1993, and is still going strong. It is praised for its exceptional stability, its system management philosophy (simplicity above all else), and the control it gives the user over their system. Like Parabola/Arch, it is another example of a distro aimed at so-called "power users", a term sometimes used in GNU/Linux land to refer to an advanced computer user.
Note that Freenix, as of the time of this writing, only ships a 64-bit distro, but some of the machines on which Libreboot runs have 32-bit processors. The maintainers of Freenix recommend ConnochaetOS for 32-bit machines.
Note also that while you cannot run Freenix if you have a 32-bit processor, you can manually modify a stock installation of Slackware to use only free software. This would involve swapping out the standard Linux kernel for the GNU/Linux-libre kernel, swapping non-free packages for free equivalents, and, if using software repositories, ensuring that you are using repos that only package free software. If you are not using a package management tool, you will have to manually verify the licenses of each package that you install. This last option would require a fair bit of work, and removing that burden from the user is one of the main reasons that free software distros are created and maintained.
Slackware has a long history and a loyal user base, but is no longer as popular as Debian and Arch based systems. It's relative novelty/obscurity will make using Slackware an interesting challenge and adventure for some, but may not provide the user with a community as strong as those around the Debian- and Arch-based distributions.
Debian is a very important GNU/Linux distribution. It has been around since the distant era of 1993, it is extremely stable (meaning your system is unlikely to break from package updates), it has an enormous and active package ecosystem, and it is the foundation of a number of other distros, most notably Ubuntu (and its derivatives) and Mint. Debian ships a free and a non-free variant, where the latter includes some packages, such as WiFi drivers and multimedia codecs, that are proprietary. The free variant excludes these proprietary packages, and aims to ship only libre software. Despite its popularity and solidity, Debian is not currently endorsed by the FSF, largely because of the non-free, non-Debian software that it maintains in its repositories. While this software can be avoided, and a user can run a fully free Debian distro, Debian also makes it easy for users to install non-free software, and it seems this is the reason that the FSF does not include them in their list of officially endorsed distros. See here for more.
As mentioned above, Debian is the base of Trisquel and PureOS, so much of what we said about those distros also applies to Debian. Debian is a mainstream and very established distribution of GNU/Linux, and provides users with a rock-solid experience.
The Berkley Software Distribution is, like GNU/Linux, a descendant of the Unix operating system, that was developed at the University of California, Berkeley, beginning in 1977. The BSD ecosystem has much in common with the GNU/Linux ecosystem, but also differs in some important ways. Most notable, for our purposes here, is that the BSD community maintains the kernel, drivers, documentation, and user-land utilities, and a BSD distro (of which there are several, including DragonFly BSD, FreeBSD, and OpenBSD, among others), ships "with everything". GNU/Linux distros, on the other hand, tend to be more modular or composable. The Linux Foundation maintains the Linux kernel, and GNU maintains its collection of software packages, while much of the rest of the software included in a GNU/Linux distribution comes from a variety of third-party sources. The centralized maintenance of BSD is often touted as a strength of the BSD distros: the more unified structure of maintenance and distribution reduces the likelihood of compatibility issues and vulnerabilities (it is argued).
Many of the tools available to GNU/Linux users are available to BSD users, and much of the skill required to operate one class of system is transferable to operating the other. The BSDs are an excellent option for for individuals wishing to use free software.
The free-software operating systems profiled above are just a handful selected from a vast and varied landscape. There are hundreds, possibly thousands, of distros of GNU/Linux (and a handful of BSD distros), and while not all of them adhere to principles of free software, quite a few do (for a more extensive list of distros endorsed by the FSF, see here). This variety gives the user choices and flexibility, which is one of the great benefits of using free software.
Once you have chosen, installed, and configured a free/libre operating system, you are well on your way to a fully free computing environment. Good luck!