I'm trying to understand how the pieces of Linux fit together. The Linux kernel handles communication with the hardware and manages resources, while a desktop environment such as GNOME provides the graphical interface. Bash or another shell provides command-line access.
Using Ubuntu as an example, what does the distribution itself contribute beyond the kernel, desktop environment, and shell? What do distributions such as Ubuntu or Mint actually provide, and how do they differ from one another?
4 Answers
There is much more to a Linux system than the kernel, shell, and desktop. The shell is mainly a command interpreter; commands such as ls, grep, and sed are separate programs. A complete system also needs libraries such as glibc, standard command-line utilities, networking tools, process-management tools, a bootloader, and a service manager such as systemd. The distribution assembles and maintains all of these pieces.
Ubuntu makes a lot of choices for you: which kernel version to ship, which desktop and default applications to include, what goes into its software repositories, how the system is configured, and how updates are delivered. Other distributions make different choices, which is why they can feel different even though they use many of the same underlying projects.
A useful way to think about it is that distributions are different complete bundles built from many of the same ingredients. Ubuntu, Fedora, Debian, and Mint may share the kernel and many applications, but they package them differently, choose different defaults, provide different repositories and update policies, and apply their own configuration and support decisions. The bundle and the maintenance around it are what make the distribution.
A distribution is a collection of software projects packaged and maintained as one usable operating system. It combines the kernel, system libraries, shell, desktop environment, applications, configuration, installers, documentation, repositories, and updates. The distribution also makes sure the different pieces work together and provides a consistent way to install and upgrade software.

Package management is one of the biggest practical differences, but it isn’t the only one. Default software, configuration, release schedule, security policies, and even visual themes can vary too.