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.
On top of all the other informative comments answering a plethora of questions you understandably have when entering the Linux ecosystem, I want to express: don’t feel like you need to learn all this stuff if it doesn’t interest you, or otherwise turns you off the idea of Linux.
It’s perfectly fine to ignore all the terminology, install whatever new-user friendly version of Linux you can, and just start using it. If it’s not to your taste, or it asks too much of you, maybe try a different one. But I’m of the firm belief that immediately inundating a new user with a bunch of new vocab and unfamiliar workflows is the mark of a bad new user experience, and you shouldn’t feel required to put up with that.
The fact is, unlike MSFT who has a bunch of terminology internal to the windows dev teams, Linux is developed in the open, so all the terminology leaks into the user world too. And you just need to get good at saying, “if this doesn’t help me use my PC better for what I need it to do, I don’t care”.
I’ll do a (simplified) 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” of Windows 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.
Since “Linux distribution” is rather long to write, people often just write “Linux” but mean the whole distribution, not just the kernel. These are just common inaccuracies in communication, but what the person meant should be obvious from the context.
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 similar enough that if you’ve learned one, you can also use any other with little additional things to learn. However, some distros are deliberately a bit more different or tailored to more specific users or use-cases, for example Arch targets more experienced Linux users because it’s a very minimalistic distro, it expects the user to know which packages he wants to install. It pre-installs almost nothing. You can think of this like “Windows Server Core” where it just boots into a minimalistic terminal by default, no usable GUI yet, but you can of course install the desktop environment and everything if you need it and make a full-featured desktop out of it. The distro just doesn’t want to preinstall anything which you later might not like, which is why it gives you the choice, but that makes it a minimalistic distro and it’s harder for beginners to use that way. Other distros like Mint are much more similar to the client editions of MS Windows in that they preinstall everything the user needs for a desktop OS and more, so that the user can boot into and use the desktop as quickly and easily as possible.
And then there are even more special-purpose distributions like Kali Linux which includes things like penetration testing tools (i.e. “hacker tools”), which makes it a distribution for IT security people, so they can boot into it and have access to most needed tools right away without installing much else (also good on a bootable USB stick). But usually, in general threads like this one, people don’t talk about specific-use distros, but about generalist distros which you can install and use as a regular desktop OS.
Desktop environments also exist on Windows but there’s basically only one, made by Microsoft. In the 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”, because if you didn’t have one, you’d be basically staring at a screen containing at most a cursor and a wallpaper, with no way for you to interact with anything. 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 (and you can change those faces or desktops from within the same distro, of course). 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 generalist desktop 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.
Each distro picks the things it likes the things it doesn’t like and it combines what it wants into a working operating system. Maybe they make some of their own custom stuff, maybe they just borrow other people’s stuff.
Debian, up until the last couple of revisions, was very big on choosing* only free things. If you wanted to use any non-free products you had to jump through small hoops. So Ubuntu took Debians core, and rewired it to properly support free things making installation and maintenance on newer hardware much easier. Because it was so much easier, they got a huge support community, and became the default for a lot of people just starting out. But then the guys that run Ubuntu also made other decisions, like trying to monetize some of the aspects or pushing for the use of different package managers that people don’t love. Mint came along and kind of filled the gap in between Ubuntu’s up sides and downsides and became the easy default for a lot of people. In the midst of all that turmoil, Debian slipped in their own version of making non-free software seamless. A lot of the support thrown into Ubuntu and Mint also helps Debian.
Red hat, fedora, and centos have the same kind of story going on, But it’s much less exciting and more about support and payments.
The next thing you hear about* is immutable operating systems. Like Fedora Silver Blue or NixOS*. They’re extremely secure, because you’re not allowed to make changes to the operating system blindly while it’s running, But it complicates just about everything you do in the name of security.
The other things you mentioned were window managers. (Gnome, KDE…) They’re basically affecting the look and feel of the GUI for the operating system. It’s your right click and your start menu and your window shades at the top and how windows are moved and snapped and organized. KDE looks and works by default a lot more like Windows, Gnome has a rather flexible plug-in system in tons of plugins available. Most of the other window managers are designed for low memory usage.
Another thing you’ll run into is X-Windows and Wayland. They mainly deal with backend internals of how the gui does its work. X Windows is ancient and compatible with just about anything that was ever made, Wayland is a bit flashier a little more efficient, and a little more secure, But at the same time it has a lot of compatibility issues with new hardware. Like if you’re going to run auto hotkey you’re going to have a harder time getting it to run under Wayland.
If you’re running on an x86/64 PC you can choose whatever you want, with the lion’s share of tech support being available for Debian variants (Debian, Ubuntu, Mint)
If you’re running on Mac, some distros are better supported.
If you’re running on a Raspberry pi you’re usually best going with one of the ones they recommend.
When someone says that an application is tested to work with a certain distribution, if most likely can work or be coerced to work with most of the other distributions, But the developer designed it under and tests it under whatever distribution they recommended regularly. So don’t be surprised if you choose something else and you have to fight with it a bit to get it to work or in rare cases it doesn’t work at all.
- edit: wording, typos and clarifications now that I’m not on mobile.
Linux is a kernel, but people often refer to the whole thing as linux…
Everything else is independent free software, which without a distribution you would have to source yourself, configure, and install. Plus provide small programs / scripts to glue everything together. This same software can run on other operating systems depending on what it is. Unlike Mac and Windows, these are often by one vendor and highly integrated, less so with other operating systems.
KDE and Gnome, are desktop environments which are suites of applications, including a “window manager” which is the thing which draws borders, and allows you to minimize and maximize. Typically this is what non technical users think an “operating system is”
Distributions are highly varied in terms of the glue, and updates they provide. The idea is they keep up to date on the software and take responsibility (most of the time) for integrating it and ensuring that the configuration works.
I think you have gotten a lot of good answers so my 2 cents are. Install something simple like Ubuntu and try it out. Getting the answers to your questions will not give you the “feel” of using a linux system. Once you start you will begin to have more answers and a lot more questions, specifically in the areas you are interested in.
Also check the Arch wiki, it is really good for any distro because it gives a good reference for configurations.
I have installed and used Ubuntu in the past. Now I’m exploring a project that uses a raspberry pi and I’m running into terms that I don’t know how to distinguish between.
If you are working on a pi, you have to pay attention to the architecture that a distro supports.
I am gonna simplify it. This contains a lot of generalisation.
A distro or distribution is like Windows or macOS. When you want to install applications you mainly look for applications (they are generally called packages in linux) that are built for these distros. Major ones are Debian (Ubuntu comes under this), Fedora and Arch. Here the Debian/Ubuntu is the most user friendly with lots of guides and forums to help you get going. Most applications that has a Linux version will support Ubuntu. Major advantage of Debian is that, its stable. Because of this, core files that a system needs to run will be thoroughly tested and will not break. If you are testing the waters, you should go with distributions like Debian 12, Ubuntu 24 or 22.
Okay, coming to Desktop Environments, for now you only need to know about two, KDE, & Gnome. They are the GUI that you interact with. They come with basic GUI applications like a file manager, Terminal Emulators, etc. If you like window 10 style, you can go with KDE and Gnome is a little different, but its the default option in Ubuntu I think. You can install any DEs on any distributions but may require some know how. So DEs are for basic utility and Look and Feel.
This is the best answer. Most of the others jump straight in at the deep end. The entirely predictable outcome of asking this question to a bunch of earnest geeks.
Great explanation. Quick follow up question.
One thing I necessarily will want to install is Proton VPN*. Per their website,
Our app officially supports the latest stable Ubuntu LTS version running the GNOME desktop environment. It should work on most distributions based on Ubuntu, but we haven’t tested them and therefore do not officially support them.
This makes it sound like it will only work on gnome DE and implies it won’t work on Ubuntu with KDE (for example)
*ok, so I’m also aware that you can use Proton VPN through open vpn somehow but for the purposes of my understanding of distribution vs DE, let’s just ignore that for now.
Basically, what the protonvpn page is saying, is that they only test the app on Ubuntu gnome, itll work on basically anything else, they just wont help you if it doesnt
I have Proton VPN running on two different machines running Ubuntu-based distros with KDE and Cinnamon, respectively. Works fine :)
The official Proton client or Open VPN with Proton credentials?