User:A.M.~enwiki/temp/merge Linux into Linux distribution

A Linux distribution is a Unix-like computer operating system that uses the Linux (IPA pronunciation: ) kernel. A Linux distribution which includes system utilities and libraries from the GNU Project is sometimes referred to as GNU/Linux.

To provide a Unix-like environment, Linux distributions contain a set of Unix-like utilities and the libraries needed to support them. In full-featured distributions these are generally taken from the GNU operating system. Distributions optimized for size tend to use more compact alternatives like busybox and uclibc.

There are several commercially-backed distributions, such as Fedora Core (Red Hat), SUSE Linux (Novell), Ubuntu (Canonical Ltd.) and Mandriva Linux. These distributions 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, constantly revising and improving their respective distributions.

History
The history of Linux distributions is closely tied to that of GNU. Plans for GNU were made in 1983 and in September of that year they were announced publicly when Richard Stallman founded the GNU Project. GNU was to be a complete Unix-like operating system composed entirely of free software. Software development work began in January 1984. By the beginning of the 1990s, the project had produced or collected most of the necessary components of this system, including libraries, compilers, text editors, and a Unix shell. Thus the GNU mid-level portions of the operating system were almost complete. The upper level could be supplied by the X Window System, but the lower level, which consisted of a kernel, device drivers, system-level utilities and daemons, was still mostly lacking. In 1990, the GNU project began developing the GNU Hurd kernel, based on the Mach microkernel, but development proved unexpectedly difficult and proceeded slowly, and to date has only been marginally usable.



In 1991, work on the Linux kernel began by Linus Torvalds while attending the University of Helsinki. Torvalds originally created the Linux kernel as a replacement for the non-free Minix kernel. Although dependent on the Minix userspace at first, work from both Linux kernel developers and the GNU project allowed Linux to work with GNU components. Thus Linux filled the last major gap in running a complete, fully functional operating system built from free software.

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 they were in application programs, the user interface, or convenient packaging.

Early distributions included:


 * H J Lu's "Boot-root" a two disk pair with the kernel and the absolute minimal tools to get started.
 * MCC Interim Linux, which was made available to the public for download on the ftp server of University of Manchester in February, 1992;
 * TAMU, created by individuals at Texas A&M University about the same time, and
 * SLS (Softlanding Linux System).

SLS was not well-maintained, so Patrick Volkerding released a distribution based on SLS, which he called Slackware; released July 16, 1993. This is the oldest distribution still in active development.

Users were attracted to Linux distributions as alternatives to the DOS and Microsoft Windows operating systems on the PC, Mac OS on the Apple Macintosh and proprietary versions of Unix. Most early adopters were familiar with Unix from work or school. They embraced Linux for its stability, low (if any) cost, and for the availability 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 choice even for Unix or Linux experts. 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.

Linux and the GNU Project
The name "Linux distribution" derives from the use of the Linux kernel. As most if not all Linux distributions use GNU software, the Free Software Foundation views these Linux distributions as "variants" of the GNU system, and asks that such operating systems be referred to as GNU/Linux or a Linux-based GNU system. However, the media and population at large refers to this family of operating systems as Linux. While some distributors make a point of using the aggregate form, most notably Debian with the Debian GNU/Linux distribution, its use outside of the enthusiast community is limited, and Linus Torvalds has said that he finds calling the operating system in general GNU/Linux "just ridiculous". The distinction between the Linux kernel and distributions based on it plus the GNU system is a source of confusion to many newcomers, and the naming remains controversial.

Pronunciation
In 1992, Torvalds explained how he pronounces the word Linux:

'li' is pronounced with a short [ee] sound: compare prInt, mInImal etc. 'nux' is also short, non-diphtong, like in pUt. It's partly due to minix: linux was just my working name for the thing, and as I wrote it to replace minix on my system, the result is what it is... linus' minix became linux.

Torvalds has made available an audio sample which indicates his own pronunciation, in English and Swedish. Nevertheless, English speakers tend to pronounce the name as or.

Development


