Linux
Terry's personal take on the Linux distro War
Terry was a distro hopper (still is, just less active ;-). It's nice to try new flavours and learn the design principles, goals and implementation behind each distribution (.e.g. NixOS, KISS Linux, etc.).
- The distro war has ended.
- Linux has won (dominating in the cloud, data centres, powering super computers, embedded & mobile devices everywhere ;-)
- All Linux distributions are the same: the Linux kernel, glibc and a bunch of GNU utils.
Key points:
- "Adopting Linux like a religion is stupid." - Thomas Cameron
- "We've all been through my distro is better than yours" thingy.
- "The best Linux distro is the one that does what you need at the best cost."
- Linux is NOT about the distribution but the kernel, it's about what the kernel can do.
- Distribution is a way to wrap up what the kernel can do into a more manageable way.
Linux Distributions (distro-hopping journal)
Arch Linux
Arch Linux (KISS, BSD/Slackware Style, technologically simple & cutting-edge, can be bleeding-edge)
Keep It Simple and Stupid, Slackware and BSD like distro, technologically simple & bleeding edge! Famous for its simplicity, user-centric, performance, ABS, AUR, aggressive upgrade strategy and excellent pacman package management tool.
I started my Arch Linux journal in late 2008 so as to understand how to build a highly customised Linux installation without compiling everything from source (you know which distro I am talking about). It is extremely flexible, configurable and customisable, while still simple and liveable, a balance between stability / reliability and bleeding edge if used properly. I am very satisfied with its pacman package management tool, ABS / AUR (yaourt / yay front-end) and Arch Wiki so far. The only drawback may be its rolling update strategy which can sometimes break the system and cost you time to fix ;-D
From 2010, Arch Linux is my sole Linux distro on the N150 netbook, and it has been up till now (obviously on more hardware, including ARM SoCs like the Pi).
Currently running Arch Linux on
Samsung N150 Netbook (x86_64)
Arch + LXQt
2006 MacBook3,1
Manjaro (controlled rolling release) + KDE Plasma / LXQt / GNOME Shell + Pop Shell extension + Yaru theme
In addition, I maintain the Arch Linux x86_64 vagrant base -> vagrantboxes @ GitHub
What makes Arch Linux popular among Linux Ninjas?
Arch Wiki
pacman
AUR and AUR helpers -> yaourt / yay (AUR front-end, script)
BSD-Style init (All in /etc/rc.d, you hate SysV init? Give Arch a shot.) initscripts has gone, now systemd
ABS (ports like package build system, asp, PKGBUILD)
Extremely flexible, configurable / customisable (BYO arch)
Last but not least, Arch is a Rolling Release (it's cutting-edge stable is the balance stability and bleeding-edge)
Used maintained OpenVZ powered VPS running Arch Linux from 2010, for about 1.5 years. Migrated from RAM Host to BuyVM (Debian Squeeze) in Feb 2011 (Arch Linux didn't work well with OpenVZ on 2.6.27 kernel, and RAM Host didn't upgrade the host kernel to 2.6.32 soon enough as promised...
Manjaro Linux
Running x86_64 and aarch64 (Pi 4).
KDE / GNOME shell + Pop Shell extension / Xfce4 / LXQt / i3 / sway
Arch Based, professionally made, desktop focused, controlled rolling release distribution
Has all Arch goodies (cutting-edge) without the papercuts (slightly slower pace), while still easy to use
User friendly
Highlights
Octopi (pacman GUI front-end)
Pamac (GTK3 pacman front0end, pamac)
mhwd (Manjaro Hardware Detection)
...
Red Hat Linux {7,9}
Enterprise Linux and its derivatives
Red Hat Enterprise Linux {5,6,7,8,9}
CentOS {5,6,7,8}
Oracle Linux {5,6,7,8,9} (was Oracle Enterprise Linux, AKA Unbreakable Linux, fully RHEL compatible) with UEK, Ksplice, DTrace, etc.
AlmaLinux {8,9}
Rocky Linux {8,9}
Fedora
Fedora x86_64 on HP MicroServer Gen7 N54L
Fedora aarch64 on Raspberry Pi 4
(previously Fedora Core, my primary distribution when getting started the journey) Fedora Core {1,2,3,4,5}, Fedora {20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38}
From 12 May 2020, the VPS hosting my personal web site has been proudly running Fedora (32 back then). It's a decision I've made for both work related and personal preference reasons
kernel upgrade in a rolling fashion
Enterprise Linux's direct upstream, but on the cutting-edge side (it's better to know those breaking changes early and fail early ;-)
RPM / DNF, Copr, rpmbuild, mock (much easier for me vs building .deb)
reliable dnf system-upgrade mechanism (since Fedora 21 it has never let me down, not even once! An order of magnitude more reliable than Ubuntu LTS version upgrade every 2 years... There was never a flawless LTS upgrade, at least for me.)
NOTE: Started to run Fedora 20 + KDE after leaving it for 8.5+ years (the last release I ran was Fedora Core 5) because of its relationship with Red Hat (experimental field for Red Hat Enterprise Linux) and derivatives like CentOS, Amazon Linux. Used to test kpatch ;-D
Variants
Fedora Silverblue
Immutable desktop OS aiming to be extremely stable and reliable, great fit for container-focused workflows.
Based on ostree, rpm-ostree (what is Silverblue , technical info)
Fedora CoreOS (AKA CoreOS)
Ubuntu
Ubuntu Desktop / Ubuntu Server
6.06 was my 1st Ubuntu release (still have the yellowish disk and package ;-), then 7.04, 7.10, 8.04 LTS, 8.10, 9.04, 9.10, 10.04 LTS, 10.10, 11.10, 12.04 LTS, 12.10, 13.04, 13.10, 14.04 LTS, 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS.
NOTE: Currently I ONLY use Ubuntu for the following purposes
Desktop - 14.04.3 LTS with latest HWE kernels with Ksplice as desktop on Optiplex 9020 for work (KDE 4.14.x + KWin) moving to Arch or openSUSE soon (if the systemd migration fuck up things when doing release upgrade)
Desktop - 12.04.5 LTS as desktop on Optiplex 9020 for work (GNOME 3.4 fallback + Compiz + HWE 3.13 Trusty kernel)
General Purpose Server
Digital Ocean (KVM) and 123Systems (Xen PV VPS now KVM), stay on Ubuntu LTS
- Web server
- PPTP VPN
- IPsec (IKEv2) VPN powered by strongSwan
- OpenVPN
- WireGuard
- Nebula overlay network (including lighthouse)
- a lot more ;-D
Raspberry Pi (Ubuntu Server aarch64)
I have been maintaining Ubuntu Server (8.04 LTS -> 8.10 -> 9.04 -> 9.10 -> 10.04 LTS -> 10.10 -> 11.04 -> 11.10 -> 12.04 LTS -> 14.04 LTS -> 16.04 LTS -> 18.04 LTS -> 20.04 LTS) powered LAMP/LEMP boxes hosting Confluence since 2008.
Debian GNU/Linux
Debian GNU/Linux (get the name right ;-)
{3,4,5,6,7,8,9,10}, testing and sid. If I have to use Debian, stable ONLY.
Gentoo Linux
Gentoo Linux
NOTE: SystemRescueCD used to be based on Gentoo but moved to Arch later (renamed to SystemRescue not long after).
Linux From Scratch
LFS (Linux From Scratch) & a part of BLFS (Beyond LFS)
Used to learn how Linux distributions are built, how it works all together, very beneficial. It is like the must pass test for a Linux Ninja and the adult ceremony for Linux gurus :-D
LFS ID
24565
Name
Terry Wang
First LFS Version
7.5
Mandrake Linux
Mandrake (Mandriva) Linux 8.1 (my first Linux distribution)
Slackware
Slackware Linux {10.0,12.2}
NixOS
NixOS
nix is a tool that takes a unique approach to package management and system configuration.
NixOS is
Reproducible
Declarative
Reliable
Uses declarative system config model (not new if you work with k8s).
nix package manager is the perfect complimentary package manager (consider it homebrew for LTS Linux distros, but non-sense for rolling releases).
Love the declarative way of system package upgrade: sudo nixos-rebuild switch --upgrade
equivalent to: nix-channel --update nixos; nixos-rebuild switch
It'll be my first preference to run on laptop as workstation if I for some reason move away from Arch / Manjaro.
Misc
Linux Mint 6
Magic Linux 1.0
SUSE Linux Enterprise Server (SLES) {11,12}
openSUSE {11.3,12.2,13.1,13.2}
Chakra (based on Arch Linux , nice KDE polish - semi rolling release)
Manjaro (same Arch based, nice KDE, LXDE, i3 and other variants, semi-rolling release)
Pop!_OS 20.04 (Auto Tiling via pop shell extension)
KISS Linux
- An independent Linux(R) distribution with a focus on simplicity and the concept of less is more.
Fedora Silverblue - immutable desktop orientend distro, focusing on container-focused workflow.
Clear Linux (Intel)
ArchBang (Arch Linux + Openbox)
Antergos (AKA Cinnarch) | Endeavour OS (arch - antergos successor)
KaOS (Another Arch Linux + KDE distribution - full rolling release)
CoreOS (Linux kernel + systemd + LXC + Btrfs) / Container Linux / Fedora CoreOS
openmediavault (Debian based NAS solution)
Optware (embedded Linux for NAS ipkg package management inspired by dpkg and APT)
DNS
Pi-hole
Firewall
pfSense (BSD)
OPNsense (BSD)
FireHOL
FireQoS
Router OS
Asuswrt-Merlin (RT-AC68U)
OpenWrt (NanoPi R2S)
Live Distros
Live CD/USB tool distros (Use Ventoy to directly load ISOs on your usb flash drive instead of dd 1 at a time)
SystemRescueCD SystemRescue (Gentoo Arch Linux based since 6.0, renamed to SystemRescue since 7.0 - personal favourite multi-purpose rescue distro)
BackTrack (You know what it is;-)) It used to be Slax/Slackware based but from 4.0 it's Ubuntu based.
Kali Linux (BackTrack reborn)
BlackArch (BackTrack and Kali tools on Arch Linux)
CloneZilla Live
Knoppix (Debian based Live CD)
Tails (Debian based, security-focused distro aims to preserve privacy and anonymity)
GParted Live CD/Parted Magic
Slax (Slackware based Live CD/USB)
Puppy Linux (on USB flash disk, built based on Slackware by an Australian)
Damn Small Linux
Unraid (gain full control over your data, be master of your storage)
UNIX / BSD
Solaris 10, 11.1 (ZFS file system v5 storage pool v34)
Mac OS X 10.4 Tiger, 10.5 Leopard, 10.6 Snow Leopard, 10.7 Lion, 10.8 Mountain Lion, 10.9 Mavericks and 10.10, 10.11
macOS 10.12 (of course, with iTerm2 + homebrew)
NOTE: the only reason I am still using OS X is that I have a MacBook Air and the battery life is amazing...
FreeNAS 8.3.x (ZFS file system v5 storage pool v28), 9.2.x
AIX 6.1 (I hated this shit...)
Terminal Emulators
Terminal Emulators
Konsole (for Kool Desktop Environment, of course)
kitty
A fast, featureful, GPU-based terminal emulator for modern command line warriors
GNOME Terminal (gnome-terminal, superseded by gnome-console)
FinalTerm
xfce4-terminal
Terminus
Tilix
Terminology
iTerm2 (macOS)
alacritty (cross platform GPU accelerated)
st
simple terminal implementation for X that suck less
termite
keyboard-centric VTE-based terminal, for WM with tiling and/or tabbing support.
guake / yakuake for drop-down style terminal experience
With GPU accelerated rendering: alacritty, kitty, iTerm2 (macOS)
Linux Desktop Environment
Desktop Environment
GNOME 2 + Compiz Fusion (used to be my favourite before the controversial split since GNOME 3)
GNOME 3 (GNOME Shell) (ONLY use gnome-session-flashback after GNOME 3.8), GNOME 3.8 removed fallback mode, later on Flashback mode was introduced to do the same job, WTF!!!
GNOME 3.36 shipped with Ubuntu 20.04 and Fedora 32 seems to be really nice and smooth, and usable.
GNOME 3.36 + Pop Shell (gnome shell extension for auto tiling window management) + yaru theme (from Ubuntu) can be a productive desktop environment
KDE SC {3.5,4.10,4.11,4.12,4.13,4.14}, now KDE Plasma 5.x
KDE became my main Desktop Environment since KDE SC 4.10. KWin has absorbed pretty much all compiz (fusion) eye candy effects - so addicted ;-)
Enlightenment (since e17)
Xfce4
LXDE
LXQt (lxde-qt)
CDE
Mate (a fork of GNOME 2)
Cinnamon (a fork of GNOME Shell)
Deepin Desktop Environment (pretty good DE)
Window Manager
Window Managers
Openbox
Fluxbox
awesomee
i3 WM
Xmonad
BspWM
PaperWM (GNOME Shell extension)
JWM
FVWM
Window Maker
sway (tiling Wayland compositor, drop-in replacement for i3 for X11)
I have tried almost all famous distributions on DistroWatch. Well, obviously I can't use all of them at the same time LoL
Application packaging and distribution format
AppImage
Portable, Linux distro agnostic distribution format, self-mounting disk image that contains an application and all its dependencies, without the need of superuser permission to install.
Package once, run everywhere.
Self-update mechnism leveraging incremental diff update (not all though).
Ideal for desktop (GUI) app distribution and management.
With AppImageLauncher it's so easy to build a simple and nice workflow focusing on drag & drop, double click.
> NOTE: personally I don't like flatpak or snap as I am happy with nix + AppImage
Flatpak
Snappy / snapd / snap
hmm...
AppImage / ImageKit is my choice for desktop / GUI apps.
^^^ Linus Torvalds on AppImage - "This is just very cool"
EOF
To sum up, my favourite distros are Arch Linux / Manjaro followed by Fedora (close to RHEL/CentOS, RHEL's upstream and experiment field) and Ubuntu LTS.
I like the idea of nix package manager (consider it homebrew for LTS Linux complimenting native package manager) and NixOS, and KISS Linux, very freshing ideas.
Gentoo is cool but I DO NOT have the patience to compile everything from source (time wasted and heat produced overweight the benefits / gains (not environmental friendly).
For desktop use cases openSUSE is a good choice (for both KDE and GNOME, very well polished, attention to details! You'll be surprised).
On physical hardware, I run Arch Linux on my N148, Manjaro on MacBook3,1, latest Fedora on HP MicroServer N54L Gen7 and Latitude D630, Fedora aarch64 and Raspberry Pi OS (Pi-hole ONLY).
BTW: I also use Arch Linux and Ubuntu Server in the cloud to provide Infrastructure services like: OpenSSH, OpenVPN, IPsec (strongSwan), WireGuard, Nebula and so on.