What a Linux Distribution Is

June 15, 2000

To understand what a Linux distribution is, it is necessary to first explain what Linux is and a little about its component parts. This involves the component parts of an operating system (OS) including such things as file systems. This article will attempt to explain these concepts at a basic level.

What is an Operating System?

An operating system consists primarily of three things:

  1. A filesystem - All the files that run and support an operating system along with other files must reside on a filesystem. When an operating system is installed, one of the first things done is to set the hard drive storage space up. This usually consists of setting up partitions and formatting the hard drive. During this process the filesystem that the particular system can use is created.
  2. One or more core programs - The program that provides all the basic support is included here. Sometimes an operating system is split into programs performing various uses. For example there may be parts of the program that provide various system interfaces to devices, or provide interfaces to the user.
  3. Other support programs - In the DOS operating system, there were various support programs that enhanced a users ability to perform tasks, but they were fundamentally important for the use and versatility of the operating system. One of these programs included a disk format program.

Beyond this, other specific programs would provide additional functionality to the operating system. For example, I would not consider Internet Explorer from Microsoft to be a part of the operating system. (Although it is packaged with the OS - but that is another issue left for editorials.) Internet Explorer adds the functionality to be able to use the web. You aren't required to use Internet Explorer, but can use any other web surfing program.

What is Linux?

Linux is an operating system which is built from various packages. The various packages provide various functions to the system. Sometimes these functions are critical to the ability of the operating system to run, and sometimes they are not. Also a Linux operating system due to its extreme flexibility can be configured in a variety of ways. For example, normally it is required that a user logs in to run Linux. A Linux expert can set a Linux operating system up that requires no login. Linux software basically consists of:

  1. A kernel - This is the central or core program of the operating system. It provides support for interfacing to all devices such as the keyboard, monitor, network devices, and other devices. Sometimes the support for these devices is included as loadable modules.
  2. Support programs for the kernel - These programs allow the system or user to manage the kernel and allows the loading and unloading of modules in the kernel
  3. The shell program - This the program that interprets user commands and acts on them. Linux provides choices of several shell programs. Each shell program may be a separate "Linux package".
  4. Programs that support and add enhancements to the operating system with regard to functions like logging in. For example the shadow password suite of programs adds many useful features to the system that increases system security and allows the administrator manage the system better.
  5. Server programs - Programs that provide specific network services, either on the client and/or the server side.
  6. Miscellaneous utility programs
  7. The list goes on and on....

What is a Linux Package?

A Linux package consists of a package of one or more programs with associated documentation that will perform a specific function either for the operating system or add additional capabilities such as providing a web server. (The Apache web server package). Sometimes the source code is included as a part ot the package. There are a few package types. The original standard Linux package type consisted of what was called a tarred and gzipped file. This simply refers to the fact that the package was wrapped into one large file for backup purposes, then it was compressed to save storage space or make it easier to transfer from one place to another. Another type of popular package format is called RPM which refers to the Redhat Package Manager. Also the Debian Distribution has their own package format. Refer to the Linux users guide for how to use and install these packages.

What is a Linux Distribution?

It is obvious by now that a Linux distribution is in a basic sense a set of packages that together make up the operating system. It is a little more than that. In order to install the operating system the tools to perform the install must be available in the correct order for the user. A user interface must provide information to the user so they will know what they can do and what their choices are. The user interface must also interpret user commands and act upon them. Also the Distribution package generally makes some assumptions about the way the system will be set up. Deciding how to set the user interface up for the installation can be a complicated task.

Various distributions will allow:

  1. Different tools and methods to set the system up.
  2. Different choices with regard to setup.
  3. Various choices of packages to install.

The core of the operating system is still likely to be the same or similar and many of the packages used will be the same. Also the user can get additional packages and install them on the operating system.

One other important issue

The various packages are created by different groups of developers on various computers and tested individually under different circumstances. There is a pretty good consensus of programming methodology among the Linux community with regard to program compatibility. There are various libraries that are used for compiling programs, and there are libraries providing various functions that are considered to be the "standard of the day". Although these issues are dealt with, there is no guarantee that all packages will work well together. Therefore some system testing should be done before a distribution is made available. The amount of testing varies widely from one distribution to another.



Mark Allen

Linux Articles Contents Page