A 2001 study of Red Hat Linux 7.1 found that this distribution contained 30 million source lines of code. Using the Constructive Cost Model, the study estimated that this distribution required about eight thousand man-years of development time. According to the study, if all this software had been developed by conventional proprietary means, it would have cost about 1.08 billion dollars (year 2000 U.S. dollars) to develop in the United States.

The majority of the code (71%) was written in the C programming language, but many other languages were used, including C++, Lisp, assembly language, Perl, Fortran, Python and various shell scripting languages. Slightly over half of all lines of code were licensed under the GPL. The Linux kernel itself was 2.4 million lines of code, or 8% of the total.

In a later study, the same analysis was performed for Debian GNU/Linux version 2.2. This distribution contained over fifty-five million source lines of code, and the study estimated that it would have cost 1.9 billion dollars (year 2000 U.S. dollars) to develop by conventional means.

Programming on Linux distributions
Most Linux distributions support a wide array of programming languages. Core system software such as libraries and basic utilities are usually written in C. Enterprise software is often written in C++, Java, Perl, or Python. The most common collection of utilities for building both Linux applications and operating system programs is found within the GNU toolchain, which includes the GNU Compiler Collection (GCC). Amongst others, GCC provides compilers for C, C++, Java, and Fortran. The Linux kernel itself is written to be compiled with GCC.

Most distributions also include support for Perl, Python and other dynamic languages. Less common, but still well-supported, are C# via the Mono project, Scheme, and Ruby. Number of Java Virtual Machines and development kits run on Linux, including the original Sun Microsystems JVM (HotSpot), and IBM's J2SE RE, as well as many open-source projects like Kaffe. The two main widget toolkits used for contemporary GUI programming are Qt and the Gimp Toolkit, known as GTK+. Both support a wide variety of languages. There are a number of Integrated development environments available including MonoDevelop, KDevelop, Anjuta, NetBeans, and Eclipse while the traditional editors Emacs and Vim remain popular.

As well as these free and open source options, there are proprietary compilers and tools available from a range of companies such as the Intel C Compiler, PathScale, Micro Focus COBOL, Franz Inc, and the Portland Group.

Components
A typical desktop Linux distribution comprises a Linux kernel, GNU tools and libraries, additional software, documentation, a window system, window manager, and a desktop environment. 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.

Many provide an installation system akin to that provided with other modern operating systems. Self-hosting distributions like Gentoo Linux and Linux From Scratch provide the source code of all software and include binaries only of a basic kernel, compilation tools, and an installer; the installer compiles all the software for the specific microarchitecture of the user's machine.

Package management
Distributions are normally segmented into packages. Each package contains a specific application or service. Examples of packages include a library for handling the PNG image format, a collection of fonts, or a web browser.

The package is typically provided as compiled code, with installation and removal of packages handled by a package management system (PMS) rather than a simple file archiver. Each package intended for such a PMS contains meta-information such as a package description, version, and "dependencies". 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.

Although Linux distributions typically contain much more software than proprietary operating systems, it is normal for local administrators to install software not included in 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 will be required to take additional measures to ensure the entire system is kept up to date. 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.

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, avoiding a distribution 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 (possibly by cross-compilation). See for example Linux From Scratch.

Desktop


Desktop Linux distributions typically feature a user interface comparable with that of Microsoft Windows and Mac OS X, though migrating users usually have to switch to alternative application software, and there may be a lack of commercial quality software in certain application domains, such as computer gaming, desktop publishing, and professional audio. However, there exist high-quality replacements for general-purpose desktop software, which includes applications such as spreadsheets, word processors, email clients, and web browsers. Additionally, a growing number of proprietary software vendors are supporting Linux.

The high level of access granted to the internals of Linux distributions has led to Linux distribution users traditionally tending to be more technically-inclined than users of Microsoft Windows and Mac OS. The fact that Linux distributions originated from the Unix operating system mean that in addition to graphical configuration tools and control panels available for many system settings and services, it is often either easier or necessary to use plain-text configuration files to configure the OS. While user access to these files and utilities is controlled by the system administrator, and in theory the user does not need to worry about them, in practice the administrator and user are often the same person on a desktop system.

