The Job of a Linux Distro

From the purist standpoint, Linux refers to the kernel. There is the Linux kernel and there are Linux distros. Remember that the Linux kernel is essentially the OS that runs the applications on top of it. It is the kernel that is between the hardware and your apps. For illustration,

APPS (GNOME/KDE desktop, Open Office, X Window, shell, etc) –> Linux (kernel) –> HARDWARE (x86-64, AMD, etc)

OStatic says it best:

A Linux operating system, or distribution, is piece-mealed together, taking parts from the different groups that create them. Linux distributions like Ubuntu do not actually develop most of the applications that they ship with, what the distributions do is curate open source software. What the Linux developer ecosystem has created is a type of gentleman’s agreement to work loosely together, producing software that also works loosely within the operating system.

Gnome is an excellent example. The Gnome project creates the desktop environment used in Ubuntu, Red Hat, and many other operating systems. Each distribution tweaks Gnome a bit by adding or removing applications, but most of it is the same between the different systems. For all practical purposes, to the non-techie, non-geek, Gnome is the operating system, because it’s what they see and interact with. In Ubuntu, the default Gnome browser, Epiphany is removed and replaced with Firefox. The Gnome office suite is not used, favoring the more popular suite instead. Each distribution picks what it feels are the best parts available from the open source community.

The job of the distributions is to ensure that the software available in their repositories works together without conflict. Since each piece of a complete Linux operating system is developed independently, they are all on different development road maps with different milestones along the way. The latest version of RHEL may not have the same version of MySQL available in its repositories that Ubuntu has in theirs. This is to provide a complete system without running into dependency hell.