I've tried and researched a lot of Linux and BSD distributions in search of two goals:

  1. One to recommend to newcomers to Unix.

  2. One I'd want to use myself.

    I'm a software idealist - I don't want to use an operating system that isn't the best designed one. Where practicality and design quality conflict, I seek a balance, because I realize practicality is the point of it all, and I'm not an OS dev, but I want to support and encourage good architecture and also I think using it helps me grow wiser about software.

Here are my notes on the ones I've tried or researched and why I won't or will use them. When I say things like "broken install process", I mean that when I tried it, I ran into things that were clearly releng mistakes, such as the installer telling me to run a command that doesn't exist. I consider egregious instances of this pretty much disqualifiers; I don't want to use a distribution that's had problems like that, even if they've fixed it since.

Anything Debian-based (incl. Ubuntu, Mint)

Reputation: stable, user-friendly

Init system: systemd

Tried: Ubuntu years ago, Mint in 2020 summer

Devuan

Reputation: fork of Debian that switches out systemd for sysvinit. Everything else from Debian applies.

Tried: 2020 summer

Fedora

Reputation: cutting-edge

Init system: systemd

Tried: 2020 summer (only on server)

CentOS is derived from Fedora (through Red Hat), so it's much the same except its packages are outdated as hell.

Arch

Reputation: DIY for advanced users

Init system: systemd

Void

Reputation: Linux/BSD hybrid

Init system: runit

Tried: 2020 summer, multiple times.

Gentoo

Reputation: DIY for advanced users, nightmarish install process

Init system: OpenRC (others supported)

Tried: years ago (mentor helped with install); no first-hand recent experience.

Slackware

Init system: sysvinit

Alpine

Tried: 2020-09-17

Reputation: secure, lightweight

Init system: OpenRC

Artix

Tried: 2020 summer - present.

Reputation: Arch without systemd.

Init system: choice of OpenRC, runit or s6. I use OpenRC.

FreeBSD

Tried: unknown year - 2020 summer.

Reputation: the go-to BSD.

Init system: BSD init


Init systems

I keep referencing these and as you can see, systemd is a disqualifier at least for my own use. I explain this now.

systemd

I don't have much personal experience with systemd. My negativity from it pretty much comes from hearsay, but well-sourced hearsay. Two in particular:

BSD init

Works well enough, but service files are extremely cumbersome.

OpenRC

Colored output. Service files are concise.

runit

Runit has fewer lines of code than OpenRC, which attracts me, and I also like the way it leverages the filesystem instead of reinventing it. For example, services are "enabled" by symlinking them into a certain directory.

I like a lot of things about runit, but there are two issues I have, might be solvable but I don't know how:

sysvinit

Legacy standard. I don't know much about it, but the prevailing opinion seems negative.


A few other things I explain about the connection between my notes and my judgements:



This page was last modified (UTC)