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 (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.
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.
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 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
Maybe if you use Proton VPN on KDE it could need to pull in some Gnome packages. Which isn’t a problem. I use Proton VPN on KDE but I just install it from flathub to keep it simple, so I couldn’t say for sure.
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?
Former.
Im not sure if your looking for a simple install and go type of setup but I often recommend zorinos as the free community type edition mimics the feel of windows and it comes with wine and play on linux from the get go. its a ubuntu using gnome spin so it sounds like it would work for you.
This has some good info…
https://www.geeksforgeeks.org/introduction-to-linux-operating-system/
This article is conflating terms that I need help distinguishing between. The other commenter mentioned that Ubuntu is a type of Debian but this article lists Debian and Ubuntu as distributions.
Debian is a base distro, in your example. Other distros can be based upon other ones. Think of it like another layer; the distro maintainers look at Debian and say, “I like these aspects, but I think we can build upon that and make something even better!”
This means those distros with a “base” are
downstream
of theupstream
distro base, and any time the upstream distro gets updates, the downstream ones will benefit.This article is conflating terms that I need help distinguishing between. The other commenter mentioned that Ubuntu is a type of Debian but this article lists Debian and Ubuntu as distributions.
I’d say that the article is correct in calling them separate distributions.They are certainly related (both part of the Debian family), but I think most people would consider them to be separate distributions. Software built for Ubuntu 24.04 may work on Debian 12, but it might also not. For a beginner, I think it’s most useful to consider them to be separate things.
See the comment here: https://sh.itjust.works/comment/14684312
This was definitely a big help for me: https://linuxjourney.com/
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 the kernel, the core of the system.
A distribution is a collection of software that is provided with the kernel, usually with it’s own software package management system. Distributions are also supported and maintained by organizations which create their own tools for that distribution and also make decisions on what to distribute it with.
For example, Fedora is maintained and supported by the company RedHat which implemented their own tools and packaging system to use Linux. Debian is the same but with a community.
Desktop environments are that it says. You have several available in Linux. The two major ones being KDE and GNOME. They provide a desktop experience with their own paradigms. Just like the MacOS and Windows have their own desktop environments. They’re basically graphical shells to allow users to use the system.
A distro is a complete installable operating system (+ a set of software repositories from which you can install updates and new software).
Many distributions (or their flavors/spins) will come with a default desktop environment and then usually also apply some distro-appropriate theming to that desktop environment.
If you look at screenshots of distributions, you’re likely just looking at screenshots of their themed default desktop environment.And a desktop environment is essentially the GUI of your OS.
It includes software such as the panel/taskbar, the application menu, the systray, the audio system, icons, a login screen etc… It also typically comes with a set of default applications, such as a file manager, a terminal emulator, a text editor etc…
In a sense, the desktop environment contains essentially everything that differentiates a desktop OS from a server OS (the latter is usually just a terminal, without graphical interface).As someone that tends to learn most by doing. Most of these comments are excellent my only suggestion is to try it. Most Linux distros come with live images which you dont need to install to test out.
Just download the ISO and put it on a USB and then boot from the usb. You can even make a multiboot USB with ventoy.
Or you can use distrosea to demo a distro in a browser.
I also highly suggest using the arch wiki for research. It will probably go into much more depth than you need at first but it will also not dumb things down or over simplify things for you so you might actually learn. Take this doc on what a DE is for instance, https://wiki.archlinux.org/title/Desktop_environment
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.
Honestly the thing that helped me most with that sort of stuff was just subbing to r/linux (now would be c/linux but this was like 4y ago now I guess…fucking hell time flies huh?) and reading up on stuff/asking questions for a few months before I switched. There’s also linux4noobs (both c/ and r/) for asking specific questions, it’s slower on lemmy but still can offer help and honestly I should probably make a post here about it again to drum up awarwness. Finally I’d like to add that many times communities related to specific distros will be more help than general communities, if you have a question about Fedora for example it can be helpful to ask in c/fedora over c/linux sometimes.
Now as to your questions here, just to kinda boil it down, the main difference between distros is the prepackaged stuff that comes with it, and the package manager. Package Managers are basically your “app store,” this is where you’ll get most of the stuff you need, for the rest, Flatpak is a package manager available for all linux distros, and some things will have .deb or .rpm files on their website. The ones you listed are indeed distros, Lubuntu is too however.
DEs are basically your UI. If you ever changed the launcher on an android phone back when that was a thing, it’s basically the same concept. Fedora and FedoraKDE are the same distro with much of the same stuff under the hood, but Fedora (Gnome) is more maclike and FedoraKDE is more windowslike in terms of user interface. For this reason Ubuntu (Gnome) and Fedora (Gnome) almost feel more similar than Fedora (Gnome) and FedoraKDE. You can install any DE on any distro for the most part, but in the beginning I recommend picking a distro by considering the DE first and the package manager second, and everything else (long time stable vs bleeding edge updates for instance) third. You can always switch later for free, the only investment is time and maybe an external hdd/ssd for backups.
Someone will 100% come correct me and argue this lol, but I’m just trying to kinda explain it in “doesn’t already know about linux” terms (so hopefully I effectively did that at least lol). If you have any more specific questions feel free to ask here or on linux4noobs, and of course you can always try these distros out for yourself before installing them! You can use a USB drive and a program like Balena Etcher, Fedora Media Writer (iirc available on windows), or Rufus to create a live boot disk, boot into it instead of your OS, and play around. There’s typically no persistent memory so everything you do will be reverted when you shut down (and all saved files will be lost), but it’s just for trying it out before you “buy” it so to speak (just don’t click install unless you want to install, of course). There are plenty of guides for that out there, it’s actually a step in the installation process for most distros.
basically there’s the big 3 (debian, arch, fedora) and everything else is just them with presets (ui, drivers, etc)
debian uses apt, arch uses pacman, fedora uses dnf for packaging, so packages (app executables) aren’t intercompatible and so you usually have some apps that aren’t available on on or the other
usually debian had everything, arch has everything with workarounds, idk about fedora
anyway the tree is like:
debian
- ubuntu
- kubuntu
- lubuntu
fedora
- nobara
arch
- manjaro
with DEs you should see which ones you like by testing them out, if you get the debian netinstaller you can select however many you want in the install process and you can switch between them at boot with the dropdown menu in the login prompt
Awesome. Thank you. So I understand why a debian package wouldn’t work on Fedora, but are there Kubuntu packages that wouldn’t work on Lubuntu? Otherwise is there “Kedora” and “Ludora”?
debian packages will work on debian based distros usually, etcetc
fedora calls their kedoras and ludoras “spins”, but I haven’t used fedora so can’t say how good they are
They’re great! Only sticking point for some spins is you sometimes have to enable non-free stuff after installation. Most spins, though, have that enabled ootb.
Just to add for new users, find this info easily by typing “what to do after installing Fedora” into your search engine of choice, there’s many articles about it (and all of them have the same information for the most part).
The package file, no matter if it’s rpm, deb or something else, contains few things: Files for the software itself (executables, libraries, documentation, default configuration), depencies for other packages (as in to install software A you need also install library B) and installation scripts for the package. There’s also some metadata, info for uninstallation and things like that, but that’s mostly irrelevant for end user.
And then you need suitable package manager. Like dpkg for deb-packages, rpm (the program) for rpm-packages and so on. So that’s why you mostly can’t run Debian packages on Fedora or other way around. But with derivative distributions, like kubuntu and lubuntu, they use Ubuntu packages but have different default package selection and default configuration. Technically it would be possible to build a kubuntu package which depends on some library version which isn’t on lubuntu and thus the packages wouldn’t be compatible, but I’m almost certain that on those spesific two it’s not the case.
And then there’s things like Linux Mint, which originally based on Ubuntu but at least some point they had builds from both Debian and Ubuntu and thus they had different package selection. So there’s a ton of nuances on this, but for the most part you can ignore them, just follow documentation for your spesific distribution and you’re good to go.
- ubuntu