Foreword
It’s not titled GNU/Linux Distro cuz I wanna try out BSD ones too.
Linux
- Ubuntu LTS 16.04-24.04 (Server)
Ideal distro for beginnerUse Mint instead- Offer more recent version of packages than Debian stable1
- Snapd is not that bad, but prioritizing it over standard dpkg is
- Canonical has a mixed reputation
- CentOS (Server): not appealing for me at the time
- Debian 8-13/testing/unstable (Desktop/Server/WSL/ARM)
- Rock solid, it’s known as install & configure it once then use it forever™️
- De facto base for many distros (and one of the few ones with ARM support in the pest)
- Stable can have obsolete packages (not updated/only security update for 2 years, which is the usual Debian freeze/release window) even if backports exist
- Testing (w/ security updates from unstable) is super stable AFAIK
- Many useful packages tied to Debian ecosystem (apt-listbugs/apt-listchanges, command-not-found2, debsecan, snap etc)
- Armbian (ARM): just Debian
- OpenMediaVault (ARM/NAS): buggy on my machine™️
- openSUSE Tumbleweed (LiveCD/VM): I even got some packages on Debian from SUSE, zypper is just like apt, and that’s all I remember
- Fedora Workstation (LiveCD/VM): bleeding edge, BTRFS and said to be used by Linus Torvalds
- Mint (LiveCD)
- Don’t use the MATE one, it’s ugly
- While based on Ubuntu, Mint actually does a great job by minimizing the gap between Linux and Windows
- Not my type though
- Kali (LiveCD/VM/Termux/ARM)
- Rolling release kinda sucks, but is bearable and magically hardly breaks
- Just work out of the box in LiveCD, x86_64 & arm64 installation, even Termux via PRoot
- Good at aesthetics3
- Tails (LiveCD/VM)
- Anonymous yet ugly
- Has a monthly report and is open to the spending of donation, so shut up and take my money!
- Used by Edward Snowden
- Arch / Artix (VM/WSL)
every time I runsudo pacman -Syu
, Arch/Artix breaks :) That’s 3 times in a row alreadyI tried a 4th time (this time with Artix-openrc) after the initial draft of this writing, afterpacman -Syu
the system shows mepacman: /usr/lib/libc.so.6: version GLIBC_2.36 not found (required by /usr/lib/libexpat.so.1)
:)- Great, I did not count the number since 5th failure but now it works on proot-distro on Termux at the long last
- PS: Artix is just Arch sans SystemD
- ReactOS (LiveCD/VM): Windows 2000
- KDE neon (LiveCD): latest KDE
- Raspberry Pi OS (Desktop/ARM): why not Debian, at least it uses 64-bit by default for my arguably powerful rpi4 8GB edition.
raspi-config
is cool though - Alpine Linux (Container/VM)
- lightweight, security-wise, musl, embed IoT…and
Dockercontainers - BusyBox is great, until you eventually discover that some parameters do not exist in the BusyBox version and your awesome scripts work anywhere but Alpine :(
- Or when you are confident that on every modern distro
/bin
is a symlink to/usr/bin
and discover that in Alpine there are only BusyBox aliases in/bin
and all other executables go to/usr/bin
, which means removing either/usr/bin
or/bin
from$PATH
would render the system completely broken…
- lightweight, security-wise, musl, embed IoT…and
- Deepin/UOS (VM/Desktop)
- resource-heavy, but offers quite a few Chinese exclusives
- fake it till you make it™️
- Lakka (Switch)
- basically just RetroArch with everything (except Chinese support) ready
- built-in CPU/GPU overlocking for Switch is really convenient
- network never works under WiFi with hidden SSID
- Trisquel (LiveCD/VM): The chosen one by Richard Stallman
- Parrot OS (VM): not ready yet
- ravynOS : FreeBSD, Wayland and macOS
- Devuan (VM/WSL/Desktop/Server/ARM)
- Just Debian sans SystemD (w/o a few systemd-related blocklisted packages )
- I maintain DevuanWSL based on Daedalus (current stable) btw
- Redox (LiveCD)
- Experience in 2022: Linux but written in Rust, quite minimum (76 MB for LiveCD is black magic) and lacks feature
- 2024 Update: zstd is the new black magic with that insane compression rate
- Linux From Scratch (LFS/VM)
- Do everything from scratch is not funny, but extremely tiring
- Getting it done is a great achievement
- Arch kiddo, forget AUR &
PKGBUILD
, LFS is better for learning Linux
- Gentoo WSL
- Compile it yourself™️ (or use
badnew generic binary as Gentoo goes Binary) - Updating could take ages and Gentoo has a confusing soft ban policy on IPs with frequent update query
- Installing a moderate (22 MiB, it’s bottom) package requires at least 11528 MiB disk space (it’s rust toolchain) is silly, really
- Compile it yourself™️ (or use
- Void Linux (Server, Desktop, ARM & WSL, so far the best fit)
- Tiny yet powerful
- all about choices: glibc & musl-libc, runit/SysV/s6/OpenRC/whatever
- XBPS is great
- No SystemD, hence 💩-free
- Packages hosted on GitHub so involvement is easy, check Void Package Contribution
- Offer a few packages not in Debian/Devuan (lazygit, bottom etc)
All that being said, Having sshd enabled by default & ignoring community feedback is terribleServices are configurable when using void-mklive for void-vtoyboot- Stable rolling means everything BUT core is bleeding-edge, it would take months or even years for a simple core upgrade to take place, during which time even LFS or Slackware (!) has successfully surpassed Void🙄
- Despite not recommended officially, xdeb can be useful sometimes as long as you know how to do dependency tracking
- NixOS-WSL
- Interesting package manager, easy to fix when broken
- Highly tied to SystemD but that’s fine for desktop
Awkward wrapper to start SystemD in the WSL derivation
- Manjaro (WSL, Server & Desktop)
- Arch for dumb (or tired Archer)
- It doesn’t break after I type
sudo pacman -Syu
, deals done :) - I used to maintain MalayaWSL (forked from the legacy ManjaroWSL) before the author (finally) gained permission from Manjaro team
manjaro-architect
is a goodie as well- Sway works perfectly, for details see SwayWM 杂记; i3, on the other hand, really sucks. Xfce4 works great but bundles too many things IMO
- SystemRescue (LiveCD/Server): Not so small but get the job done
- SlackwareWSL2 current
- long-living and old-school (not so much on 15.0+)
- Slackpkg is really interesting
- It does not handle the dependencies for you, you have to look up the missing library using
slackpkg file-search
(just likecommand-not-found
on Debian /tlmgr search --global --file
in TeXLive), and install it yourself - This sounds scary, but in this way you can choose to install the exact dependencies you want instead of a default full/minimum package other distros may offer, while at the same time you are the one to do the research and make sure you don’t get trapped down the rabbit hole of unnecessary or even unsafe dependency 4
- That being said, installing a gigantic package like
ffmpeg
orimagemagick
would cost pretty much time, I even wrote a template for this to ease the pain… (see #Slackpkg) slapt-get exists to emulate apt-get, but that’s not my type. SlackBuilds are cool though.
- It does not handle the dependencies for you, you have to look up the missing library using
- somewhat the true/vanilla Linux as it prefers simplicity over convenience and offers little/no patch to upstream software, which makes the learning curve a bit steep but running software as designed makes the system behaves in a predictable way
- ClearWSL 5
- system as software, and optimization of, by and for Intel®
- really fast, and lacks a lot packages
- swupd is surprisingly useful
- Has built-in command-not-found hint for common package: type
zsh
returnsTo install zsh use: swupd bundle-add zsh
- The hint even works for similar command on other distros: type
apt
returnsThe command apt is not available, consider using: swupd
- However, the package search feature is kinda buggy
- Has built-in command-not-found hint for common package: type
- the repo I intended to use has not been updated since 2020, and use obscure
env.sh
instead of standardMakefile
, so I implement it myself (and fully automated it)
- Fatdog64 Linux (LiveCD)
- Derived from Puppy but now based on LFS & BLFS
- Really follows Puppy spirit: small, fast and efficient. It has but only common programs like browser, email client, GIMP, LibreOffice etc., but also less used ones like CD ripper/burner, MTP/SMB/BitTorrent clients, and even comes with four games (including classics like Tetris and fun variants like Space Invader 3D), yet keeping the ISO at a reasonable (600MB) size
- UI is notably worse than Puppy while the latter is nearly half the size, making tradeoff not quite an excuse
- FuntooWSL
- Gentoo enhanced, Wolf Pack Philosophy is interesting too
- Sadly no rootfs for newer gen Intel CPU, so I have to use Generic 64 one and suddenly this makes no difference (and possibly worse) from Gentoo even if I follow Funtoo philosophy and agree on their No Need for Make.conf Hackery statement
- Messy Documentation: link rot, endless redirection, deprecated yet not migrated page etc. But Funtoo Linux Installation Guide, Emerge are my friends
- maestro
- not a distro, but Unix-like kernel written in Rust
- Introduction
- maestro-install (toolchain to make a bootable ISO)
- Unable to make it work inside VirtualBox, hours of package installation is definitely abnormal AFAIK
- Wubuntu
- Windows Ubuntu based on KDE Plasma that mocks the appearance of Windows 11 (or Windows 10, if you prefer)
- PowerToys Control Tools are confusing, as Windows has system utility set exactly named PowerToys
- win-r is not present, sadly
- Microsoft nowadays really embraces open source, so it’s great to see such distro emerging (despite the poor performance w/o guest addons on VirtualBox) to explore the possibility before M$ says no
- Rocky Linux (Server/WSL)
- The chosen one out of these CentOS/RHEL-derived WSL distros according to Alibaba Cloud
- CentOS-WSL for CentOS Stream
- RL-WSL for Rocky Linux
- AlmaLinux-WSL2
- Although I build Rocky Linux from RL-WSL (with QCOW2 cloud image), the official documentation has a dedicated section to guide you Import Rocky Linux to WSL directly from container rootfs which is easier as RL-WSL requires QEMU after all
- Rocky Linux really rocks and offers a solid experience (pun intended), almost everything works perfectly, despite a few missing essential packages like bison, yacc & opendoas that do not come with installation
- World-class documentation with a wide range of topics. I have to cue AlmaLinux OS for their terrible website on this. The navigation bar simply won’t work, w/ or w/o JavaScript, with 4 domains connected whilst on Rocky you connect to only one domain w/o JavaScript and everything still works like a charm6
- The chosen one out of these CentOS/RHEL-derived WSL distros according to Alibaba Cloud
- Venom Linux (WSL)
- Great to see distro adopts s6 & sysv by default, and
slim
as display manager - Their package manager, scratch, is an interesting pure POSIX shell script
- Download speed is slooow (just like LFS, but the latter has official hosting site and fast mirrors!), searching through ports is painful and many packages are missing (creating ports is not hard though). At least scratch would not fail due to missing package…
- Documentation is weak. Not to the point I’d call it abysmal, but it definitely needs more care. A wiki covering nothing more than installation, package management and ports is not enough IMO. And it took quite a while to jump between GitHub projects only to find out that they moved to GitLab…
- Overall, probably a better choice with less hassle than Gentoo, but not satisfying enough for me
- Great to see distro adopts s6 & sysv by default, and
- SliTaz rolling (LiveCD)
- Quick Download redirects to rolling-core64. I’m fine with rolling release, but core (aka. base, according to specifications) flavor by default sounds weird to me
- The size is small, nothing more. Hard to believe this is ranked #158 on DistroWatch (by popularity). I have similar impression to the DW review posted on 2023-05-16.
- It’s pretty much a dead project by having a rolling live CD whose build time can be dated back to July 2022. A simple
startx
command just would not work. It does not even follow ACPI shutdown signal!7 - It also made the same mistake as many other distros by only listing the default user/password in a random obscure page on their website. EVERYONE should act like Void Live CD by putting the default credentials directly in boot message (
/etc/issue
, dmesg or whatever)
- Peropesis (LiveCD)
- Personal operating system, a pure cli distro
- As it’s just updated when I tried, it ships Linux 6.10 + GCC 14.2.0 + Python 3.12, which is fairly good
- You have to jump through documents to discover that you can just login as root w/o password…
- Since it’s a cli distro, all I can talk about is…command line stuff
- While Peropesis says in 7.1 Layout of the Peropesis file system that it adheres to FHS, it fails to deliver the same content as LFS and Standards. While I’ve known that not everyone agrees with LSB (and thus not having
/etc/lsb-release
), it’s still good to that FHS 3.0 actually does not define the use of/etc/os-release
, which I think literally all other distros seem to have. - And maybe the dev tries to use CURL as an example in 10. Software compilation, having
wget
but notcurl
out of the box is weird. - The same applies to
screen
(you should havetmux
as well). And it’s a bit annoying thattree
is unavailable so I have to usels /usr/bin | less
to see what I have in store. At least Vim is available along with Nano. As for TBB, it does have links, although I prefer W3M.
- While Peropesis says in 7.1 Layout of the Peropesis file system that it adheres to FHS, it fails to deliver the same content as LFS and Standards. While I’ve known that not everyone agrees with LSB (and thus not having
- XENIX (VM)
- Not exactly Linux, as Linux the kernel does not exist yet. It is a Unix (not Unix-like, it is Unix licensed by AT&T) system, believe it or not, from Microsoft. In the mid-to-late 1980s, Xenix was even the most common Unix variant.
- The version I tried is Microsoft XENIX 386 2.3.4 released in 1991, and while it’s labeled Microsoft XENIX, from terminal message it’s actually already acquired by Santa Cruz Operation.
- Exploring Microsoft’s forgotten Unix distribution is a nice write-up on this topic so I won’t repeat here
- I first knew it from Strategy Letter II: Chicken or Egg Problems, and it’s good know that initially on IBM-PC you have not one (de facto PC-DOS), but three different OS to choose from (the other one is UCSD P-System)
- It’s difficult or at least cumbersome to install systems in the old days. As floppy disc only got 1.4MB, you need to wait for the slow copying and replace it every now and then. Some tools even require serial key and activation password, well at least it does not print your home address on the disc like some PC-98 game copies…
- Some classics like Rogue/Hack are also available, but chances are you would not like to play them nowadays👋
- FydeOS
(VM)- Basically Chromium OS, since it does not support VirtualBox/QEMU, and my rpi4 is busy for the time being, maybe next time
- Downloads
- Choose the right FydeOS for PC variant
- Knowledge Base
- FreeDOS (VM): neither GNU nor Linux, but DOS!
Wishlist
Sorted by preference:
- arozos: Web Desktop Operating System for low power platforms
- Adélie Linux: the dev maintain several popular but orphaned packages
- Hardened Gentoo, basically a security-wise Portage profile
- NixOS on Desktop
- revyos: Yet another Linux Distro for RISC-V
- custom Debian distribution optimized for the XuanTie chip ecosystem
- requires a RISC-V SBC/PC (obviously) which I’ve yet to buy
- Accessible-Coconut: built-in accessibility
- doslinux: WSL alternative for MS-DOS 🤷
- PopOS: by System76 and maybe clutter free
- rlxos: independent & immutable
- Whonix: another anonymous solution, gateway + workstation sounds easy enough
- Qubes: yet another anonymous solution, all in or nothing nature makes it hard to test in VM. Xen is cool though
- Subgraph OS: yet, yet another anonymous solution, namespace + Seccomp BPF, native solution via the customized kernel
- quBSD: like Qubes, but in BSD
- Vanilla OS: interesting package manager, which can install Ubuntu, Fedora, or Arch Linux packages inside containers
- Guix on WSL2
- guix shell
- inspired by Nix
- Bedrock Linux: a meta distro, which allow mix of incompatible distributions by layers. Were I to use it, maybe I’d maintain a BedrockWSL based on bedrock-wsl
- Refracta
- One of the few distros based on Devuan I guess
- Refracta provides special tools to customize installation & create live CD easily, which is why I give it a try in the first place
- OpenBSD: it’s BSD, although I tried twice and it won’t finish installation on VirtualBox
- HardenedBSD
- SteamFork, SteamOS like
- BlackArch: pentest, with Arch
- eLxr: hardened Debian for cloud deployment
- tilck, Tiny Linux-Compatible Kernel
- Old OS in WinWorld Library
Slackpkg
# Some command not working
$ ffmpeg
ffmpeg: error while loading shared libraries: libglslang.so.11: cannot open shared object file: No such file or directory
# Grab all missing libraries
libb=$(ldd $(which ffmpeg) | grep not | sort | uniq | awk '{ print $1 }' | cut -f2 -d"=" | awk '$1=$1' ORS=' ')
for i in ${libb[@]};do (slackpkg file-search $i | grep slackware64 | cut -s -f1 -d"-"); done
# Install dependencies
sudo slackpkg install xxx yyy zzz
Farewell
Welcome to the Desert of the Real!
In fact, Ubuntu takes packages from Debian Unstable (Ubuntu LTS based on Debian Testing). You can confirm it from Ubuntu Packaging Guide by searching sid (Debian Unstable codename) or unstable ↩︎
While
command-not-found
is a Debian-like exclusive, ohmyzsh provides command-not-found plugin that works on other distros like Arch, SUSE, NixOS, Fedora & macOS (Homebrew) as well ↩︎I also like the slogin in a previous release: the quiter you become, the more you are able to hear. ↩︎
You can learn more about this interesting dependency tracking method and Package and dependency management shouldn’t put you off Slackware on Slackware Docs ↩︎
This is Clear Linux OS backed by Intel. Not to be confused with Clear OS , which is a completely different CentOS/RHEL-based distro ↩︎
Of course this is something you shouldn’t worry about when distro-hopping, provided there are not many broken links. You don’t use the website (besides package tracker and wiki, if any) but the system. Debian website (before the revap) is ugly and uninformative as hell but it does not harm its stability. Slackware uses HTTP even today and it’s 100% fine with that old school design. ↩︎
This one can be reasonable though. As it’s primarily designed to be stored in USB, it can be ejected after boot and no need to react to such signal since everything is RAM only and there is no disk I/O. Similarly, I was quite surprised to find out when playing with MS-DOS 6.22 that DOS means Disk Operating System and to shutdown, you simplify unplug the power cable… ↩︎