Jump to content

Linux distribution

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Paradoxsociety (talk | contribs) at 00:14, 4 March 2006 (grammar). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A Linux distribution Template:Fn is a Unix-like operating system comprising the Linux kernel, the GNU operating system (or most of it), other assorted free software/open-source software, and possibly proprietary software.

Commercially backed distributions such as Red Hat, Ubuntu (backed by Canonical Ltd), SUSE (backed by Novell) and Mandriva, and community projects such as Debian and Gentoo assemble and test the software before releasing their distribution. There are currently over three hundred Linux distribution projects in active development, revising and improving their respective distributions.

History

Before the first Linux distributions, a would-be Linux user was required to be something of a Unix expert, not only knowing what libraries and executables were needed to successfully get the system to boot and run, but also important details concerning configuration and placement of files in the system.

Linux distributions began to appear soon after the Linux kernel was first used by individuals outside the original Linux programmers. They were more interested in developing the operating system than in application programs, the user interface, or convenient packaging.

Early distributions included:

None of these distributions were well-maintained, so Patrick Volkerding released a distribution based on SLS, which he called Slackware; this is the oldest distribution still in active development.

Linux distributions attracted users as an alternative to the DOS and Microsoft Windows operating systems on the PC and to Mac OS on the Apple Macintosh. Most early adopters were used to Unix from work or school. They embraced Linux for its stability, low (if any) cost, and for the inclusion of the source code for most or all of the software included.

The distributions were originally simply a convenience, but today they have become the usual resort even for Unix or Linux gurus. To date, Linux has proven more popular in the server market, primarily for Web and database servers (see also LAMP), than in the desktop market.

Composition

A typical Linux distribution comprises a Linux kernel, GNU tools and libraries, additional software, documentation, and some multimedia (such as fonts, desktop wallpapers, system sounds, etc.). Most of the included software is free software/open-source software which is distributed by its maintainers both as pre-compiled binaries and in source code form, allowing users to modify and compile the original source code if they wish. Other software included with some distributions may be proprietary and may not be available in source code form.

A Linux distribution almost always offers compiled versions of the Linux kernel, GNU system libraries and assorted programs that make up the rest of an operating system. Many provide an install program / procedure akin to that provided with other operating systems (e.g., Solaris Operating Environment, Microsoft Windows, etc.). Self-hosting distributions (e.g., Gentoo Linux, Linux From Scratch, etc. - See Source Distribution section of List of Linux distributions) provide the source code of all software and include binaries only of a basic kernel, compilation tools (e.g, a compiler, make utility, etc.), and an installer; the installer compiles all the software for the specific microarchitecture of the user's machine.

Distributions are normally segmented into packages, each package holding a specific application or service; one package may contain a library for handling PNG images, another may contain a number of fonts, while a third may supply a web browser.

In addition to providing packaged, compiled code, most distributions offer tools for installation/removal of packages that are more powerful than a simple file archiver. This software is said to be the package management system (PMS) of the distribution. Each package intended for such a PMS contains meta-information like description, version, "dependencies", etc. The package management system can evaluate this meta-information to allow package searches, to perform an automatic upgrade to a newer version, to check that all dependencies of a package are fulfilled and/or to fulfill them automatically, and more. Package management systems include:

  • RPM — now RPM Package Manager, but originally Red Hat Package Manager, originally from Red Hat but now used by many other distributors as well
  • debDebian package, originally from Debian but also used by others like Knoppix
  • tgz or tar.gz — standard tar + gzip, possibly with some extra control files — used by Slackware and others, or sometimes when distributing very simple handmade packages
  • ebuild — the file containing information on how to retrieve, compile, and install a package in Gentoo's Portage system using the command emerge. Typically these are source-primary installs, though binary packages can be installed in this fashion as well.
  • recipe — the file containing information on how to download, unpack, compile and install a package in Gobo Linux distribution using its Compile tool. This system is similar to the Gentoo's Portage, but is more simplistic in design.
  • src — building the packages from source (often binary packages are provided in parallel on many systems).
  • klik — klik aims to provide an easy way of getting software packages for most major distributions without the dependency problems so common in many other package formats.

Although Linux distributions typically contain much more software than proprietary operating systems, it is normal for local administrators to install software not included with the distribution. An example would be a newer version of a software application than that supplied with a distribution, or an alternative to that chosen by the distribution (e.g., KDE rather than GNOME or vice versa). If the additional software is distributed in source-only form, this approach requires local compilation. However, if additional software is locally added, the 'state' of the local system may fall out of synchronization with the state of the package manager's database. If so, the local administrator user will be required to take additional measures to ensure the entire system is kept up to date, that all required patches are installed, etc. The package manager may no longer be able to do so automatically.

