Linux
Linux (pronounced /ˈlɪnʌks/ LIN-uks) commonly refers to the family of free, portable, Unix-like, multi-user operating systems built around the Linux kernel. The Linux kernel is released under the GNU General Public License which permits the free distribution and modification of the Linux kernel.
Commercial, non-profit, and volunteer developers all around the world help to develop the Linux kernel. A kernel mediates the system resources used by an operating system. A Linux distribution (Ubuntu, Debian, RedHat, etc.) is composed of software packaged with a Linux kernel. Many Linux distributions rely heavily on GNU software (hence the naming structure, GNU/Linux).
The Linux kernel appears in many products including desktop computers, servers, mobile phones, routers, multimedia devices and supercomputers. Market saturation varies by product. For instance, Linux has a large presence in the server market while Linux-based desktops are generally uncommon. Linux saturation is also influenced by geographic and economic variables. Many developing countries have turned to Linux-based operating systems as an inexpensive means of establishing infrastructure.
Contents |
Before Linux
In 1983, Richard Stallman launched the GNU project with the goal of creating a Unix-like, Posix-compatible operating system. A considerable catalog of software had been written by the turn of the decade, but the operating system kernel was still rudimentary and slow to develop. The nearest GNU contemporary and competitor, Berkeley Software Distribution (BSD), offered a nearly complete operating system, but distribution was hindered by litigation over proprietary code. GNU lacked a solid kernel and development on the BSD operating system was in lockdown until litigation ended. As the 1990's opened, programmers and developers hungered for a complete, freely available operating system.
Early Development
In 1991, Linus Torvalds was developing a terminal emulator which would allow him to access UNIX-based university servers. He soon realized that he had developed an operating system kernel which he released publicly on 25 August 1991.
Initially released under its own license, Linux is currently subject to the GNU GPL. Licensing under the GNU GPL in 1992 allowed for the marriage of the Linux kernel to GNU software. This solved a primary concern for the Linux kernel as described by Torvalds: "Sadly, a kernel by itself gets you nowhere. To get a working system you need a shell, compilers, a library etc." Licensing under GPL also brought GNU and Linux developers together to create an even larger community devoted to developing a refined operating system.
GNU/Linux
Many people conflate Linux with GNU/Linux, erroneously refering to an entire operating system as "Linux". After introducing the Linux kernel into the GNU operating system, many Linux followers refered to the complete operating system simply as "Linux". Richard Stallman, founder of the GNU project, felt that this unfairly denied GNU adequate attention for its own contributions. GNU continues to encourage the use of GNU/Linux to properly reflect the gravity of GNU's contribution.
Current Development
Linus Torvalds monitors the development of the Linux kernel through the nonprofit Linux Foundation. Any developer can contribute to the kernel, but the Linux Foundation decides which contributions actually enter the kernel.
Many projects gravitated toward the Linux kernel operating in the GNU framework. For instance, KDE and GNOME found a home with the Linux kernel and provided the graphical user interface necessary for adoption by a general user base. The flexibility of the Linux kernel attracts many projects and distributions are tailored to even the most novice user.
Controversies
(requires translation)
The kernel
Basic Technology
The Linux kernel is an interface between operating system software and the hardware of a computer. The Linux kernel is written in C, though important subroutines and time-critical modules are composed in Assembly. The kernel interfaces with computer hardware by allocating processor time and resources to the programs using such hardware. Linux, while unique, draws considerable inspiration from UNIX.
The Linux kernel has spread from personal computing environments to a wide range of techonologies. Linux or Linux variants can be found on cellular phones, tablets, PDAs, music players, routers and navigation systems commonly used by city drivers. The ubiquitous x86 PC offered a steady platform for Linux developers, even novices, to produce drivers that anyone could use. Linux would never have enjoyed such growth today had computer hardware lacked a universal uniformity.
Kernel versions
The Linux Kernel Archives maintain a repository of all Linux kernels including the current version. Subsequent versions extend kernel capabilities. A numbering scheme ("A.B.C.D") differentiates each version. For instance, the latest stable kernal is "2.6.35.7". The first two numbers ("2.6") are fairly irrelevant at this point and represent (A) changes in the overall concept or structure of the kernel and (B) major revisions. Version 2.6 has been in use since 2004. The third number represents minor revisions such as adding new features or updating functionality. The fourth number denotes bug fixes or security patches necessitated by minor revisions.
Maintenance of each major revision is delegated to David Weinehall (2.0), Marc-Christian Petersen (2.2), Willy Tarreau (2.4), Adrian Bunk (2.6.16), and Greg Kroah-Hartman (2.6.27 and 2.6.32). Linus Torvalds maintains each current stable release (2.6.35, presently).
New in kernel 2.6
Kernel 2.6 introduced a number of innovations, but one significant theme of this version is its scalability.
The scheduler in kernel 2.4 was simple, but inefficient. It would iterate over every task during a scheduling event. The 2.6 scheduler would instead queue tasks and then de-queue them as they were selected to run. A later, stream-lined version of the 2.6 scheduler was introduced in 2.6.23 and is known as the Completely Fair Scheduler.
Kernel Development Process
The Linux kernel is developed under the GNU GPL, a development model which allows for anyone, anywhere to contribute to the kernel. Contributors all over the world can participate in discussion about the future of the kernel, report bugs, or offer code to be incorporated. The openness of this development model provides a means to rapid response and development. No one need seek permission to fix code in the kernel. They can submit code at any time. However, Linus Torvalds and a few select programmers oversee the Linux kernel and decide which updates and patches to include. In 2007, roughly 4300 lines of new code were added to the kernel each day, along with 1500 lines modified, and approximately 1800 deleted. There are approximately 100 dedicated maintainers involved in developing some 300 subsystems of the kernel.
Distributions
A variety of software can be packaged together with the Linux kernel in a distribution. The software included in a distribution depends on the purpose of the distribution (general use, audio/video editing, minimalism, servers, etc.)
History of Linux Distributions
The Linux development model allowed developers to respond to the specific needs of end-users and create a pre-packaged distribution composed of GNU software. Released in 1992, MCC Interim Linux, Linux Soft Landing System (SLS), and Yggdrasil Linux were the first distributions. The now famous Slackware followed in 1993 and was based on SLS.
Distributions helped to spread Linux-based operating systems by packaging software developed specifically to run with the Linux kernel. As more user experienced Linux, more needs were being applied to and answered by Linux operating systems. More and various software were developed and adapted for use with Linux.
Distributions were initially the handywork of individuals or small communities who used Linux for a very specific need. Today, however, large volunteer communities and corporations work independently or in concert to produce distributions that appeal to wide audiences.