Linux distribution
A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is often obtained via a website intended specifically for the purpose. Distros have been designed for a wide variety of systems ranging from personal computers to servers and from embedded devices to supercomputers.
A distro typically includes many components in addition to the Linux kernel. Commonly, it includes a package manager, an init system, GNU tools and libraries, documentation, IP network configuration utilities, the getty TTY setup program, and many more. To provide a desktop experience a display server, a desktop environment, a sound server, and other related programs may be included or installed by the user.
Typically, most of the included software is free and open-source software made available both as binary for convenience and as source code to allow for modifying it. A distro may also include proprietary software that is not available in source code form, such as a device driver binary.
A distro may be described as a particular assortment of application and utility software, packaged with the Linux kernel in such a way that its capabilities meet users' needs. The software is usually adapted to the distribution and then combined into software packages by the distribution's maintainers. The software packages are available online in repositories, which are storage locations usually distributed around the world. Beside "glue" components, such as the distribution installers and the package management systems, very few packages are actually written by a distribution's maintainers.
Distributions have been designed for a wide range of computing environments, including desktops, servers, laptops, netbooks, mobile devices, and embedded systems. There are commercially backed distributions, such as Red Hat Enterprise Linux, openSUSE and Ubuntu, and entirely community-driven distributions, such as Debian, Slackware, Gentoo and Arch Linux. Most distributions come ready-to-use and prebuilt for a specific instruction set, while some are distributed mostly in source code form and must be built before installation.
History
developed the Linux kernel and distributed its first version, 0.01, in 1991. Linux was initially distributed as source code only, and later as a pair of downloadable floppy disk images: one bootable and containing the Linux kernel itself, and the other with a set of GNU utilities and tools for setting up a file system. Since the installation procedure was complicated, especially in the face of growing amounts of available software, distributions sprang up to simplify it.Early distributions included:
- Torvalds' "Boot-Root" images, from v0.95a onwards "Root" was maintained by Jim Winstead Jr., the aforementioned disk image pair with the kernel and the absolute minimal tools to get started
- MCC Interim Linux
- TAMU Linux, based on MCC with simpler installation and X11
- Softlanding Linux System which included the X Window System and was the most comprehensive distribution for a short time
- H.J. Lu's "bootable rootdisks", and "Linux Base System"
- Yggdrasil Linux/GNU/X, a commercial distribution
Users were attracted to Linux distributions as alternatives to MS-DOS compatible operating systems, Windows, Classic Mac OS, and proprietary versions of Unix. Most early adopters were familiar with Unix from work or school. They embraced Linux distributions for their low cost, and the availability of the source code for most or all of their software.
As of 2025, Linux has become more popular in server and embedded devices markets than in the desktop market. It is used in approximately 64.5% of web servers; its current operating system market share is about 2.51%, and its desktop operating system market share is about 2.94%.
Components
Many Linux distributions provide an installation system akin to that provided with other modern operating systems. Other distributions, including Gentoo Linux, provide only the binaries of a basic kernel, compilation tools, and an installer; the installer compiles all the requested software for the specific architecture of the user's computer, using these tools and the software's source code.Package management
Distributions are normally segmented into packages. Each package contains a specific application or service. Examples of packages are a library for handling the PNG image format, a collection of fonts, and a web browser.The package is typically provided as compiled code, with installation and removal of packages handled by a package management system rather than a simple file archiver. Each package intended for such a PMS contains meta-information such as its description, version number, and its dependencies. The package management system evaluates this meta-information to allow package searches, perform automatic upgrades to newer versions, and to check that all dependencies of a package are present. The package can also be provided as source code to be compiled on the system.
Most distributions install packages, including the kernel and other core operating system components, in a predetermined configuration. A few now require or permit configuration adjustments at first install time. This makes installation less daunting, particularly for new users, but is not always acceptable. For specific requirements, much software must be carefully configured to be useful, to work correctly with other software, or to be secure, and local administrators are often obliged to spend time reviewing and reconfiguring it.
Some distributions go to considerable lengths to adjust and customize the software they include, and some provide configuration tools to help users do so.
By obtaining and installing everything normally provided in a distribution, an administrator may create a "distribution less" installation. It is possible to build such systems from scratch, avoiding distributions altogether. One needs a way to generate the first binaries until the system is self-hosting. This can be done via compilation on another system capable of building binaries for the intended target. For example, see Linux From Scratch.
Types and trends
In broad terms, Linux distributions may be:- Commercial or non-commercial
- Designed for enterprise users, power users, or for home users
- Supported on multiple types of hardware, or platform-specific, even to the extent of certification by the platform vendor
- Designed for servers, desktops, or embedded devices
- General purpose or highly specialized toward specific machine functionalities
- Targeted at specific user groups, for example through language internationalization and localization, or through inclusion of many music production or scientific computing packages
- Built primarily for security, usability, portability, or comprehensiveness
- Standard release or rolling release, see below
- Mutable release or immutable release
Rolling distributions vis-à-vis standard releases
Rolling Linux distributions are kept current using small and frequent updates. The terms partially rolling and partly rolling, fully rolling, truly rolling and optionally rolling are sometimes used by software developers and users.Repositories of rolling distributions usually contain very recent software releases—often the latest stable versions available. They have pseudo-releases and installation media that are simply snapshots of the distribution at the time of the installation image's release. Typically, a rolling-release OS installed from older installation medium can be fully updated after it is installed.
Depending on the usage case, there can be pros and cons to both standard release and rolling release software development methodologies.
In terms of the software development process, standard releases require significant development effort to keep old versions up-to-date by propagating bug fixes back to the newest branch, versus focusing on the newest development branch. Also, unlike rolling releases, standard releases require more than one code branch to be developed and maintained, which increases the workload of the software developers and maintainers.
On the other hand, software features and technology planning are easier in standard releases due to a better understanding of upcoming features in the next version. Software release cycles can also be synchronized with those of major upstream software projects, such as desktop environments.
As for the user experience, standard releases are often viewed as more stable and bug-free since software conflicts can be more easily addressed and the software stack more thoroughly tested and evaluated, during the software development cycle. For this reason, they tend to be the preferred choice in enterprise environments and mission-critical tasks.
However, rolling releases offer more current software which can also provide increased stability and fewer software bugs along with the additional benefits of new features, greater functionality, faster running speeds, and improved system and application security. Regarding software security, the rolling release model can have advantages in timely security updates, fixing system or application security bugs and vulnerabilities, that standard releases may have to wait till the next release for or patch in various versions. In a rolling release distribution, where the user has chosen to run it as a highly dynamic system, the constant flux of software packages can introduce new unintended vulnerabilities.