From UNIX to Linux: The History That Explains Everything
Exit

Lesson 5 of 7 · History

Linux distributions — Slackware, Debian, Red Hat, Ubuntu and the others

35 min Debian 12

Objective

Understand what a distribution is, where the major families you will meet in companies come from, and why the command to install software changes from one server to another.

Key points

  • The kernel alone is not enough: a distribution brings together the kernel, the GNU tools, thousands of programs, an installer and a package manager.
  • The ancestors still alive were born in 1993: Slackware and Debian. Red Hat and SUSE followed in 1994.
  • Two major families dominate servers: Debian (.deb packages, apt) and Red Hat (.rpm packages, yum/dnf).
  • Ubuntu (2004) derives from Debian; Fedora (2003) prepares the future of RHEL.
  • A distribution publishes either fixed releases (Debian, RHEL, Ubuntu LTS) or continuously (rolling release: Arch).

1. Why distributions?

In 1992, installing Linux was an adventure: you had to get the kernel from a server, compile dozens of GNU programs yourself, copy them onto floppy disks, and hope that everything worked together.

A distribution does this work for you. Compare it with a kitchen:

In a kitchen In a distribution
The ingredients (flour, eggs, sugar) The Linux kernel, bash, coreutils, nginx, MariaDB…
The recipe, tested so that everything goes together The versions chosen and tested with one another
The chef and their style The distribution team, its choices, its philosophy
Regular delivery of fresh ingredients Security updates

In practice, a distribution provides:

  1. an installer (Anaconda at Red Hat, debian-installer, Subiquity at Ubuntu);
  2. a package manager to install, update and remove software;
  3. repositories: servers that host tens of thousands of ready-to-use packages;
  4. default settings: boot system, firewall, security, file locations;
  5. a release policy and a support period.

2. The pioneers (1992-1993)

The very first distributions were called MCC Interim Linux (1992, University of Manchester) and SLS (Softlanding Linux System, 1992). SLS was practical but full of bugs. Two people decided to do better.

Slackware (July 1993)

Patrick Volkerding, an American student, fixed SLS for his own use, then published the result: Slackware. It is the oldest distribution still maintained. Its philosophy: stay close to UNIX, simple, with no "magic" tools. It is very little used in companies today, but it has trained generations of administrators.

Debian (16 August 1993)

Ian Murdock, a student at Purdue University, announced on 16 August 1993 a distribution built openly by a community, and not by a single person. The name combines Debra (his girlfriend at the time) and Ian.

Debian has three characteristics that still matter:

  • It belongs to no company. Thousands of volunteers keep it alive, according to a Social Contract (1997) that promises to remain 100% free.
  • Its Debian Free Software Guidelines (DFSG) served as the basis for the definition of open source (lesson 0.3).
  • Its releases are named after characters from Toy Story: buzz (1.1, 1996), woody, squeeze, jessie, stretch, buster, bullseye (11), bookworm (12), trixie (13)…

Debian also invented a powerful package system: dpkg (mid-1990s), then APT (1998), which downloads and installs dependencies automatically. At the time, it was a small revolution.

3. The commercial distributions (1994)

Red Hat (1994)

Marc Ewing created Red Hat Linux in 1994; Bob Young partnered with him to found the company Red Hat (1995). Red Hat invented the RPM package format (Red Hat Package Manager), then made it free. Red Hat went public in August 1999, with spectacular success: Linux became serious business in the eyes of companies.

In 2003, Red Hat stopped its consumer "Red Hat Linux" to focus on RHEL (paid, for companies) and launched Fedora (free of charge, community-driven). This whole saga is detailed in lesson 0.6.

SUSE (1992-1994)

The German company S.u.S.E. (Nuremberg, founded in 1992) published its first distribution in 1994, initially based on Slackware. It became the reference in Europe, with its graphical configuration tool YaST. Today, SUSE Linux Enterprise (SLES) competes with RHEL in large companies, and openSUSE (2005) is its community version. SUSE uses RPM packages with its own tool, zypper.

4. Ubuntu: Linux for everyone (2004)

In 2004, the South African entrepreneur Mark Shuttleworth founded the company Canonical and launched Ubuntu, a word of Bantu origin that evokes humanity and sharing. The goal: a Linux that is easy, up to date, with a predictable schedule.

  • Debian base: the same .deb packages, the same apt tool.
  • One release every six months, numbered by year and month: 24.04 = April 2024.
  • One LTS release (Long Term Support) every two years, in April of even years: 20.04, 22.04, 24.04… It is supported for 5 years (and longer with the paid Ubuntu Pro subscription).
  • Animal names, in alphabetical order since 2006: jammy (22.04, Jammy Jellyfish), noble (24.04, Noble Numbat)…

