Licensing and Distro Families
Two things that shape the Linux ecosystem more than any single technical detail - the open source licenses code is released under, and the "family tree" of which distributions are actually built on top of which others.
Kernel vs. Distribution covers what technically differs between distributions. This covers two things that aren't technical at all, but explain a lot about why the ecosystem looks the way it does: the legal terms code is shared under, and which distributions are actually derivatives of which others.
Open source licenses
Not all open source licenses grant the same freedoms, and the difference matters in practice - not just legally.
GPL (GNU General Public License) - the Linux kernel's own license,
and the one behind much of the GNU userland (bash, coreutils, gcc).
Copyleft: if you distribute a modified version, you must make that
version's source available under the same license too. This is
deliberate - it's designed to keep improvements to GPL software flowing
back into the open, rather than letting a company take the code
proprietary. See What Is Linux? for how
this shaped the kernel's early growth.
MIT / BSD - permissive: do essentially anything with the code, including using it in closed-source proprietary software, as long as the original copyright notice is kept. Much of the modern web and cloud tooling ecosystem (Node.js, Redis historically, most Go projects) uses one of these.
Apache 2.0 - permissive like MIT/BSD, with an added explicit patent grant: contributors license any patents they hold covering their contribution, reducing the risk of a later patent claim against users of the code. Common in larger corporate-backed projects (Kubernetes, Android's own code, much of the Apache Software Foundation's catalog).
The practical question a license answers: can you fork it, modify it, and redistribute your changes - and if you do, are you required to share your modifications too? A permissively-licensed tool can be quietly forked into a closed product; a copyleft one generally can't be, which is a deliberate choice by the original author about what kind of ecosystem they want to encourage.
Distro families
Most distributions aren't built from scratch - they're derived from an existing one, inheriting its package format and much of its underlying system in the process.
Debian family - Debian itself, famous for stability and a strict
free-software policy, is the base for Ubuntu (which adds a faster
release cadence, commercial backing from Canonical, and broader default
hardware/driver support), which is in turn the base for Linux Mint,
Pop!_OS, and elementary OS. All share .deb packages and APT
(see APT and dpkg) - a .deb file
or PPA built for Ubuntu very often installs cleanly on Mint or Pop!_OS
too, since they track Ubuntu's own package versions closely.
Red Hat family - Fedora is Red Hat's fast-moving upstream
testing ground, where features land before eventually reaching RHEL
(Red Hat Enterprise Linux), the stable, commercially-supported
downstream release. CentOS Stream, Rocky Linux, and AlmaLinux
sit adjacent to RHEL - free, binary-compatible (or near enough)
alternatives that emerged after CentOS's original role as a free RHEL
rebuild was discontinued in favor of CentOS Stream tracking just ahead
of RHEL instead. All use .rpm packages and DNF (see
DNF and RPM).
Arch family - Arch Linux itself: rolling-release, minimal,
DIY-oriented, using pacman (see Pacman).
Manjaro and EndeavourOS build a more approachable, pre-configured
installation experience on top of Arch's package format and tooling,
trading some of Arch's "you configure everything yourself" philosophy
for a gentler on-ramp - EndeavourOS pulls packages straight from Arch's
own repositories, while Manjaro maintains its own separate,
delayed-by-design repositories (holding packages back for additional
testing) rather than tracking Arch's directly.
Independent - openSUSE, Slackware, Gentoo, and Void aren't derivatives of any of the above, each with their own package tooling and philosophy (Gentoo notably compiles packages from source by default rather than distributing binaries, for instance).
Why lineage matters practically
- A guide, PPA, or
.debwritten for Ubuntu very often works unmodified (or with minor version differences) on Mint or Pop!_OS, precisely because they share a package base - but the same guide usually needs translating for Fedora or Arch, which don't. - "Which distro should I use" is mostly a question of which family's release philosophy and package availability fits - Debian's stability, Arch's currency, Fedora's middle ground - not a fundamentally different operating system underneath, per Kernel vs. Distribution.
- Knowing a distribution's lineage is often the fastest way to guess whether an unfamiliar command, config file location, or package name will match what you already know from a different distro in the same family.