+++ date = "2020-12-22T03:41:52+00:00" publishdate = "2023-12-29T07:08:55+00:00" title = "A Few Linux Distributions" slug = "a-few-linux-distributions" author = "Thedro" tags = ["linux"] type = "posts" summary = "My devices have seen numerous Linux distributions over the course of my computing journey." draft = "" syntax = "" toc = "" updated = "" +++ {{< image source="/images/a-few-linux-distributions.png" title="Tux" >}} Tux {{< /image >}} My devices have seen numerous Linux distributions over the course of my computing journey. A Linux distribution is an operating system built around the Linux kernel. Many new comers to the Linux community are evangelised in, but others come in from a lack of computing freedom. I'm of the latter camp. If you are a new comer to the Linux community, then choose the first distribution that suits your fancy. Don't waste time determining which is best. To put it bluntly --- arguments of the "best" are {{< sidenote mark="battles" set="right" >}}If capital decides advantage in the business world, then mind share is what decides advantage in the Open Source world. Such [battles](https://www.gwern.net/Holy-wars) are often termed ["Holy Wars"](https://wiki.c2.com/?HolyWar).{{< /sidenote >}} over mind share and collective use cases. Programmers and computing enthusiasts enjoy dictating how software should be used. Terms such as "best practices", and "anti-patterns" pop up frequently --- ignore them for the most part. In time, you'll be able to discern if such advice warrants a change in operating systems, use cases, or specifications. That being said, here's my personal review of a few Linux distributions used over the years. ## Ubuntu [Ubuntu](https://ubuntu.com/) is probably the most well known distribution as it is backed by the company Canonical. This was my first ever Linux distribution, and most new users often end up here. If casual computing is the goal then it's an okay distribution. Occasionally the business interests of Canonical clash with the user base, motivating some to other distributions. The updates are {{< sidenote mark="fixed" set="left" >}}Fixed release updates are pushed at specific intervals (for example twice a year).{{< /sidenote >}} and the package managers are `apt` and `snap`. In the server world Ubuntu is also popular. You can be assured that many companies run Ubuntu as production servers. My reason for keeping Ubuntu around is due to its popularity in production. ## Debian [Debian](https://www.debian.org/) is a distant cousin to Ubuntu. This is the only distribution that one can install on a {{< sideimage mark="casual" set="right" source="/images/headless-gpu-remote-acceleration.png" >}}A typical set and forget Debian desktop ([`XFCE`](https://www.xfce.org/)){{< /sideimage >}} user's computer and receive no complaints. Debian is built to be stable, conservative, and "boring". The updates are fixed and the package manager is `apt`. You can't go wrong using Debian as a server in production. The conservative package repository boasts exceptional reliability at the cost of lacking the latest features. ## Arch [Arch](https://www.archlinux.org/) is a popular distribution that is best known by its [Arch Wiki](https://wiki.archlinux.org/) and [Arch User Repository](https://aur.archlinux.org/) (`AUR`). The package repository is expansive and bleeding edge. Arch adheres to the {{< sidenote mark="KISS" set="right" >}}Keep it simple, stupid.{{< /sidenote >}} philosophy, making it a simple but flexible distribution. Due to its massive mind share, a user can trivially find and install anything they want. The updates are {{< sidenote mark="rolling" set="left" >}}Rolling release updates are pushed as soon as they are ready.{{< /sidenote >}} and the package manager is `pacman`. Using Arch as a production server is frowned upon, but can be done. A production Arch server {{< sidenote mark="patches" set="right" >}}To fix bugs and security vulnerabilities.{{< /sidenote >}} software faster than any other distribution, but at the cost of extreme volatility from moving targets. ## Manjaro [Manjaro](https://manjaro.org/) is an Arch based distribution with the aim of being more user friendly. Many casual users enjoy this Linux distribution. It's a feeder distribution into the Arch philosophy. The updates are rolling release and the package managers are `pacman` and `pamac`. ## Void [Void](https://voidlinux.org/) is sometimes referred to as a {{< sidenote mark="BSD-like" set="left" >}}Berkeley Software Distribution ([FreeBSD](https://www.freebsd.org/), [OpenBSD](https://www.openbsd.org/), [NetBSD](https://www.netbsd.org/)).{{< /sidenote >}} Linux distribution. The base system is compact and has sane defaults. Void Linux is popular among technical users as it cuts through a lot of the fat in other modern distributions. The updates are rolling release and the package manager is `xbps`. ## Alpine [Alpine](https://alpinelinux.org/) is a lightweight security focused distribution. Personally, Alpine is superior to all other distributions in terms of size, simplicity, and productivity. Alpine is not user desktop oriented, but for servers it _is_ the dream. If you have a choice, use Alpine as a server. The updates are both rolling and fixed and the package manager is `apk` --- probably the fastest and simplest package manager to date. ## CentOS (Rocky Linux) [CentOS,](https://www.centos.org/) soon to be [Rocky Linux](https://rockylinux.org/) is an enterprise oriented distribution backed by Redhat. CentOS is inherently stable and conservative due to its focus on the enterprise use case. Business types prefer safe options, so you'll only tend to see this system running at companies and corporations as CentOS or Red Hat Enterprise Linux (`RHEL`). The updates are fixed and the package managers are `yum` and `dnf`. ## NixOS [NixOS](https://nixos.org/) is a new {{< sidenote mark="type" set="left" >}}[Guix](https://guix.gnu.org/) is another similar distribution.{{< /sidenote >}} of Linux distribution that focuses on reproducibility and immutability. The operating system is built from a single file that resembles a specification. NixOS allows you to remove the complexity of other domains entirely and stand on the shoulders of {{< sidenote mark="giants" set="right" >}}Perhaps an attempt at the concept of a [formal system.](https://en.wikipedia.org/wiki/Formal_system){{< /sidenote >}} --- but at the cost of more complexity in the form of an incongruent abstraction layer. This is my least recommended Linux distribution because some use cases require extensive knowledge of how a typical Linux operating system works. The abstraction is not intuitively consistent and you must know how to fix an underlying problem when it breaks. When you don't have to fight the abstraction, it's _truly_ a computing dream come true. The updates are both rolling and fixed and the package manager is `nix`.