Ubuntu has become the most widespread Linux in the cloud and on developers' workstations. It has derivatives of its own, such as Linux Mint (2006).

5. The other families to know

Distribution Year Packages Main idea
Gentoo 2002 Compiled from source (emerge) Optimise everything for your machine
Arch Linux 2002 pacman Simple, minimalist, rolling release; a reference wiki for all Linux systems
Alpine Linux 2005-2006 apk Tiny and secure (musl, BusyBox): widely used as a base for container images
Linux Mint 2006 apt Ubuntu made more familiar for former Windows users
Kali Linux 2013 apt (Debian base) Penetration testing tools (offensive security)
Oracle Linux 2006 rpm, dnf Oracle's rebuild of RHEL

The DistroWatch website lists hundreds of them. But in companies, remember above all two families:

DEBIAN FAMILY — .deb packages, dpkg and apt tools
  Debian (1993)
   └── Ubuntu (2004)
         └── Linux Mint, Pop!_OS…

RED HAT FAMILY — .rpm packages, rpm and yum (RHEL 5-7) / dnf (RHEL 8+) tools
  Red Hat Linux (1994-2003)
   ├── Fedora (2003) ──► CentOS Stream ──► RHEL
   └── RHEL ──► Rocky Linux, AlmaLinux, Oracle Linux (rebuilds)

OUTSIDE THESE TWO FAMILIES
  SUSE (rpm + zypper), Arch (pacman), Alpine (apk), Gentoo (emerge)

6. The package manager: the heart of a distribution

A package is an archive that contains a piece of software and information: its version, its description, and above all its dependencies (the other packages it needs).

There are two levels of tools in each family:

Level Role Debian family Red Hat family
Low level Install a package file already present, query the local database dpkg rpm
High level Search the repositories, download, resolve dependencies, update the whole system apt (and apt-get) yum (RHEL 5 to 7), dnf (RHEL 8 and later)
# Debian / Ubuntu family
apt update && apt install nginx     # install nginx and its dependencies
dpkg -l | grep nginx                # is it installed?

# Red Hat family
dnf install nginx                   # (yum install nginx on RHEL 7)
rpm -qa | grep nginx                # is it installed?

Dependencies are the whole point: you ask for nginx, and the tool also installs the necessary libraries, in versions tested together. Without a package manager, you would spend hours looking for them one by one.

More recently, universal formats have appeared, independent of the distribution: Snap (Canonical, 2016), Flatpak (mainly for desktop applications) and, on the server side, containers (Docker in 2013, Podman). They do not replace classic packages: they come in addition to them.

7. Fixed releases or continuous publication

Model Principle Examples For whom?
Fixed releases, long support One major release every 2-3 years, then only fixes for years RHEL, Rocky, Alma (10 years), Debian (≈ 5 years with LTS support), Ubuntu LTS Production servers: stability above all
Fixed releases, short cycle One release about every 6 months Fedora, non-LTS Ubuntu Workstations, discovering new features
Continuous publication (rolling) No releases: you update all the time Arch, openSUSE Tumbleweed Enthusiasts, personal computers

A bank or online shop server wants nothing to change unless someone has decided it: it runs on a fixed release with long support. That is why this course teaches Red Hat (RHEL and its clones), Debian and Ubuntu LTS.

8. How do you know which distribution you are on?

It is the first habit to develop when you arrive on an unknown server:

cat /etc/os-release          # standard on all modern distributions
#   ID=debian, ID=ubuntu, ID="rocky"…     → the distribution
#   ID_LIKE="rhel centos fedora"           → the family
#   VERSION_ID="12"                        → the version
cat /etc/debian_version      # Debian family only
cat /etc/redhat-release      # Red Hat family only

The /etc/os-release file was standardised around 2012 with the arrival of systemd. On very old servers (CentOS 6, for example), it may be missing: in that case, use /etc/redhat-release.

9. The lesson timeline

