Can someone point me to a helpful beginners resource explaining some Linux basics? Like what is the difference between “distro”, which is what, like Ubuntu, fedora, Debian (? Or is that a category of distro?) And desktop environment which is what, KDE, Lubuntu, gnome? Like I don’t even know I have these categories right let alone understand why I’d pick one over another and what practical effects it will have- which apps will I/won’t I be able to install, etc…
I’m not expecting anyone to answer these questions for me, but if you could point me to something already written, I’d appreciate it.
I’ll do a (simpified) Windows analogy, if you’re already familiar with Windows.
Microsoft Windows is closed-source/proprietary, which means only Microsoft has the source code for it, and only Microsoft is legally allowed to create or distribute copies of Windows. “Windows 11” for example is a “distribution” containing the “Windows NT kernel” (core of the OS) alongside other important software to make the OS usable, like a boot loader, service layer, graphical interface, desktop environment, and lots of included “system” applications like a file explorer, a web browser, apps to adjust settings, apps to display menus and task bars, and so on.
“Linux” by itself is just the kernel, the core of the OS. Which is by itself not a “usable” operating system yet, just like holding a CPU in your hand doesn’t allow you to use it yet. More components are needed for that. Since Linux is open source and under a permissive license, anyone (even you) can go ahead and create an operating system made with the Linux kernel. If you do that, this is called a distribution or “distro” of Linux. Since there’s not just one company allowed to do that, many distributions exist. They all made their own operating system on top of the Linux kernel. Even though hundreds of distros exist, only a handful of them are actually popular, stable, secure and recommended for general use. They all use similar, but sometimes different software to include in the distribution. Like the Linux kernel, most of that software is open source so it can also be modified or extended.
Common and recommendable Linux distributions (= full, usable operating systems) include: Linux Mint, Ubuntu, Fedora, OpenSuSE, Arch, Debian. These are full operating systems and they all include the Linux kernel at their core. Of course, the similarities go further than that. Most distros are so similar that if you’ve learned one, you can also use any other.
Desktop environments also exist on Windows but there’s of course only one, made by Microsoft. In he Linux world there are several to choose from. The most common ones are: KDE Plasma, Gnome, Cinnamon, XFCE. These desktop environments contain window managers or compositors, task bars or panels, menus, various tools like file managers, process viewers and text editors, and various background programs. This is all needed for the user to have what is commonly known as “a desktop environment”. Of course, these can look and feel different from each other (just like Windows looks and feels different than MacOS), and they have different features and strengths and weaknesses, but their goal is always the same. And as usual in the open source world, there’s not just one project but multiple, and out of those multiple a couple are popular, viable and stable enough so that they are usually included in most Linux distributions. Which is why most distros also give the user the choice to have a specific variant of the distribution with a specific desktop preinstalled. For example, Ubuntu also has Kubuntu (= Ubuntu with preinstalled KDE Plasma) or Xubuntu (= Ubuntu with preinstalled XFCE). These can have various names but in the end it’s just the base distribution (“Ubuntu”) with a different preinstalled “face” so to say. Most other things are exactly the same between those distribution variants.
As a new user, you don’t need to learn about everything. Just pick an easy to use distro like Linux Mint and use the default desktop environment or variant which they provide or recommend by default. You can start experimenting with more choices later on if you want, but you also don’t need to. If you have something you’re comfortable using, then you can just stick with that.
The biggest shake-ups in a while outside we-don’t-use-X (no systemd, etc.) are the declarative distros like NixOS & Guix. You do the whole system setup & config thru a single file (or broken into multiple). Learning curve is very high for the config but the payoff is less things changing out from under you & setting up new machines & rolling back to working states without resorting to FS snapshots. They are good languages to learn for software development too where you want repeatable software.