Installing Arch for the first time taught me a lot about how my system works, since you have to choose all the parts that make up your system yourself.
The list is generally correct but these days, systemd has made quite an impact also. If a distribution uses systemd, it has one software to handle everything from booting (instead of grub), handling start and status of all system services etc. Its probably the largest change to the Linux ecosystem in a long time.
X11 and Wayland are desktop protocols, so things like desktop environments and window managers depends on one or them to be installed. Without them, you don’t get any graphics except for the console. It’s all built on top of one of those.
The system (the os files to be precise) is only mutable by package manager for specific tasks like updating. It can break certain workflows if the user wants to change system files, because they can’t.
Bonuses from that are security and reproducibility. You can be sure that whatever package you have will look and behave exactly the same as on another device with the same OS. Malware won’t be able to mess around with your OS so trivially as it does on mutable distros.
Immutable, adjective: Unchanging over time or unable to be changed.
From the article: “We want a reliable desktop experience that runs everything, but we’re too lazy to maintain anything. So we automated the entire delivery pipeline in GitHub.”
So, in other words… “Please don’t ever update your system or everything will break”
It means the core OS is isolated from all the functionality in a way that allows you to modularly add all the functionality on top of it in a reproducible, robust way.
In theory. I haven't actually dug into any of them personally.
The base OS is a known unchanging set of bits. Squirt this datastream onto a storage volume and boot to it and you have a known-working system. Then you can futz around with all the self-contained packaged apps you want, and no worries about weird interactions fucking over your whole system.
The .config folders have important files, like git config. With that being the exception, most of my config files are empty. I have the most Vanilla GNOME setup. My setup is so vanilla, it is also missing the contrast hi-color logos, which is added by default in Fedora in multiple applications, like Firefox or Inkscape.
I don’t know how helpful it is to split stuff out like that. Especially grouping so many things under “default applications and daemons”, which is most of what a desktop distro is. Also depends largely on a PC vs server setup.
should list an init system as its own bullet, which others have mentioned.
“one or more shells” doesn’t mean that much. Yes, every distro includes one but the only difference between a terminal and any other application is that a terminal needs to be able to escalate to root privileges. You can think of it as just another default (but special) application. A lot of stuff that people think about when they think of Linux distros is just various clever mechanisms for supporting the terminal shell. Like the PATH environment variable. If you are using actual desktop applications other than a terminal, there isn’t any interaction with the terminal shell application.
There’s also fwupd, for updating firmware (your hardware is gonna be running out of date/buggy/insecure code if you don’t have this).
The dbus daemon falls under the “daemons” bullet but it’s pretty important, like wayland/x11 it’s another IPC mechanism you need for programs to work correctly.
There’s also the sound system. PipeWire is the modern one that implements the interfaces of various other sound systems so existing applications work with it. pipewire.org (PipeWire also has its own IPC protocol like dbus/wayland/x11).
flatpak, snap, distrobox, toolbox, docker, podman, etc. for running sandboxed PC/server applications. I assume there are some programs that are flatpak-only these days.
gsettings/dconf for Windows-registry like config that many programs use.
There’s also plugging in an implementation of the glibc Name Service Switch, which allows libc to use a mechanism other than /etc/passwd and related files for user accounts, internet service names, DNS resolution, etc. . systemd can provide NSS implementations using its own user account mechanism.
Gnome’s window sizing has always looked comical on my display. So I fix it with Orchis gtk compact theme. Also GSconnect is an irreplaceable utility for me.
I first tried KDE Plasma 5 but tbh I thought it was just a worse experience than Win7, it was really close but all the tiny little annoyances got in the way and it felt like I couldn’t do everything I needed through GUI so I still had to use terminal but it was awkward having to switch between using the keyboard and mouse and I would navigate through the GUI to get to directories then open terminal…
After a month or two of that I finally tried a tiling WM (i3wm) and it’s just a way way better user experience than any DE.
I will note though that I’m using Fish for my interactive shell and seeing anything in the tiny dmenu was just way too hard until I used Rofi for drun.
Without Fish and Rofi I might’ve tried more DEs or even gone back to Win7.
I recently used Linux Mint with Cinnamon on a relative’s PC and using Bash and the apt package manager sucks so bad. I even prefer Arch KDE, although I think Nemo is a bit better than Dolphin.
Anyway it’s been about 2 years of daily driving Arch with i3wm for me and I haven’t really gone out of my way to learn things but you naturally pick stuff up along the way just by using it.
Just make sure you’ve got another device with an internet connection in case something happens. I basically haven’t had any issues after I got better but I made a lot of user errors at the start. Nothing that can’t be fixed but finding out how to do the fixing without internet is a million times harder.
Workspace Matrix: provides a customizable n x m workspace grid, and a customizable pop-up that shows live preview of all workspaces and their windows (incl. e.g. video playing).
In combination, these two features allow me very quick overview of everything I have open, presented in an ordered fashion, allowing quick, keyboard-driven application change.
I’m not aware that the exact features of Workspace Matrix are reproduced by anything in any other DE.
Oh, true, you don’t get previews of the windows inside. However, that shouldn’t be very hard to implement, so you might have luck if you ask for it to be in Plasma 6.
It’s easier to think about Linux on the context of what an individual application needs to run. Pretty much everything you do will have these components.
configuration
an executable
a communication mechanism (dbus, networking, web server, etc)
something that decides if the application runs or not (systemd, monit, docker/docker compose, kubernetes scheduler, or you as the user)
a way of accepting input (keyboard and mouse, web requests, database queries, etc)
a way of delivering an output (logging to unique log files, through syslog, or to stdout/stderr, showing something on a screen, playing a sound, returning a message to the client, etc)
storage (optional)
some cpu and memory capacity
That’s really it. If something isn’t working, it’s pretty much exclusively going to fall into one of those categories. What that means is going to vary significantly from app to app but understanding this is how literally everything works makes the troubleshooting process a lot easier.
linux
Oldest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.