1992  MCC Interim Linux, SLS — S.u.S.E. founded in Germany
1993  Slackware (July) — Debian (16 August)
1994  Red Hat Linux — first SuSE distribution
1997  Debian Social Contract
1998  APT (Debian) — Mandrake
1999  Red Hat goes public
2002  Arch Linux, Gentoo
2003  Fedora Core 1; RHEL becomes Red Hat's flagship product
2004  Ubuntu 4.10 (October); CentOS
2005  openSUSE; Alpine (2005-2006)
2013  Docker: containers spread
2023  Debian 12 "bookworm"
2024  Ubuntu 24.04 LTS "noble"
2025  Debian 13 "trixie"; RHEL 10

Common pitfalls

  • Copying an installation command found on the Internet without checking the family. apt install does not exist on Rocky; dnf does not exist on Debian. Look at /etc/os-release first.
  • Installing a .deb on a Red Hat distribution (or an .rpm on Debian). It is not the same format, nor the same libraries. Look for the package for your family.
  • Mixing the repositories of two releases (for example adding Debian 13 packages to a Debian 12 system). It is the best way to break a system: the dependencies no longer match.
  • Thinking that Ubuntu and Debian are identical. They share apt and .deb, but their software versions, their network tools (Netplan on Ubuntu) and their default firewall differ.

Lab

You are on Debian 12. Investigate as you would on an unknown server:

cat /etc/os-release
cat /etc/debian_version
dpkg -l | head -n 10            # the first installed packages
dpkg -l | grep -c '^ii'         # how many in total?
dpkg -s coreutils               # the details of a package

The tasks: identify the distribution, note its exact version, count the installed packages and read the version of the coreutils package. The lab is deliberately minimal: a full server often has several hundred packages. Then click Check.


Quiz

  1. Name four things that a distribution adds to the Linux kernel.
  2. What are the two oldest distributions still maintained, and in what year were they born?
  3. Which family does Ubuntu belong to? What is its package format?
  4. What is the difference between rpm and dnf?
  5. You arrive on an unknown server. What is your first command to find out which distribution it runs?
Answers
  1. Any of: the GNU tools and thousands of programs, an installer, a package manager, repositories, default settings, a release and security update policy.
  2. Slackware (July 1993) and Debian (August 1993).
  3. The Debian family; .deb packages, managed with dpkg and apt.
  4. rpm is the low-level tool (installs an .rpm file, queries the local database); dnf is the high-level tool that fetches packages from the repositories and resolves dependencies.
  5. cat /etc/os-release (and, on a very old Red Hat server, cat /etc/redhat-release).

Reference sources: official history of Debian and Social Contract (debian.org), Fedora and Red Hat documentation, Ubuntu release cycle. Original MasterLinux text.

Practical exercises

To do on Debian 12

The online terminal is coming soon. Meanwhile, do these tasks on your own Linux machine, a virtual machine or WSL.

  1. Save the line that starts with ID= in /etc/os-release in the file /root/id.txt
    Show a hintThe ^ symbol means “at the start of the line”: grep '^ID=' /etc/os-release > /root/id.txt
    Show the solution
    grep '^ID=' /etc/os-release > /root/id.txt

    Check : grep -qx 'ID=debian' /root/id.txt

  2. Debian keeps its version number in a separate file, /etc/debian_version. Copy it into /root/version.txt
    Show a hintcat /etc/debian_version > /root/version.txt
    Show the solution
    cat /etc/debian_version > /root/version.txt

    Check : grep -q '^12' /root/version.txt

  3. Count the installed packages: dpkg -l displays a line starting with ii for each one. Save their number in /root/nb-paquets.txt
    Show a hintgrep -c counts the matching lines: dpkg -l | grep -c '^ii' > /root/nb-paquets.txt
    Show the solution
    dpkg -l | grep -c '^ii' > /root/nb-paquets.txt

    Check : grep -qx "$(dpkg -l | grep -c ^ii)" /root/nb-paquets.txt

  4. Query the package manager about the coreutils package (dpkg -s coreutils) and save only its Version line in /root/coreutils.txt
    Show a hintdpkg -s coreutils | grep '^Version' > /root/coreutils.txt
    Show the solution
    dpkg -s coreutils | grep '^Version' > /root/coreutils.txt

    Check : grep -q '^Version: ' /root/coreutils.txt

Official references consulted: Debian — « A Brief History of Debian » et Debian Social Contract (debian.org) ; Fedora Project et Red Hat — documentation officielle ; Ubuntu — Release cycle (ubuntu.com). Original MasterLinux text.