Linux
Linux
This article is about operating systems that use the Linux kernel. For the kernel itself, see Linux kernel.
For other uses, see Linux (disambiguation).
Linux
per
OS family Unix-like
release
release
ge(s)
Availableprogra Many
mming
languages(s)
platforms CRIS, FR-V, H8/300, Itanium, M32R, m68
k,Microblaze, MIPS, MN103, PA-RISC, PowerP
C,s390, S+core, SuperH, SPARC, TILE64, x86,X
tensa
Kernel type Monolithic
interface interface
The development of Linux is one of the most prominent examples of free and open source
software collaboration; typically all the underlyingsource code can be used, freely modified, and
redistributed, both commercially and non-commercially, by anyone under licenses such as theGNU
General Public License. Typically Linux is packaged in a format known as a Linux distribution for desktop
and server use. Some popular mainstream Linux distributions include Debian (and its derivatives such
as Ubuntu), Fedora and openSUSE. Linux distributions include the Linux kernel and
supporting utilities and libraries to fulfill the distribution's intended use.
A distribution oriented toward desktop use may include the X Window System, the GNOME and KDE
Plasma desktop environments. Other distributions may include a less resource intensive desktop such
as LXDE or Xfce for use on older or less-powerful computers. A distribution intended to run as a server
may omit any graphical environment from the standard install and instead include other software such as
theApache HTTP Server and a SSH server like OpenSSH. Because Linux is freely redistributable, it is
possible for anyone to create a distribution for any intended use. Commonly used applications with
desktop Linux systems include the Mozilla Firefox web browser, the OpenOffice.orgoffice application suite
and the GIMP image editor.
The name "Linux" comes from the Linux kernel, originally written in 1991 by Linus Torvalds. The main
supporting user space system tools and libraries from the GNU Project (announced in 1983 by Richard
Stallman) are the basis for the Free Software Foundation's preferred nameGNU/Linux.[13][14]
Contents
1 History
o 1.1 Unix
o 1.2 GNU
o 1.3 BSD
o 1.4 MINIX
uptake
o 1.6 Current development
2 Design
o 2.1 User interface
3 Development
o 3.1 Community
o 3.2 Programming on Linux
4 Uses
o 4.1 Desktop
supercomputers
o 4.3 Embedded devices
o 5.1 GNU/Linux
6 See also
7 References
8 External links
[edit]History
[edit]Unix
The Unix operating system was conceived and implemented in 1969 at AT&T's Bell Laboratories in
the United States by Ken Thompson,Dennis Ritchie, Douglas McIlroy, and Joe Ossanna. It was first
released in 1971 and was initially entirely written in assembly language, a common practice at the time.
Later, in a key pioneering approach in 1973, Unix was re-written in the programming
language C by Dennis Ritchie(with exceptions to the kernel and I/O). The availability of an operating
system written in a high-level language allowed easier portability to different computer platforms. With a
legal glitch forcing AT&T to license the operating system's source code,[clarification needed] Unix quickly grew
and became widely adopted by academic institutions and businesses.
The GNU Project, started in 1983 by Richard Stallman, had the goal of creating a "complete Unix-
compatible software system" composed entirely of free software. Work began in 1984.[15] Later, in 1985,
Stallman started the Free Software Foundation and wrote the GNU General Public License (GNU GPL) in
1989. By the early 1990s, many of the programs required in an operating system (such as
libraries, compilers, text editors, a Unix shell, and a windowing system) were completed, although low-
level elements such as device drivers, daemons, and the kernel were stalled and incomplete.[16] Linus
Torvalds has said that if the GNU kernel had been available at the time (1991), he would not have
decided to write his own.[17]
[edit]BSD
Although not released until 1992 due to legal complications, development of 386BSD, from
which NetBSD and FreeBSD descended, predated that of Linux. Linus Torvalds has said that if 386BSD
had been available at the time, he probably would not have created Linux.[18]
[edit]MINIX
In 1991 while attending the University of Helsinki, Torvalds, curious about the operating systems [19] and
frustrated by the licensing of MINIX limiting it to educational use only (which prevented any commercial
use), began to work on his own operating system which eventually became theLinux kernel.
Torvalds began the development of the Linux kernel on MINIX, and applications written for MINIX were
also used on Linux. Later Linux matured and it became possible for Linux to be developed under itself.
[20]
Also GNU applications replaced all MINIX ones, because with code from the GNU system freely
available, it was advantageous if this could be used with the fledgling operating system. Code licensed
under the GNU GPL can be used in other projects, so long as they also are released under the same or a
compatible license. In order to make the Linux available for commercial use, Torvalds initiated a switch
from his original license (which prohibited commercial redistribution) to the GNU GPL.[21] Developers
worked to integrate GNU components with Linux to make a fully functional and free operating system.[16]
Linux distributions have also become popular in the netbook market, with many devices such as
the ASUS Eee PC and Acer Aspire One shipping with customized Linux distributions installed.[41]
[edit]Current development
Torvalds continues to direct the development of the kernel. Stallman heads the Free Software
Foundation, which in turn supports the GNU components. Finally, individuals and corporations develop
third-party non-GNU components. These third-party components comprise a vast body of work and may
include both kernel modules and user applications and libraries. Linux vendors and communities combine
and distribute the kernel, GNU components, and non-GNU components, with additional package
management software in the form of Linux distributions.
[edit]Design
A Linux-based system is a modular Unix-like operating system. It derives much of its basic design from
principles established in Unix during the 1970s and 1980s. Such a system uses a monolithic kernel,
the Linux kernel, which handles process control, networking, and peripheral and file
system access. Device drivers are either integrated directly with the kernel or added as modules loaded
while the system is running.
Separate projects that interface with the kernel provide much of the system's higher-level functionality.
The GNU userland is an important part of most Linux-based systems, providing the most common
implementation of the C library, a popular shell, and many of the common Unix tools which carry out
many basic operating system tasks. The graphical user interface (or GUI) used by most Linux systems is
built on top of an implementation of the X Window System.
[edit]User interface
See also: User interface
Users operate a Linux-based system through a command line interface (CLI), a graphical user
interface (GUI), or through controls attached to the associated hardware, which is common for embedded
systems. For desktop systems, the default mode is usually a graphical user interface, by which the CLI is
available through terminal emulator windows or on a separate virtual console. Most low-level Linux
components, including the GNU userland, use the CLI exclusively. The CLI is particularly suited for
automation of repetitive or delayed tasks, and provides very simple inter-process communication. A
graphical terminal emulator program is often used to access the CLI from a Linux desktop. A Linux
system typically implements a CLI by a shell, which is also the traditional way of interacting with a Unix
system. A Linux distribution specialized for servers may use the CLI as its only interface.
On desktop systems, the most popular user interfaces are the extensive desktop environments KDE
Plasma Desktop, GNOME, and Xfce,[42] though a variety of additional user interfaces exist. Most popular
user interfaces are based on the X Window System, often simply called "X". It provides network
transparency and permits a graphical application running on one system to be displayed on another
where a user may interact with the application.[43]
[edit]Development
A summarized history of Unix-likeoperating systems showing Linux's origins. Of note, Linux shares similar architectural
designs and concepts (as part of the POSIXstandard) but does not share non-free source code with the
original Unix or MINIX.
The primary difference between Linux and many other popular contemporary operating systems is that
the Linux kernel and other components are free andopen source software. Linux is not the only such
operating system, although it is by far the most widely used.[44] Some free and open source software
licenses are based on the principle of copyleft, a kind of reciprocity: any work derived from
a copyleft piece of software must also be copyleft itself. The most common free software license,
the GNU GPL, is a form of copyleft, and is used for the Linux kernel and many of the components from
the GNU project.
Linux based distributions are intended by developers for interoperability with other operating systems and
established computing standards. Linux systems adhere to POSIX,[45] SUS,[46] ISO, and ANSI standards
where possible, although to date only one Linux distribution has been POSIX.1 certified, Linux-FT.[47]
Free software projects, although developed in a collaborative fashion, are often produced independently
of each other. The fact that the software licenses explicitly permit redistribution, however, provides a basis
for larger scale projects that collect the software produced by stand-alone projects and make it available
all at once in the form of a Linux distribution.
A Linux distribution, commonly called a "distro", is a project that manages a remote collection of system
software and application software packages available for download and installation through a network
connection. This allows the user to adapt the operating system to his/her specific needs. Distributions are
maintained by individuals, loose-knit teams, volunteer organizations, and commercial entities. A
distribution is responsible for the default configuration of the installed Linux kernel, general system
security, and more generally integration of the different software packages into a coherent whole.
Distributions typically use a package manager such as dpkg, Synaptic, YAST, or Portage to install,
remove and update all of a system's software from one central location.