Linux
From Support Wiki
|
Linux pronunciation: is a Unix-like computer operating system family that uses the Linux kernel. A Linux system which includes system utilities and libraries from the GNU Project is sometimes referred to as GNU/Linux.
Most development from 1984 to 1991 was done by the GNU project. After 1991, the Linux kernel developers began working on it as well as other enthusiasts. From the late-90s onward Linux also gained the support of corporations such as IBM, Sun Microsystems, Hewlett-Packard, and Novell.
Linux is a prominent example of free software and of open source development. Its underlying source code is available for anyone to use, modify, and redistribute freely, and in some instances the entire operating system consists of free/open source software.
History
GNU's Not Unix
The history of Linux is closely tied to that of GNU. Plans for GNU were made in 1983 and in September of that year, the GNU project was publicly announced by Richard Stallman. 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, 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.
The Linux kernel
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.
The growth of Linux
The software of the GNU project and the Linux kernel thus formed the basis for an operating system which has since been completed by the efforts of numerous members of the free software and open source software communities. Significant milestones include:
- The launch of the KDE desktop environment by Matthias Ettrich in October 1996 followed by the comparable GNOME alternative by Miguel de Icaza in August 1997, both based on the X11 windowing system developed at MIT. GNOME and KDE were the tip of the Linux operating system iceberg that was now in direct contact with end users.
- The release of the Netscape browser's source code on March 31, 1998, which kicked off the Mozilla project that would eventually give birth to the popular Mozilla Firefox browser.
- The release of StarOffice by Sun Microsystems which in June 2000 became the base for the free software OpenOffice.org office suite, a major event in the open source office world. See also: list of free software.
- The growth of commercial interest in Linux is similarly marked by notable events: the launch in February 1998 of the Open Source Initiative; the announcement in July 1998 by Oracle Corporation that it would port its well-known database software to Linux and provide support for it; the IPOs of Red Hat on November 11, 1999 and VA Linux the following month which would create a speculative bubble; the wide-scale support of technology giant IBM that would spend millions of dollars on Linux, employing in 2005 close to 300 developers of the Linux kernel, and would organize starting in 2003 the legal defense for the SCO vs. Linux controversy against the attacks of the SCO Group that claimed copyright over the Linux kernel; and finally the acquisition in October and November 2003 of Ximian and then SuSE by the American technology giant Novell.
Linux today
Today Linux is used in numerous domains, from embedded systems to supercomputers, and has gained a stronghold in server installations with the popular LAMP application stack. Torvalds continues to direct the development of the kernel. Stallman heads the Free Software Foundation, which in turn develops 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-land applications and libraries. Linux vendors combine and distribute the kernel, GNU components, and non-GNU components with additional package management software in the form of Linux distributions.
Development and source code composition
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.<ref name = "estimating_size">
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.<ref name = "estimating_size"/>
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.
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. The Linux market is rapidly growing and the revenue of servers, desktops, and packaged software running Linux 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. Desktop adoption is weaker than server adoption, with diverse calculations generally figuring between 0.3% and 3% as a function of the sample set and calculation methods used. According to the market research company IDC, 25% of servers and 2.8% of desktop computers ran Linux as of 2004. The estimation of these numbers is driven by website traffic analysis, which may be complicated by two factors. First, a number of web browsers can modify their identity either by default or at the request of the user, through exploitation of the user agent string, so as not to be blocked by websites that refuse to interact with browsers other than Internet Explorer running under Microsoft Windows. Second, a Linux system may be configured not to communicate this information for privacy and security reasons.
Linux Online alleges that people regard Linux as suitable mostly for computer experts because mainstream computer magazine reporters cannot explain what Linux is in a meaningful way, as they lack real life experience using it. Furthermore, the frictional cost of switching operating systems 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. Proponents and analysts attribute the relative success of Linux to its security, reliability, low cost, and freedom from vendor lock-in.
The Linux name
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. See the external links below.
GNU/Linux
The name Linux 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.
Linux trademark
In the United States, the name Linux is a trademark registered to Linus Torvalds. Initially, nobody registered it, but on August 15 1994, William R. Della Croce, Jr. filed for the trademark Linux, and then demanded royalties from Linux distributors. In 1996, Torvalds and some affected organizations sued to have the trademark assigned to Torvalds, and in 1997 the case was settled. The licensing of the trademark has since been handled by the Linux Mark Institute. Torvalds has stated that he only trademarked the name to prevent someone else from using it, but was bound in 2005 by United States trademark law to take active measures to enforce the trademark. As a result, the LMI sent out a number of letters to distribution vendors requesting that a fee be paid for the use of the name, and a number of companies have complied.
Copyright and licensing
The Linux kernel and most GNU software are licensed under the GNU General Public License (GPL), version 2. The GPL requires that all distributed source code modifications and derived works also be licensed under the GPL, and is sometimes referred to as a "share and share-alike" or "copyleft" license. In 1997, Linus Torvalds stated, "Making Linux GPL'd was definitely the best thing I ever did." Other software may use other licenses; many libraries use the GNU Lesser General Public License (LGPL), a more permissive variant of the GPL, and the X Window System uses the MIT License. After more than ten years, the Free Software Foundation announced that they would be upgrading the GPL to version 3, citing increasing concerns with software patents and digital rights management (DRM). In particular, DRM is appearing in systems running copyleft software, a phenomenon known as "tivoization" per Tivo's use of DRM. Linus Torvalds has publicly stated he would not move the Linux kernel to GPL v.3, specifically citing the DRM provisions.
SCO litigation
In March 2003, the SCO Group filed a lawsuit against IBM, claiming that IBM had contributed portions of SCO's copyrighted code to the Linux kernel in violation of IBM's license to use Unix. Additionally, SCO sent letters to a number of companies warning that their use of Linux without a license from SCO may be actionable, and claimed in the press that they would be suing individual Linux users. This controversy has involved lawsuits by SCO against DaimlerChrysler (dismissed in 2004), and AutoZone, and by Red Hat and others against SCO. Furthermore, it is currently disputed by Novell whether the SCO even owns the relevant Unix copyrights.
SCO's claims have been numerous and varied widely over time. As per the Utah District Court ruling on July 3, 2006; 182 out of 294 items of evidence provided by SCO against IBM in discovery have been dismissed.
Philosophy
Free software and open source
The primary difference between Linux and other contemporary operating systems, for example Microsoft Windows, Mac OS X, and other proprietary UNIX systems, is that the Linux kernel, the GNU userland, and other components are free software, which is also known as open source software. Linux is not the only such operating system, although it is the most well-known and widely used one; others include the BSD derivatives NetBSD, OpenBSD, and FreeBSD, as well as GNU adaptations for other kernels, such as GNU/Solaris and GNU/Hurd.
Free software is not necessarily free of charge, and there may also be non-commercial software which is free of charge but not free software. Free software is also not completely free of restrictions, with the only exception being software in the public domain; this is a virtue of the software license and the copyright retained by its authors which together provide the four freedoms:
- The freedom to use the software without restriction
- The freedom to study the software and its source code
- The freedom to modify the software and adapt it to one's needs
- The freedom to redistribute the software under certain precise conditions
Some free software and open source 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 is used for the Linux kernel itself: the GNU GPL written by Richard Stallman.
One of the advantages of open source, as proposed by Eric Raymond and others, is that it allows for rapid software bug detection and elimination, which is important for correcting security exploits. This argument rejects the notion of security by obscurity.
Contributors to free software are not uniquely software developers, as exemplified by the GNOME and KDE projects; there are many non-development contributions needed, as is the case for any software product. Furthermore, the principles of free software and open source have had repercussions in other domains where collaboration is possible and the cost of making copies is marginal. Amongst the members of this open source culture are the Creative Commons movement initiated by Lawrence Lessig and the collaborative encyclopedia Wikipedia founded by Jimmy Wales.
Interoperability
Linux aims for interoperability with other operating systems, and by extension the software that runs under Linux aims for interoperability with other Linux and non-Linux software. The reasons for this are two-fold. First, from a free software perspective, interoperability provides the first out of four freedoms, by allowing users free choice of software and data formats whilst not restricting them as a result of that choice. Second, from a commercial perspective, Linux is an operating system underdog competing with mainstream operating systems, and it cannot rely on a monopoly advantage; in order for Linux to be a convenient operating system for users that is commercially viable, it must work in diverse environments.
A priority is placed on open formats, public specifications for data that are freely available and free to implement, with the goal being to remove dependences on single pieces of software. These contrast with closed formats, which are either poorly documented or not documented at all, and for which there exists no agreement between competing vendors. When standards exist for network communication protocols, data formats, and APIs, they contribute to the robustness and adoption of Linux. In some cases, free software projects are the reference implementation of these protocols, examples being the Apache HTTP Server, and the X.org implementation of the X Window System.
Examples of standard conformance include Mozilla Firefox which adheres strictly to World Wide Web Consortium recommendations, Jabber which formed the basis for the XMPP standard recognized by the Internet Engineering Task Force in the domain of instant messaging, and office productivity suites such as OpenOffice.org and KOffice which brought to light the recent OpenDocument standard. Linux systems also adhere to POSIX, SUS, ISO, and ANSI standards where possible, although to date only one Linux distribution has been POSIX.1 certified, Linux-FT. [1]
In other domains, there are neither recognized standards nor organizations to manage them. The market is therefore split between software which attempts to interoperate as much as possible, and that which establishes market dominance through vendor lock-in, or the use of closed formats and communication protocols. Prime examples of the first category draw from the instant messaging war, which is ruled by multiprotocol software such as Gaim, Kopete, and Trillian. The second category of software is exemplified by Microsoft Office and its widely used closed file formats, and the Common Internet File System protocol which allow for files and printers to be shared between different computers on a Windows network.
In these cases, interoperability depends on reverse engineering, which requires a substantial investment on the part of developers. The legal status of reverse engineering varies from country to country; it may be illegal in the United States but legal in Europe, provided the goal is limited to interoperability. Today, as a result of reverse engineering, OpenOffice.org can read most .doc files, and Samba allows non-Windows machines to interact with a Windows network.
A further problem beyond reverse engineering is when interoperability is needed for a format or protocol that is technically encumbered by digital rights management or Trusted Computing, or legally restricted by software patents or laws such as the EUCD and DMCA.
Portability
Linux is a portable operating system, one that runs on a wide variety of hardware. It runs on a more diverse range of systems than any other operating system. One of the original goals of the GNU system was portability, and while the Linux kernel was originally designed only for Intel 80386 microprocessors, it now supports dozens of computer architectures. Linux runs on computers from the hand-held ARM-based iPAQ to the mainframe IBM System z9, in devices ranging from supercomputers to mobile phones, and has a foothold in the personal computer and business desktop markets. Specialized distributions exist for less mainstream architectures. The ELKS kernel fork can run on Intel 8086 or Intel 80286 16-bit microprocessors, while the µClinux kernel may run on systems without a memory management unit including the Apple iPod. The kernel also runs on architectures that were only ever intended to use a manufacturer-created operating system, such as the iMac and PowerBook, Palm PDAs, GameCube, Xbox and even the Playstation Portable.
Community
Linux is largely driven by its developer and user communities. Some vendors develop and fund their distributions on a volunteer basis, Debian being a well-known example. Others maintain a community version of their commercial distributions, as RedHat does with Fedora Core.
In many cities and regions, local associations known as Linux Users Groups (LUGs) seek to promote Linux and by extension free software. They hold meetings and provide free demonstrations, training, technical support, and operating system installation to new users. There are also many internet communities that seek to provide support to Linux users and developers. Most distributions and open source projects have a chatroom on the popular Freenode IRC network that are open to anybody with an IRC client. Online forums are another means for support, with notable examples being LinuxQuestions.org and the Gentoo forums. Linux-based newsgroups are available via the Google Groups interface and also via news readers. Finally, every established free software project and Linux distribution has one or more mailing lists; commonly there will be a specific topic such as usage or development for a given list.
In French, a Linux user may be known as a "Linuxien"; there is no such corresponding term in English. /There is a term "Linuxoid" in russian./
Commercialization
Finally, although Linux is generally available free of charge, several large corporations have established business models that involve selling, supporting, and contributing to Linux and free software. These include IBM, HP, Sun, Novell, and RedHat. The free software licenses on which Linux is based explicitly accommodate and encourage commercialization; the relationship between Linux as a whole and individual vendors may be seen as symbiotic. The business model of commercial suppliers is generally dependent on charging for support, especially for business users. A number of companies also 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.
Distribution
Role
A particular feature of free software and open source operating systems such as Linux is that there is a clear separation between software production and software distribution. Free software projects, although developed in a collaborative fashion, are often produced independently of each other. However, given that the software licenses explicitly permit redistribution, this 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. Even though some distributions may include non-free software, that software must still be available under a license that permits free redistribution, unless it is maintained by the distribution itself; otherwise, the individual vendor is responsible for both production and distribution.
A Linux distribution, commonly called a "distro", is a project that manages a remote collection of Linux-based software, and facilitates installation of a Linux operating system. Distributions are maintained by individuals, loose-knit teams, volunteer organizations, and commercial entities. They include system software and application software in the form of packages, and distribution-specific software for initial system installation and configuration as well as later package upgrades and installs. A distribution is responsible for the default configuration of installed Linux systems, system security, and more generally integration of the thousands of Linux-based software packages into a coherent whole.
A typical general purpose distribution includes: a boot loader such as LILO or GRUB, the Linux kernel, GNU libraries and tools, command-line shells, the graphical X Window System and an accompanying desktop environment such as KDE or GNOME, together with thousands of application software packages, from office suites to compilers, text editors, and scientific tools. Distribution-specific package management systems include RPM, dpkg, and Portage. As well as those designed for general purpose use, distributions may be specialized for different purposes including: computer architecture support, embedded systems, stability, security, localization to a specific region or language, targeting of specific user groups, support for real-time applications, or commitment to a given desktop environment. Furthermore, some distributions deliberately include only free software. Currently, over three hundred distributions are actively developed, with about a dozen distributions being most popular for general-purpose use.
Choosing a distribution
Linux distributions are numerous and diverse, and choosing between them can be a complicated process; it is often useful to compare Linux distributions. Each distribution is different, and the project goals address varying vendor and end-user needs. Broadly, Linux distributions may be: 1) commercial or non-commercial; 2) designed for enterprise or for home usage; 3) designed for servers, desktops, or embedded devices; 4) targeted at regular users or power users; 5) general purpose or highly specialized toward specific machine functionalities, for example firewalls, network routers, and compute clusters; 6) designed and even certified for specific hardware and computer architectures; or 7) targeted at specific user groups, for example through language internationalization and localization, or through inclusion of many music production or scientific computing packages.
Well-known Linux distributions include:
- Slackware, one of the first Linux distributions, founded in 1993, and since then actively maintained by Patrick J. Volkerding
- Debian, a non-commercial distribution maintained by a volunteer developer community with a strong commitment to free software principles
- Red Hat, maintained by the American company of the same name, which also provides a community version in the form of Fedora Core
- Mandriva, a Red Hat derivative popular in France and Brazil, today maintained by the French company of the same name
- SuSE, originally derived from Slackware with the system management software borrowed from Red Hat, maintained by the company Novell
- Gentoo, a distribution targeted at power users, known for its FreeBSD-like automated system of compiling all applications from source code
- Ubuntu, a rapidly growing desktop distribution maintained by the company Canonical that is derived from Debian
- Knoppix, a LiveCD distribution that runs completely from removable media and without installation to a hard disk
- Linspire, a commercial desktop distribution based on Debian, and once the defendant in the Microsoft vs. Lindows lawsuit over its former name.
That multiple Linux distributions peacefully coexist severely limits the possibility of anti-competitive lawsuits comparable to those filed in the United States v. Microsoft and European Union v. Microsoft trials; these lawsuits exposed the danger of a sole company that extends its monopoly through vendor lock-in by controlling not only an operating system installed on the vast majority of computers but also an important collection of software that runs under that operating system. One inconvenience of this system is that the definition of a Linux operating system is somewhat unclear. Linux may be seen as either an operating system unto itself, or a family of operating systems, one for each distribution. The important point is that most Linux software is compatible across all major distributions, even at the binary level, and that only distribution-specific software will not work with another distribution.
Installation
The most common method of installing Linux 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 some cases shipped for free by request. A box set may also include manuals and additional proprietary software. Mini CD images allow Linux to be installed from a disk with a small form factor. As with servers, personal computers that come with Linux already installed are available from vendors including Hewlett-Packard and Dell, although generally only for their business desktop lines. 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. Some distributions have a Live CD installer, where the computer boots the operating system from the disk, and then proceeds to install it onto the computer's hard disk, providing a seamless transition from the OS running from the CD to the OS running from the hard disk. On embedded devices, Linux is typically held in the device's firmware and may or may not be consumer-accessible.
OEM Contracts
Computer hardware is often sold with the operating system of a software original equipment manufacturer (OEM) already installed. It is uncommon for this operating system to be Linux, even though the portability features of Linux mean that it can be installed on most machines. In the case of IBM PC compatibles the OS is usually Microsoft Windows; in the case of Apple Macintosh computers it has always been a version of Apple's OS, currently OS X; Sun sells SPARC hardware with Solaris installed; video game consoles such as the Xbox, Playstation, and Gamecube each have their own proprietary OS. That Linux is not installed by default on most computer hardware limits its market share: consumers are unaware that an alternative exists, they must make a conscious effort to use a different operating system, and they must either perform the actual installation themselves, or depend on support from a friend, relative, or computer professional.
However, it is actually possible to buy hardware with Linux pre-installed. Hewlett-Packard and Dell both sell general purpose Linux laptops, and custom-order PC manufacturers will also build Linux systems. Terra Soft sells Macintosh computers and Playstation 3 consoles with Yellow Dog Linux pre-installed. It is more common to find embedded devices sold with Linux as the default manufacturer-supported OS, including the Linksys NSLU2 router, TiVo's line of personal video recorders, and Linux-based cellphones, PDAs, and portable music players.
Consumers also have the option of obtaining a refund for unused OEM operating system software. The end user license agreement (EULA) for Apple and Microsoft operating systems gives the consumer the opportunity to reject the license and obtain a refund. If requesting a refund directly from the manufacturer fails, it is also possible that a lawsuit in small claims court will work. On February 15, 1999, a group of Linux users in Orange County, California held a "Windows Refund Day" protest in an attempt to pressure Microsoft into issuing them refunds. In France, the Linuxfrench and AFUL organizations along with free software activist Roberto Di Cosmo started a "Windows Detax" movement, which led to a 2006 petition against "racketiciels" (translation: software racketeers) and the DGCCRF branch of the French government filing several complaints against bundled software.
Interface
Command line interface
Template:Main Linux includes a command line interface (CLI) as part of its Unix-like functionality. Distributions specialized for servers or administration may use the CLI as their only interface, for the absence of a graphical user interface (GUI) helps to minimize system resource consumption. As well, Linux machines can run without a monitor attached. In order for a user to access them, either remote X11 usage is necessary, or the CLI must be used via a protocol such as SSH or telnet. On local networks, remote X11 usage is generally acceptable, but over long distances the network latency can be intolerable.
In the early history of Linux, many operations required CLI usage. The advent of distributions dedicated to desktop and family have changed this. However, online manuals for Linux often mention a CLI-based solution to a problem, even if a GUI-based alternative exists. The CLI is universal in the Linux world, whereas GUIs can differ from machine to machine. It also facilitates interoperation between Linux and non-Linux machines which also have a CLI; OS X machines are one example. It is also easier for an expert to help a user via the CLI if the user need only copy and paste the advice into a terminal.
A well-designed GUI is easier to use for most computing tasks, but power users may still prefer the command line; scientists, engineers, and software developers are among the most frequent users. Many important programs do not have a GUI, including most of the GNU userland. This comes from the Unix philosophy of designing a program to do one thing, and to do it well. The CLI is particularly suited for automation of repetitive or delayed tasks, and there is a natural progression where the command to perform a task is first issued directly, and then later reused in a script to provide automation.
Graphical and command line interfaces can also complement each other. There are a host of graphical terminal emulator programs, including xterm, rxvt, aterm, gnome-terminal, and konsole. For these programs, the X11 copy and paste mechanism can facilitate communication between the terminal and GUI applications. Additionally, KDE provides dcop, an efficient mechanism for navigating and therefore automatic all graphical applications from the command line.
X window managers
Template:Main The traditional GUI for a Linux operating system is based on a stand-alone X window manager such as FVWM, Enlightenment, or Window Maker, and a suite of diverse applications running under it. The window manager provides a means to control the placement and appearance of individual application windows, and interacts with the X window system.
The inconvenience of using a stand-alone window manager is that it requires a significant effort to customize it for the individual preferences of the user. Additionally, there will be an inconsistency between the interfaces of individual applications; the screenshot shows XMMS, RealPlayer, Mozilla Firefox, xterm, gaim, and Konqueror, each with their own conventions as to appearance, behaviour, keyboard shortcuts, menu organization, and copy and paste mechanisms. While individual applications can have brilliant aspects, the ensemble can be confusing and awkward to use together, and reflexes learned in one application are essentially non-transferable skills.
On the other hand, the high degree of flexibility allows power users to adapt a window manager to their specific needs, and the resource requirements in terms of CPU, memory, and hard-disk space consumption are much lower than those of a full-fledged desktop environment. A heavy command line interface user might prefer a minimal working environment, and a window manager used by itself provides just enough control of terminal emulator windows.
Desktop environments
Template:Main The use of window managers by themselves declined with the rise of Linux desktop environments. These are integrated desktop workstation solutions that aim to provide an interface comparable in usability to that of Mac OS X and Microsoft Windows. They combine a window manager with a suite of standard applications that adhere to human interface guidelines. Whereas a window manager is analagous to the Aqua user interface for OS X, a Linux desktop environment is analagous to Aqua as well as all of the default OS X graphical applications and configuration utilities. Initially, CDE was available as a proprietary solution, but was never popular on Linux systems due to cost and licensing restrictions. In 1996 the KDE was announced, followed in 1997 by the announcement of GNOME. Xfce is a smaller project that was also founded in 1997, and focuses on speed and modularity. A comparison of X Window System desktop environments demonstrates the differences between environments. Today, GNOME and KDE are the dominant solutions, and often installed by default on Linux systems. Each of them offers:
- To programmers, a set of standard APIs, a programming environment, and human interface guidelines.
- To translators, a collaboration infrastructure. KDE and GNOME are available in many languages.
- To artists, a workspace to share their talents.
- To ergonomics specialists, the chance to help simplify the working environment.
- To developers of third-party applications, a reference environment for integration. OpenOffice.org is one such application.
- To users, a complete desktop environment and a suite of essential applications. These include a file manager, web browser, multimedia player, email client, address book, PDF reader, photo manager, and system preferences application.
In the early 2000's these two environments reached maturity. Still active, the Appeal and ToPaZ projects focus on bringing new advances to the next major releases of both KDE and GNOME respectively. Although striving for broadly similar goals, GNOME and KDE do differ in their approach to user ergonomics. KDE encourages applications to integrate and interoperate, is highly customizable, and contains many complex features, all whilst trying to establish sensible defaults. GNOME on the other hand is more prescriptive, and focuses on the finer details of essential tasks and overall simplification. Accordingly, each one attracts a different user and developer community. Technically, there are numerous technologies common to all Linux desktop environments, most obviously the X Window System. Accordingly, the freedesktop.org project was established as an informal collaboration zone with the goal being to reduce duplication of effort.
Applications
Desktop
Under Linux, desktop software in high demand is of high quality; this includes applications such as word processors, spreadsheets, email clients, and web browsers. The following are the major Linux desktop applications:
- Office: OpenOffice.org. It is useful to compare office suites.
- Internet: Firefox, Thunderbird, Evolution, Gaim, and Azureus
- Multimedia: VLC, MPlayer, Xine, XMMS, and Amarok
- Graphics: The GIMP, Inkscape, and Scribus
Although in specialized application domains such as desktop publishing and professional audio there may be a lack of commercial quality software, users migrating from Mac OS X and Windows can find equivalent applications for most tasks. Furthermore, it is uncommon for a free software project that works under Windows or OS X not to have a Linux version; a user accustomed to using free software under Windows can generally expect to find the same applications running under Linux. A growing amount of proprietary desktop software is also supported under Linux, examples being Macromedia Flash, Adobe Acrobat, Opera, Skype, and Nero Burning ROM. Additionally, Crossover Office is a commercial solution based on the open source WINE project that supports running Windows versions of Microsoft Office and Photoshop.
Gaming
Although gaming under Linux 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 some games available. Prominent examples of open source games include Nethack, The Ur-Quan Masters, and Battle for Wesnoth. There are also emulators for playing binary game ROMs, which include ZSNES and Frotz. Some Windows games may be played using Wine or Cedega, and old MS-DOS games can be played with DOSBox. Finally, there are games such as Quake which have an open source engine that runs under Linux, and can be used to play the full game provided non-Free data files are present.
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.
A small number of proprietary games developers have been known to and continue supporting Linux as a gaming platform. iD Software, have ported the Quake, Quake 2, Quake 3 and Doom 3 engines in-house to Linux and released binaries for Linux users to use for all of the iD games based on these engines. External developers making heavy use of the Quake engines (most notably, Raven Software) have been able to license easy porting of their games to Linux due to the availability of engines available for the platform. In addition, some developers have released the source code to obsolete engines in the past under the GPL or other open source licenses, allowing not only for enhanced ports of originally released games, but also ports of games that were never available in the first place (Doom, Wolfenstein 3D).
A number of companies have been founded to oversee the porting of prominent commercial Microsoft Windows titles to Linux. One of the earliest notable efforts was the now-defunct Loki Software, who were responsible for, among others, native ports of Railroad Tycoon II, Sim City 3000 and Tribes II. Following the demise of Loki, the British company Linux Game Publishing was independently founded in 2001 to continue its work, since publishing titles such as X2: The Threat, Postal 2: Share the Pain and Cold War.
Servers, supercomputers and embedded devices
Historically, Linux has mainly been used as a server operating system, 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 as an operating system for 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 is often used in embedded systems such as television set-top boxes, mobile phones, and handheld devices. Linux has become a major competitor to the proprietary Symbian OS found in many mobile phones (16.7% of smartphones sold worldwide during 3Q, 2006 were using Linux), 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 version of Linux. Several network firewall and router standalone products, including several from Linksys, use Linux internally, using its advanced firewalling and routing capabilities.
Software development
Most Linux distributions support dozens of programming languages. Core system software such as libraries and basic utilities are usually written in C. Enterprise software is often written in C, C++, Java, Perl, Ruby, 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) and the GNU build system. 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, Ruby, Python and other dynamic languages. Examples of languages that are less common, but still well-supported, are C# via the Mono project, and Scheme. A 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 frameworks for developing graphical applications are those of GNOME and KDE. These projects are based on the [[GTK+]] and Qt widget toolkits, respectively, which can also be used independently of the larger framework. 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 Vim and Emacs 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, Franz Inc, and the Portland Group.
Comparisons with other operating systems
Comparison of Windows and Linux
Due to the prevalence of Windows from the mid-1990s onwards, a comparison between Windows and Linux became a common topic of conversation in the computer industry. In the past, Linux 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 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.
Although lack of application support is often cited as a reason to use Windows over Linux, compatibility layers such as Wine 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 Linux since they can still run many of their Windows applications with little additional effort. Additionally, commercial software such as CrossOver have been developed which extend Wine to allow many commercial Windows applications to run in a Linux environment. 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 and other Unix-like systems.
External links
- Linux Wiki.
- Kernel.org — Linux kernel web site
- The Linux Documentation Project — HOWTOs, FAQs and other guides.
- Linux.org — contains comprehensive information and resources about Linux.
- GNU.org — The GNU Project web site
- FSF.org — The Free Software Foundation web site
- LinuxLinks.com - The Linux Portal site
- Two major Linux groups to merge Jan, 2007
- The Linux Documentation Project — A source of so many Linux related documentation
- Comprehensive Linux Textbook — A free Linux Book.