Linux distributions are also used in some corporate environments as desktop platforms for its employees, with commercially available solutions including Red Hat Enterprise Linux, SUSE Linux Enterprise Desktop, and Linspire. Several government organizations have started the switch to using Linux.

In technical disciplines at universities and research centres worldwide, a Linux distribution is often the platform of choice. To some extent, technical competence of computer science and software engineering academics is a contributor, as is stability, maintainability, and upgradability. IBM ran an advertising campaign entitled "Linux is Education" featuring a young boy who was supposed to be "Linux". The One Laptop Per Child project, a campaign to distribute laptop computers to millions of children in the developing world, also uses a Linux distribution.

Comparison of Windows and Linux distributions
Due to the prevalence of Windows from the mid-1990s onwards, a comparison between Windows and Linux distributions became a common topic of conversation in the computer industry. Linux distributions and other free software projects have been frequently criticized for not going far enough to ensure ease of use. However, the Berlin-based user experience organization Relevantive concluded in 2003 that the usability of Linux distributions for a set of desktop-related tasks was "nearly equal to Windows XP." Since then, there have been numerous independent studies and articles which indicate that a modern Linux desktop using either GNOME or KDE is on par with Microsoft Windows, even in a business setting.

Some specific proprietary software products are not available in any form for Linux. Compatibility layers such as Wine (and its commercial derivatives CrossOver and Cedega) or NdisWrapper allow some Microsoft Windows applications and drivers to be used on Linux without requiring the vendor to adapt them. This allows users to more easily migrate from Windows to a Linux distribution since they can still run many of their Windows applications with little additional effort. In a similar fashion, Cygwin and Microsoft Windows Services for UNIX make it possible for users of Windows to run some GNU and other software normally only available on Linux distributions and other Unix-like systems.

Gaming
Although gaming under Linux distributions is traditionally considered inferior to gaming under Windows or Mac OS X, due to the reluctance of game development companies to support an operating system with relatively small desktop market share, there are still a large number of games available, such as Nethack, The Ur-Quan Masters, Battle for Wesnoth Quake, and Unreal Tournament 2004. Some games can also be run by emulators and virtual machines, such as ZSNES, Frotz, and DOSBox.

Library support for Linux gaming is provided by OpenGL and Simple DirectMedia Layer, a cross-platform multimedia library, or other sets of libraries. Drivers for graphics processing units are available from the Direct Rendering Infrastructure project, NVidia, and ATI, allowing most of their features to be used under Linux. Linux also runs on several game consoles, including the Xbox, Playstation, and Gamecube. This has allowed game developers without an expensive proprietary game development kit to target console hardware.

Servers, supercomputers and embedded devices
Historically, Linux distributions have mainly been used as server operating systems, and has risen to prominence in that area; Netcraft reported in September 2006 that eight of the ten most reliable internet hosting companies run Linux on their web servers. This is due to its relative stability and long uptimes, and the fact that desktop software with a graphical user interface is often unneeded. Enterprise and non-enterprise Linux distributions may be found running on servers. Linux is the cornerstone of the LAMP server-software combination (Linux, Apache, MySQL, Perl/PHP/Python) which has achieved popularity among developers, and which is one of the more common platforms for website hosting.

Linux is commonly used on supercomputers. As of January 5 2007, out of the top 500 systems, 376 (75.2%) run Linux.

Due to its low cost and its high configurability, an embedded Linux distribution is often used in embedded systems such as television set-top boxes, mobile phones, and handheld devices. Linux distributions have become major competitors to the proprietary Symbian OS found in many mobile phones, and it is an alternative to the dominant Windows CE and Palm OS operating systems on handheld devices. The popular TiVo digital video recorder uses a customized Linux distribution. Several network firewall and router standalone products, including several from Linksys, use Linux internally, using its advanced firewalling and routing capabilities.

