Linux is a Unix-like computer operating system assembled under the model of free and opensource software development and distribution. The defining component of Linux is the Linuxkernel, an operating system kernel first released 5 October 1991 by Linus Torvalds. Linux wasoriginally developed as a free operating system for Intel x86-based personal computers. It hassince been ported to more computer hardware platforms than any other operating system. It isa leading operating system on servers and other big iron systems such as mainframe computersand supercomputers: more than 90% of todays 500 fastest supercomputers run some variantof Linux, including the 10 fastest. Linux also runs on embedded systems (devices where theoperating system is typically built into the firmware and highly tailored to the system) such asmobile phones, tablet computers, network routers, televisions andvideo game consoles; the Android system in wide use on mobiledevices is built on the Linux kernel.The development of Linux is one of the most prominent examplesof free and open source software collaboration: the underlyingsource code may be used, modified, and distributed—commerciallyor non-commercially—by anyone under licenses such as the GNUGeneral Public License. Typically Linux is packaged in a formatknown as a Linux distribution for desktop and server use. Somepopular mainstream Linux distributions include Debian (and itsderivatives such as Ubuntu), Fedora and openSUSE. Linux distributions include the Linux kernel,supporting utilities and libraries and usually a large amount of application software to fulfill thedistributions intended use.A distribution oriented toward desktop use will typically include the X Window System and anaccompanying desktop environment such as GNOME or KDE Plasma. Some such distributionsmay include a less resource intensive desktop such as LXDE or Xfce for use on older or lesspowerful computers. A distribution intended to run as a server may omit all graphicalenvironments from the standard install and instead include other software such as the ApacheHTTP Server and an SSH server such as OpenSSH. Because Linux is freely redistributable, anyonemay create a distribution for any intended use. Applications commonly used with desktop Linux systems include the Mozilla Firefox webbrowser, the LibreOffice office application suite, and the GIMP image editor.
libraries originated in the GNU Project, initiated in 1983 by Richard Stallman, the Free SoftwareFoundation prefers the name GNU/Linux.UnixThe Unix operating system was conceived and implemented in 1969 at AT&Ts BellLaboratories in the United States by Ken Thompson, Dennis Ritchie, DouglasMcIlroy, and Joe Ossanna. It was first released in 1971 and was initially entirelywritten in assembly language, a common practice at thetime. Later, in a key pioneering approach in 1973, Unixwas re-written in the programming language C by DennisRitchie (with exceptions to the kernel and I/O). Theavailability of an operating system written in a high-levellanguage allowed easier portability to differentcomputer platforms. With a legal glitch forcing AT&T tolicense the operating systems source code to anyonewho asked,Unix quickly grew and became widelyadopted by academic institutions and businesses. In1984, AT&T divested itself of Bell Labs. Free of the legal
glitch requiring free licensing, Bell Labs began selling Unix as a proprietary product.GNUThe 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.Later, in 1985, Stallman started the Free Software Foundation and wrote the GNUGeneral Public License (GNU GPL) in 1989. By the early 1990s, many of theprograms required in an operating system (such as libraries, compilers, text editors,a Unix shell, and a windowing system) were completed, although low-level elementssuch as device drivers, daemons, and the kernel were stalled and incomplete. LinusTorvalds has said that if the GNU kernel had been available at the time (1991), hewould not have decided to write his own.BSDAlthough not released until 1992 due to legal complications, development of386BSD, from which NetBSD and FreeBSD descended, predated that of Linux. LinusTorvalds has said that if 386BSD had been available at the time, he probably wouldnot have created Linux.MINIXMINIX is an inexpensive minimal Unix-like operating system, designed for education incomputer science, written by Andrew S. Tanenbaum. Starting with version 3 in 2005,MINIX has become free and redesigned for "serious" use.In 1991 while attending the University ofHelsinki, Torvalds became curious aboutoperating systemsand frustrated by thelicensing of MINIX, which limited it toeducational use only. He began to work on hisown operating system which eventuallybecame the Linux kernel.Torvalds began the development of the Linuxkernel on MINIX, and applications written forMINIX were also used on Linux. Later Linuxmatured and further Linux development tookplace on Linux systems. GNU applications alsoreplaced all MINIX components, because it
was advantageous to use the freely available code from the GNU project with the fledglingoperating system. (Code licensed under the GNU GPL can be reused in other projects aslong as they also are released under the same or a compatible license.) Torvalds initiated aswitch from his original license, which prohibited commercial redistribution, to the GNUGPL. Developers worked to integrate GNU components with Linux to make a fullyfunctional and free operating system.COMMERCIAL AND POPULAR UPTAKEToday, Linux systems are used in every domain, from embedded systems tosupercomputers, and have secured a place in server installations often using thepopular LAMP application stack. Use of Linux distributions in home and enterprisedesktops has been growing. They have also gained popularity with various local andnational governments. The federal government of Brazil is well known for itssupport for Linux. News of the Russian military creating its own Linux distributionhas also surfaced, and has come to fruition as the G.H.ost Project. The Indian state ofKerala has gone to the extent of mandating that all state high schools run Linux ontheir computers. China uses Linux exclusively as the operating system for itsLoongson processor family to achieve technology independence.] In Spain someregions have developed their own Linux distributions, which are widely used ineducation and official institutions, like gnuLinEx in Extremadura and Guadalinex inAndalusia. Portugal is also using its own Linux distribution CaixaMágica, used in theMagalhães netbook and the e-escola government program.] France and Germanyhave also taken steps toward the adoption of Linux.Linux distributions have also become popular in the netbook market, with manydevices such as the ASUS Eee PC and Acer Aspire One shipping with customizedLinux distributions installed.CURRENT DEVELOPMENTTorvalds continues to direct the development of the kernel. Stallman heads the FreeSoftware Foundation, which in turn supports the GNU components. Finally, individualsand corporations develop third-party non-GNU components. These third-partycomponents comprise a vast body of work and may include both kernel modules anduser applications and libraries. Linux vendors and communities combine and distributethe kernel, GNU components, and non-GNU components, with additional packagemanagement software in the form of Linux distributions.
A Linux-based system is a modular Unix-like operating system. It derives much of itsbasic design from principles established in Unix during the 1970s and 1980s. Such asystem uses a monolithic kernel, the Linux kernel, which handles process control,networking, and peripheral and file system access. Device drivers are either integrateddirectly with the kernel or added as modules loaded while the system is running.Separate projects that interface with the kernel provide much of the systems 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 manyof the common Unix tools which carry out many basic operating system tasks. Thegraphical user interface (or GUI) used by most Linux systems is built on top of animplementation of the X Window System.
Users operate a Linux-based system through a command line interface (CLI), agraphical user interface (GUI), or through controls attached to the associated hardware,which is common for embedded systems. For desktop systems, the default mode isusually a graphical user interface, by which the CLI is available through terminalemulator 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 forautomation of repetitive or delayed tasks, and provides very simple inter-processcommunication. A graphical terminal emulator program is often used to access the CLIfrom a Linux desktop. A Linux system typically implements a CLI by a shell, which isalso the traditional way of interacting with a Unix system. A Linux distributionspecialized for servers may use the CLI as its only interface.On desktop systems, the most popular user interfaces are the extensive desktopenvironmentsKDE Plasma Desktop, GNOME, and Xfce, though a variety of additionaluser interfaces exist. Most popular user interfaces are based on the X Window System,often simply called "X". It provides network transparency and permits a graphicalapplication running on one system to be displayed on another where a user mayinteract with the application.Other GUIs may be classified as simple X window managers, such as FVWM,Enlightenment, and Window Maker, which provide a minimalist functionality withrespect to the desktop environments. A window manager provides a means to controlthe placement and appearance of individual application windows, and interacts withthe X Window System. The desktop environments include window managers as part oftheir standard installations (Mutter for GNOME, KWin for KDE, Xfwm for Xfce as ofJanuary 2012) although users may choose to use a different window manager ifpreferred.
The primary difference between Linux and many other popular contemporaryoperating systems is that the Linux kernel and other components are free and opensource software. Linux is not the only such operating system, although it is by far themost widely used. Some free and open source software licenses are based on theprinciple of copyleft, a kind of reciprocity: any work derived from a copyleft piece ofsoftware must also be copyleft itself. The most common free software license, the GNUGPL, is a form of copyleft, and is used for the Linux kernel and many of the componentsfrom the GNU project.Linux based distributions are intended by developers for interoperability with otheroperating systems and established computing standards. Linux systems adhere toPOSIX, SUS, ISO, and ANSI standards where possible, although to date only one Linuxdistribution has been POSIX.1 certified, Linux-FT.
Free software projects, although developed in a collaborative fashion, are oftenproduced independently of each other. The fact that the software licenses explicitlypermit redistribution, however, provides a basis for larger scale projects that collect thesoftware produced by stand-alone projects and make it available all at once in the formof a Linux distribution.A Linux distribution, commonly called a "distro", is a project that manages a remotecollection of system software and application software packages available for downloadand installation through a network connection. This allows users to adapt the operatingsystem to their specific needs. Distributions are maintained by individuals, loose-knitteams, volunteer organizations, and commercial entities. A distribution is responsiblefor the default configuration of the installed Linux kernel, general system security, andmore generally integration of the different software packages into a coherent whole.Distributions typically use a package manager such as dpkg, Synaptic, YAST, or Portageto install, remove and update all of a systems software from one central location.
A distribution is largely driven by its developer and user communities. Some vendorsdevelop and fund their distributions on a volunteer basis, Debian being a well-knownexample. Others maintain a community version of their commercial distributions, asRed Hat does with Fedora and Novell does with openSUSE.In many cities and regions, local associations known as Linux User Groups (LUGs) seekto promote their preferred distribution and by extension free software. They holdmeetings and provide free demonstrations, training, technical support, and operatingsystem installation to new users. Many Internet communities also provide support toLinux users and developers. Most distributions and free software / open sourceprojects have IRCchatrooms or newsgroups. Online forums are another means forsupport, with notable examples being LinuxQuestions.org and the various distributionspecific support and community forums, such as ones for Ubuntu, Fedora, and Gentoo.Linux distributions host mailing lists; commonly there will be a specific topic such asusage or development for a given list.There are several technology websites with a Linux focus. Print magazines on Linuxoften include cover disks including software or even complete Linux distributions.Although Linux distributions are generally available without charge, several largecorporations sell, support, and contribute to the development of the components of thesystem and of free software. An analysis of the Linux kernel showed 75 percent of thecode from December 2008 to January 2010 was developed by programmers workingfor corporations, leaving about 18 percent to volunteers and 7% unclassified. Some ofthe major corporations that contribute include Dell, IBM, HP, Oracle, Sun Microsystems(now part of Oracle), Novell, and Nokia. A number of corporations, notably Red Hat andNovell, have built a significant business around Linux distributions.The free software licenses, on which the various software packages of a distributionbuilt on the Linux kernel are based, explicitly accommodate and encouragecommercialization; the relationship between a Linux distribution as a whole andindividual vendors may be seen as symbiotic. One common business model ofcommercial suppliers is charging for support, especially for business users. A number ofcompanies also offer a specialized business version of their distribution, which addsproprietary support packages and tools to administer higher numbers of installationsor to simplify administrative tasks.
Another business model is to give away the software in order to sell hardware. Thisused to be the norm in the computer industry, with operating systems such as CP/M,Apple DOS and versions of Mac OS prior to 7.5 freely copyable (but not modifiable). Ascomputer hardware standardized throughout the 1980s, it became more difficult forhardware manufacturers to profit from this tactic, as the OS would run on anymanufacturers computer that shared the same architecture.Most Linux distributions support dozens of programming languages. The originaldevelopment tools used for building both Linux applications and operating systemprograms are found within the GNU toolchain, which includes the GNU CompilerCollection (GCC) and the GNU build system. Amongst others, GCC provides compilersfor Ada, C, C++, Java, and Fortran. First released in 2003, the Low Level Virtual Machineproject provides an alternative open-source compiler for many languages. Proprietarycompilers for Linux include the Intel C++ Compiler, Sun Studio, and IBM XL C/C++Compiler. BASIC in the form of Visual Basic is supported in such forms as Gambas,FreeBASIC, and XBasic.Most distributions also include support for PHP, Perl, Ruby, Python and other dynamiclanguages. While not as common, Linux also supports C# (via Mono), Vala, and Scheme.A number of Java Virtual Machines and development kits run on Linux, including theoriginal Sun Microsystems JVM (HotSpot), and IBMs J2SE RE, as well as many open-source projects like Kaffe and JikesRVM.GNOME and KDE are popular desktop environments and provide a framework fordeveloping applications. These projects are based on the GTK+ and Qtwidget toolkits,respectively, which can also be used independently of the larger framework. Bothsupport a wide variety of languages. There are a number of Integrated developmentenvironments available including Anjuta, Code::Blocks, CodeLite, Eclipse, Geany,ActiveState Komodo, KDevelop, Lazarus, MonoDevelop, NetBeans, Qt Creator andOmnis Studio, while the long-established editors Vim and Emacs remain popular.
As well as those designed for general purpose use on desktops and servers,distributions may be specialized for different purposes including: computerarchitecture support, embedded systems, stability, security, localization to a specificregion or language, targeting of specific user groups, support for real-time applications,or commitment to a given desktop environment. Furthermore, some distributionsdeliberately include only free software. Currently, over three hundred distributions areactively developed, with about a dozen distributions being most popular for general-purpose use.Linux is a widely ported operating system kernel. The Linux kernel runs on a highlydiverse range of computer architectures: in the hand-held ARM-based iPAQ and themainframeIBMSystem z9, System z10; in devices ranging from mobile phones tosupercomputers. Specialized distributions exist for less mainstream architectures. TheELKS kernel fork can run on Intel 8086 or Intel 8028616-bit microprocessors, while theµClinux kernel fork may run on systems without a memory management unit. Thekernel also runs on architectures that were only ever intended to use a manufacturer-created operating system, such as Macintosh computers (with both PowerPC and Intelprocessors), PDAs, video game consoles, portable music players, and mobile phones.There are several industry associations and hardware conferences devoted tomaintaining and improving support for diverse hardware under Linux, such asFreedomHEC.The popularity of Linux on standard desktop computers and laptops has beenincreasing over the years. Currently most distributions include a graphical userenvironment, with the two most popular environments being GNOME (which can utilizeadditional shells such as the default GNOME Shell and UbuntuUnity), and the KDEPlasma Desktop.
The performance of Linux on the desktop has been a controversial topic; for example in2007 Con Kolivas accused the Linux community of favoring performance on servers. Hequit Linux kernel development because he was frustrated with this lack of focus on thedesktop, and then gave a "tell all" interview on the topic. Since then a significantamount of development has been undertaken in an effort to improve the desktopexperience. Projects such as Upstart and systemd aim for a faster boot time.Many popular applications are available for a wide variety of operating systems. Forexample Mozilla Firefox, OpenOffice.org/LibreOffice and Blender have downloadableversions for all major operating systems. Furthermore, some applications were initiallydeveloped for Linux, such as Pidgin, and GIMP, and were ported to other operatingsystems including Windows and Mac OS X due to their popularity. In addition, agrowing number of proprietary desktop applications are also supported on Linux; seeList of proprietary software for Linux. In the field of animation and visual effects, mosthigh end software, such as Autodesk Maya, Softimage XSI and Apple Shake, is availablefor Linux, Windows and/or Mac OS X. There are also several companies that haveported their own or other companies games to Linux.Many types of applications available for Microsoft Windows and Mac OS X are alsoavailable for Linux. Commonly, either a free software application will exist which doesthe functions of an application found on another operating system, or that applicationwill have a version that works on Linux, such as with Skype and some videogames.Furthermore, the Wine project provides a Windows compatibility layer to rununmodified Windows applications on Linux. CrossOver is a proprietary solution basedon the open source Wine project that supports running Windows versions of MicrosoftOffice, Intuit applications such as Quicken and QuickBooks, Adobe Photoshop versionsthrough CS2, and many popular games such as World of Warcraft and Team Fortress 2.In other cases, where there is no Linux port of some software in areas such as desktoppublishing and professional audio, there is equivalent software available on Linux.The collaborative nature of free software development allows distributed teams toperform language localization of some Linux distributions for use in locales wherelocalizing proprietary systems would not be cost-effective. For example the Sinhaleselanguage version of the Knoppix distribution was available significantly beforeMicrosoft Windows XP was translated to Sinhalese.In this case the Lanka Linux UserGroup played a major part in developing the localized system by combining theknowledge of university professors, linguists, and local developers.Installing, updating and removing software in Linux is typically done through the use ofpackage managers such as the Synaptic Package Manager, PackageKit, and YumExtender. While most major Linux distributions have extensive repositories, oftencontaining tens of thousands of packages, not all the software that can run on Linux isavailable from the official repositories. Alternatively, users can install packages fromunofficial repositories, download pre-compiled packages directly from websites, or
compile the source code by themselves. All these methods come with different degreesof difficulty; compiling the source code is in general considered a challenging processfor new Linux users, but its hardly needed in modern distributions and is not a methodspecific to Linux.Linux distributions have long been used as server operating systems, and have risen toprominence in that area; Netcraft reported in September 2006 that eight of the ten mostreliable internet hosting companies ran Linux distributions on their web servers. SinceJune 2008, Linux distributions represented five of the top ten, FreeBSD three of ten, andMicrosoft two of ten; since February 2010, Linux distributions represented six of the topten, FreeBSD two of ten, and Microsoft one of ten.
Linux distributions are the cornerstone of the LAMP server-software combination (Linux, Apache, MySQL, Perl/PHP/Python)which has achieved popularity among developers, and which is oneof the more common platforms for website hosting. Linuxdistributions have become increasingly popular on mainframes inthe last decade partly due to pricing and the open-source model. InDecember 2009, computer giant IBM reported that it wouldpredominantly market and sell mainframe-based Enterprise LinuxServer.Linux distributions are also commonly used as operating systemsfor supercomputers: since November 2010, out of the top 500systems, 459 (91.8%) run a Linux distribution. Linux was alsoselected as the operating system for the worlds most powerfulsupercomputer, IBMs Sequoia which was scheduled to becomeoperational in 2011.Due to its low cost and ease of customization, Linux is often used in embedded systems.Android—based on a modified version of the Linux kernel—has become a majorcompetitor of Nokias older Symbian OS, found in many smartphones. During the thirdquarter of 2010, 25.5% of smartphones sold worldwide used Android (with all Linuxvariants forming 27.6% of the total during that time). Cell phones and PDAs running Linuxon open-source platforms became more common from 2007; examples include the NokiaN810, OpenmokosNeo1973, and the Motorola ROKR E8. Continuing the trend, Palm (lateracquired by HP) produced a new Linux-derived operating system, webOS, which is builtinto its new line of Palm Pre smartphones. The popular TiVo digital video recorder alsouses a customized Linux, as do several network firewalls and routers from such makers asCisco/Linksys. The Korg OASYS, the Korg KRONOS, the YamahaYamaha Motif XS/Motif XFmusic workstations, Yamaha S90XS/S70XS, Yamaha MOX6/MOX8 synthesizers, YamahaMotif-Rack XS tone generator module, and Roland RD-700GX digital piano also run Linux.Linux is also used in stage lighting control systems, such as the WholeHogIII console.