Most distributions install packages, including the kernel and other core operating system components, in a predetermined configuration. Few now require or even 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 assorted software.

Some distributions go to considerable lengths to specifically adjust all (or some) of the software they include to their particular distribution (location of particular files and so on), but not all do so. Some distributions provide configuration tools to assist in this process, but, again, not all do so. Note that such adjustments are typically site-specific and it is not possible for anyone, including a distribution's designer, to pre-configure the software provided to meet individual requirements. As with all operating systems, Linux and its distributions impose a system administration obligation on its users/operators/owners. Linux distributors differ from most operating system vendors in not claiming that "no administration is required." This honesty can worry potential users who have been told otherwise in marketing claims of other operating systems.

By replacing everything provided in a distribution, an administrator may reach a 'distribution-less' state: everything was retrieved, compiled, configured, and installed locally. It is possible to build such a system from scratch, bypassing any distribution altogether, but one needs a way to generate the first binaries until the system is self-hosting (i.e., has a bootable kernel, and compilation tools to generate more binaries). This can be done via compilation on another system capable of building binaries for the intended target (possibly by cross-compilation). See for example Linux From Scratch for instructions.

Choosing a Linux distribution

Linux distributions differ in several important aspects. Notable differences pertain to the choice of the following components:

Based on the choices made by each distribution, each distribution has its relative merits which may make it more suitable for a specific task, hardware platform or user. For instance, some distributions have sophisticated install programs that are able to create a partition or resize existing ones, automatically detect hardware and install appropriate device drivers, and provide a graphical user interface during installation to configure network settings, package selection, and user accounts which makes the process of installation fairly easy. Some distributions, notably Debian and Gentoo, include a large number of packages that can be readily installed for that particular distribution and this reduces the amount of effort required for initial configuration after installation. Some distributions include proprietary device drivers and the latest packages in an attempt to provide maximum compatibility with the newest hardware. This makes them a more suitable candidate for use on newer hardware and laptops.

Whether a particular distribution opts to include the latest versions of available packages or decides to include only a more stable but older version is another important factor. The choice of a graphical user interface, included fonts, wallpapers, etc. also lend an individual identity to each distribution which may make it more or less appealing to an individual. Some distributions provide tools for users to run applications developed for other operating systems and this can be an important factor for users who are migrating from another platform. The choice of the package management system, system configuration utility and availability of high quality technical support are other important factors.

Each distribution also has its own philosophy which influences its development. This makes the particular distribution more suitable for a certain class of users than for others. Each distro therefore has formed its own micro-community inside the wider Linux community, and this community in turn influences the philosophy of the distro. For example, a distribution that comes with a strong philosophy which is generalised beyond software is Ubuntu Linux (Read about Ubuntu (ideology). Slackware's philosophy is about having only stable components, and not caring much about graphical interfaces. On the other hand Red Hat is accused to rely more on graphics and user-friendliness to beginners, therefore diminishing its quality. Other distributions also have specific viewpoints which can be found on their websites.

Many Linux distributions now provide a LiveCD version that allows the user to try out the distribution without making changes to his system. This is a good way to evaluate a distribution and in particular, its support for the intended hardware. A list of LiveCDs is available at FrozenTech's LiveCD list.

In order to select a distribution that is most appropriate for a particular user, the user must first clearly state his intended uses of the system, the hardware on which the distribution will be installed, the extent of support required and as far as possible, the applications that will be used. The user should then visit the websites of several distributions and obtain LiveCDs to evaluate their suitability for his particular needs before making a final decision.

Comparison of Linux distributions and List of Linux distributions contain useful information to help you select a distribution. A list of popular distributions is also available at DistroWatch which attempts to provide some measure of their popularity. Linux Distribution Chooser attempts to guide a user to a suitable choice of a distribution by asking several questions and offering suggestions based on the answers. At this time however, its awareness is limited to only a few distributions.

Interdistribution issues

The Free Standards Group is an organization formed by major software and hardware vendors that aims to improve interoperability between different distributions. Among their proposed standards are the Linux Standard Base, which defines a common ABI and packaging system for Linux, and the Filesystem Hierarchy Standard which recommends a standard filenaming chart, notably the basic directory names found on the root of the tree of any Linux filesystem. Those standards, however, see limited use, even among the distributions developed by members of the organization.

See also

Notes

Template:Fnb Linux distributions may also be referred to as GNU/Linux distributions, though the latter may more often refer to the Debian system. The term "distribution" often suffices and is at least sufficient enough to distinguish free operating systems like Linux/BSD from proprietary operating systems such as Microsoft Windows or Apple Mac OS X. The term "distribution" is often informally shortened to "distro."

Template:Link FA