Market share and uptake
Many quantitative studies of open source software focus on topics including market share and reliability, with many studies specifically examining Linux distributions. The Linux distribution market is rapidly growing and the revenue of servers, desktops, and packaged software running Linux distributions is expected to exceed $35.7 billion by 2008. The actual installed user base may be higher than indicated by this figure, as most Linux distributions and applications are freely available and redistributable. According to the market research company IDC, 25% of servers and 2.8% of desktop computers ran Linux distributions as of 2004. Proponents and analysts attribute the success of Linux distribution to their security, reliability, low cost, and freedom from vendor lock-in. The frictional cost of switching and lack of support for certain hardware and application programs designed for Microsoft Windows have been two factors that have inhibited adoption. However, as of early 2007, significant progress in hardware compatibility has been made, and it is becoming increasingly common for hardware to work "out of the box" with many Linux distributions.

Support
Technical support is provided by commercial suppliers and by other Linux distribution users, usually in online forums, IRC, newsgroups, and mailing lists. Linux User Groups have traditionally been organized to provide support for Linux distributions in specific cities and regions. The business model of commercial suppliers is generally dependent on charging for support, especially for business users. A number of companies offer a specialized business version of their distribution, which adds proprietary support packages and tools to administer higher numbers of installations or to simplify administrative tasks.

Choosing a Linux distribution
The diversity of Linux distributions is due to technical, organizational, and philosophical variation amongst users. The permissive licensing of most GNU/Linux software means that any user with sufficient knowledge and interest can customize an existing distribution or design her or his own. Technical variations include support for different hardware devices and systems or software package configurations. Other differences are motivated either by technical decisions, philosophical or even historical reasons. Some distributions specialise in use on desktops, servers or routers. Other criteria include security (and how often security updates are available), ease of package management and the number of binary packages available.

There are tools available to help making the decision, such as several different versions of the Linux Distribution Chooser  and the universal package search tool, whohas. There are some easy ways to try out several Linux distributions before deciding on one. Multi Distro is a Live CD that contains nine space-saving distributions. Tools are available to make such CDs and DVDs, among them Nautopia. In fact, it is not necessary to burn a Live CD in the first place. Virtual machines such as qemu and VMWare permit booting of LiveCD image files. In the case of VMWare, this requires a specific virtual machine to be downloaded. In qemu, the functionality is already included.

Popularity
Each distro has its own merits and demerits, making selection of a distro a matter of matching needs and attitudes, with distro philosophy and software contents. Nonetheless, DistroWatch provides a summary of the top ten distros by popularity, and another list of 351 distros ranked by page hits over four time periods.

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.

Installation
The most common method of installing a Linux distribution on a personal computer is by booting from a CD-ROM that contains the installation program and installable software. Such a CD can be burned from a downloaded ISO image, purchased alone for a low price, obtained as part of a box set, or in a few cases shipped for free by request. A box set may also include manuals and additional proprietary software. Mini CD images allow Linux distributions to be installed from a disk with a small form factor. As with servers, personal computers that come with Linux distributions already installed are available from vendors including Hewlett-Packard and Dell, although generally only for their business desktop line. Alternatives to traditional desktop installation include thin client installation and running directly from a Live CD. In a thin client installation, the operating system is loaded and run from a centralised machine over a network connection. In a Live CD setup, the computer boots the entire operating system from CD without first installing it on the computer's hard disk. On embedded devices, the Linux distribution is typically held in the device's firmware and may or may not be consumer-accessible.

New users tend to begin by partitioning a hard-drive in order to keep an existing operating system. The Linux distribution can then be installed on the new partition without affecting previously saved data.

Early Linux distributions were installed using sets of floppies but this has been abandoned by all major distributions. Nowadays most distributions offer CD and DVD sets with the vital packages on the first disc and less important packages on later ones. They usually also allow installation over a network after booting from either a set of floppies or a CD with only a small amount of data on it.

Some distributions let the user install Linux on top of their current system, such as WinLinux. Linux is installed to the Windows hard-disk partition, and can be started from inside Windows itself. Similar approaches include coLinux.