Concept of Distros
Microsoft Windows is an Operating System (OS), so is GNU/Linux, often incorrectly referred to as only Linux. Windows OS has versions (Windows 2000, XP,Vista, 7, 8, 10) but GNU/Linux OS has distributions which in turn have versions (typically a number). These distributions (or distros) are a source of confusion for Windows users.
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs (applications). A typical OS installation will come with standard applications. So for the purpose of discussion here, we will consider these applications as well to understand the nuances.
GNU and Linux evolved as Free Software, allowing people to create variations. The upside is that it can be innovative. However, the downside is variations (or lack of consistency) which makes adoption for new users difficult. But once you know the underlying differences (and similarities), you will realize that they are all pretty much the same. Adopting and switching among the many distributions should be less intimidating.
These distributions are in a sense “flavors” of GNU/Linux from different vendors. Typical distributions are Debian, Ubuntu, Red Hat, CentOS, Fedora, Slackware, SuSE, to name a few among many.
Under the hood
The GNU/Linux OS and applications has the following sub-systems (over simplified) under the hood.
The computer firmware loads an operating system into memory. The BIOS (Basic Input Output System) uses a boot loader which is a small program stored in the MBR (Master Boot Record) to help load the operating system into memory1.
Examples: GRUB (GRand Unified Bootlader) and LILO (LInux LOader).
Note: More recent hardware uses UEFI (Unified Extensible Firmware Interface) with GPT (GUID Partition Table) for booting the operating system2.
Linux is the low level system program that interacts with the hardware and allocates the machine’s resources to the other programs that you run. It provides a software interface to the underlying hardware.
Examples: File system, Memory management, Networking and others.
GNU Tools/Libraries provides the low level Operating System functionalities.
Command Line Interface (CLI)
It provides a means of interacting with the Operating System and programs using only text commands.
See example Linux commands.
Graphical User Interface (GUI)
It provides the Desktop Environment front end to an Operating System and its programs. It’s a set of libraries that use a common GUI so all programs will have a similar look and feel. A Desktop Environment consists of a Window Manager 3 and a Windowing System 4.
Examples: GNOME, KDE, Xfce and others.
These are programs for end users that make the computer and operating system useful to a large audience.
Examples: Text Editor, Music Player, Video Player and others.
See what constitutes an Application Software.
Automates the process of installing, upgrading, configuring, and removing programs in a consistent manner.
Examples: dpkg, apt, rpm, yum and others.
See Linux Package Manager for more details.
Finally, a Distribution
A combination of these sub-systems will make up a distribution. So you can imagine the possible variations. Most variations come from the default GUI5 (Desktop Environment), Package Manager and default applications. However, since the kernel, system tools/libraries and CLI (Command Line Interface) are relatively constant, the core of any distribution is similar.
Historically, distributions have evolved over time each with its own development philosophy, plan and strategy. In many cases, active development may derive from another distribution (see the simplified Linux distribution timeline 6 image at the top of this page). But the bottom line is that they are more similar than different – simply a GNU/Linux Operating System.
- Read more about the Linux boot process. ↩
- Read more about the UEFI boot process. ↩
- The Window Manager controls the placement and appearance of windows within a windowing system. Most window managers are designed to help provide a desktop environment. It provides functionality to open, close, minimize, maximize, move, resize and keep track of running windows, including window decorators. Many window managers also come with additional utilities and features like docks, task bars, program launchers, desktop icons and wallpaper.
Examples: Metacity(GNOME), KWin(KDE), Xfwm(Xfce) and others. ↩
- The Windowing System manages separately different parts of display screens. It implements the windows, icons, menus and pointer paradigm for a user interface.
Examples: X Window System, Wayland and others. ↩
- Many distributions may even support multiple Desktop Environments (GUIs), so the user has the ability to pick one or switch at a later time. ↩
- The full blown Linux distribution timeline can be found on Wikipedia. ↩