this post was submitted on 24 Jan 2024
107 points (84.5% liked)
Linux
48333 readers
641 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Can somebody ELI5 what the difference between Linux distros is? I’m ashamed to admit I don’t truly understand, aside from different package managers and DEs but even then there are only a handful of those.
It's mostly just package management, you can install as many DEs as you want on just about every distro.
You're not stuck with whatever default DE any distro uses.
Yeah but don’t Debian and Ubuntu (for example) use the same package manager?
Yes but they use different repositories with different maintainers. Think of a package manager like steam, epic, etc, except instead of games it's everything. Some package managers get different applications, some have different versions of the same applications. In the case of Debian/Ubuntu it's more like steam in China vs steam in the rest of the world. Same steam, different games, different maintainers of who decides what games get to go in which steam.
Oh, so if you install software with apt, you might get a different version based on the different maintainer/distribution?
I always figured you’d just get the latest version of the software.
Are there instances of software packages available for one distro but not another?
Generally end-user applications like Firefox would be the latest/same version, but system libraries might be a few versions different. Generally security patches are written for a few major versions of libraries/daemons at the same time. So features might be different but it's all the same security for the most part.
That's the major draw between one distro to another, they will have different philosophies on what to include, and what major version to use. Debian for example is much more reluctant to upgrade something unless there's a large demand for a new feature. The theory is it is more stable and consistent to use that way.
Ubuntu on the other hand features much more modern versions of libraries because they want to be more hip and modern, expecting users to learn new things more often because they think the new features are worth it and they want to support all the things.
You can use the "testing" release of Debian if you want newer stuff. It's still more stable than rolling distros. Packages have to be in the "unstable" release for 10 days with no major bugs to get promoted to testing.
As far as I’m aware the only real difference is what repositories are available and what the default settings/programs/etc are
It can sort of depend on the distro, there are a lot of Debian-based ones such as Debian (obviously), Kali, Ubuntu, and then ones based on Ubuntu like Mint and Pop!OS, those all largely work the same under the hood, ie you'd use .deb files and something like
sudo apt-get install
to install something.Then there are Arch-based ones like Arch and Manjaro, which are a bit more different, you'd use
pacman
oryay
orparu
to install things instead, and they have things like the AUR, which is a big user-maintained repository or software that has just about everything on it.Then you have the Fedora based ones and SUSE based ones, which are different again in other ways. And some more unique and weirder ones like NixOS which is having a bit of a moment, whereby you sort of configure the entire system in one single config file and rebuild it each time (as I understand it, that might be a bit off 'cause I'm still learning.)
So yeah it sort of depends. And then you have desktop environments like GNOME and KDE which aren't distros, but do affect how the whole system looks (and functions, to an extent.) And these are largely agnostic of the underlying distro, so you could have say a machine running Debian with GNOME next to a machine running NixOS with GNOME which would look very similar from the desktop but would be hugely different under the hood, and two machines running Arch, one with GNOME and one with KDE which would look totally different but be functionally the same.
I won't even start on Display Managers lol.
The way I understand it is like this:
The grand theory of classic package managers is the idea that lots of programs all need the same core libraries to function. An analogy would be like noticing most construction jobs need
nails
. So instead of making everyone bring their own copy ofnails
, resulting in dozens of redundant copies of it lying around, they have a singlenails
package that everyone can use.But there are different versions of
nails
out there. Each version picks up unique new features, and drops legacy ones. Recent builds may incorporate and thus require the new features, making them incompatible with old versions ofnails
that don't have them. On the other hand, some builds may still use and rely on legacy features ofnails
, and are thus incompatible with the new versions. You may run into a scenario where you want Software A that needsnails
version 14+, but also Software B that can only run onnails
v <13, and you just can't, because they don't overlap.Additionally, there may just be a totally different competing package out there,
screws
, that does largely the same job asnails
, but in a completely different way that is totally incompatible with projects that expectnails
. So if you need Software C that relies onnails
, but also Software D that relies onscrews
, you might cause problems by installing both.What a distro is is essentially a group of devs declaring that they are putting together some specific list of libraries (like, say,
nails
v14), and then sculpting up a bundle of software around those specific libraries. Can't cope withnails
v14? That sucks. No package for you, then.In that sense, distros are differentiated by what libraries and other low-level system softwares are available to the programs you wish to install on them. If you want your program to be available natively on every distro, it needs to be compatible with every competing set of libraries each distro has elected to use.
It is possible to just say "fuck it" to the distro's built-in libraries, and instead bundling the specific version of
nails
orscrews
or whatever you project needs directly with it. Build your own with blackjack and hookers, as it were. That's exactly what Flatpak does, among others. But it's trading flexibility for redundancy. In the age of cheap and plentiful storage memory, many people think this trade is well worth it. But it makes many formalists cringe.