Linux (operating system): Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Stephen Ewen
(tighten)
mNo edit summary
 
(86 intermediate revisions by 24 users not shown)
Line 1: Line 1:
{| cellpadding="1" style="float: right; border: 1px solid #aaa; background: #f9f9f9; padding: 5px; font-size: 90%; margin: 0 0 15px 15px; clear: right;"
{{subpages}}__NOTOC__
|-
{{dambigbox|Linux (operating system)|Linux}}
| style="text-align: center;" | '''<big>[[Linux]]</big>'''
{{Infobox Software
|-
| name            = Linux
| style="display:block; text-align: center;" | [[Image:Gnome screenshot.png|300px]]
| logo            = Linux_Tux_Logo.png
|-
| screenshot      = Gnome screenshot.png
| style="padding: 0.25em; text-align: center;"|The GNOME desktop on Ubuntu Linux 6.10
| website          = www.kernel.org
|-
| creator          = Linus Torvalds (Linux kernel) and Richard Stallman (GNU Utilities)
| style="padding: 0.25em;"|'''Website:''' http://www.linux.org
| developer        = the [[Open source community|Open Source community]]
|-
| type            = [[Operating System]]
| style="padding: 0.25em;"|'''Developer''': [[Open source community|The Open Source community]]
| source_model    = [[Open Source]]
|-
| licence          = [[GNU General Public License]]
| style="padding: 0.25em;"|'''OS family:''' [[Unix]]-like
| os_family        = [[Unix-like]]
|-
| kernel_type      = [[kernel module|Modular]] [[Monolithic kernel|monolithic]]
| style="padding: 0.25em;"|'''Source model:''' [[Open source]]  
| ui              = usually [[Gnome]] or [[KDE]]
|-  
| platform        = [[x86]], [[x86-64]], [[PowerPC]], [[AMD64]], [[ARM]], [[DEC Alpha]], [[HP PA-RISC]], [[IA-64]], [[MIPS]], [[Motorola 68k]], [[IBM S/390]], [[Sun SPARC]],  
| style="padding: 0.25em;"|'''Latest stable release:'''<ref name="Top 10 Distros">{{cite web|url=http://distrowatch.com|title="Top 10 Distributions"|accessdate=2007-04-09}}</ref> <br/>
}}
*[[Linux distribution|Ubuntu]] 6.10 / [[October 26]], [[2006]]
'''Linux''' is a general purpose [[operating system]] similar in purpose to [[Microsoft Windows]] and [[Mac OS X]]. Unlike Windows and OS X, Linux is [[free software|free]] and runs on both [[Intel]] and [[PowerPC]] platforms, as well as many others, including mobile phones (OpenMoko, [[Android (smartphone)]]), programmable USB keys and other exotic platforms.  
*[[Linux distribution|Mandriva]] Linux 2007 / [[October 3]], [[2006]]
*[[Linux distribution|openSUSE]] 10.2 / [[December 7]], [[2006]]<br/>
|-
| style="padding: 0.25em;"|'''Supported platforms:''' [[X86 architecture|x86]], [[x86-64]], [[ia64]], [[DEC Alpha]], <br/> [[Motorola 68k]], [[SUN Sparc]], [[ARM]], [[PowerPC]]
|-
| style="padding: 0.25em;"|'''Kernel type:''' [[Monolithic kernel]]
|-
| style="padding: 0.25em;"|'''Default user interface''' (most [[Linux distribution|distros]]):  [[Graphical user interface|GUI]]  
|-
| style="padding: 0.25em;"|'''License:''' [[GNU General Public License]]
|-
| style="padding: 0.25em;"|'''Working state:''' Current
|-
|}


{{dablink|For other meanings of the term "Linux", see [[Linux (disambiguation)]].}}
Linux comes in a variety of distributions or packages. A distribution bundles the core operating system with a suite of free software typically including email, web browsing, multimedia and office applications. The most popular distribution is [[Ubuntu (Linux distribution)|Ubuntu]], which is designed for ease of installation and use.


[[Image:Linux_Tux_Logo.png|thumb|200px|right|[[Tux]] the penguin, the Linux mascot]]
The surge in the popularity of Linux in the past decade has contributed to the popularity of [[open source software]] in general, and brought the ideals and methodologies of both the open source crowd and the [[free software]] movement into the limelight. Linux is also used in computer research where access to the source code is required or where its advanced build system is a benefit.


'''Linux''' is the most successful [[Open source software|open-source]] computer [[operating system]] in the world.  Although it began life as just a hobby project of [[Linus Torvalds]], a then-unknown Finnish software engineer, it today enjoys a devoted following among a global community of users and developersOnce just a single release that Torvald intended as a free alternative to the proprietary UNIX system, Linux is today available in seemingly innumerable varieties for nearly every variety of computer application imaginable, from top security databases of governmental agencies to the everyday computing needs of a growing familyOne one hand, Linux provides a very user-input dependent experience nearly identical to the much older [[Unix]] operating system, while on the other, it offers the same features otherwise found only in the proprietary operating systems like [[Microsoft_Windows|Windows]] and [[Macintosh]].
==History==
Development of the Linux kernel was started in 1991 by a Finnish college student named [[Linus Torvalds]]<ref name=Linux-0.02>The public record of the project can be traced back at least to the following two emails, sent to [[Usenet|comp.os.minix]] in August and October 1991:
*[http://groups.google.com/group/comp.os.minix/browse_thread/thread/76536d1fb451ac60/b813d52cbc5a044b?_done=%2Fgroup%2Fcomp.os.minix%2Fbrowse_thread%2Fthread%2F76536d1fb451ac60%2Fb813d52cbc5a044b What would you like to see most in minix?] &mdash; announcement of the project. Quote:<br /><blockquote>I'm doing a (free) [[operating system]] (just a hobby, won't be big and professional like [[GNU|gnu]]) for [[AT-386|386(486) AT clones]].  This has been brewing since april, and is starting to get readyI'd like any feedback on things people like/dislike in [[minix]], as my OS resembles it somewhat</blockquote>
*[http://groups.google.com/group/comp.os.minix/browse_thread/thread/e3df794a2bce97da/2194d253268b0a1b Free minix-like kernel sources for 386-AT] &mdash; announcement of the first release. Quotes:<br /><blockquote>I'm working on a free version of a minix-lookalike for AT-386 computers.  It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution.</blockquote><blockquote>This is a program for hackers by a hacker.  I've {{H:title|Original spelling: enjouyed.|enjoyed}} doing it, and somebody might enjoy looking at it and even modifying it for their own needs.  It is still small enough to understand, use and modify, and I'm looking forward to any comments you might have. </blockquote></ref>.


Linux is in the public domain &mdash; it can be obtained and used for free by anyone anywhere.  Even so, some commercial software companies offer "supported distributions" of Linux, which come with certain guarantees of reliability and user support.  Customers who pay for one of the "supported" versions of Linux, such as Red Hat and others, gain the peace of mind of knowing that a company will support them if a serious problem arises.  These specially packaged versions of Linux are called [[Linux_distribution|Linux distributions]].
At the time the [[Unix]] operating system was the de facto standard at universities around the world since it was written in the high-level [[C programming language]], which allowed it to be used on many different machine architectures (this is known as [[Portability (computing)|portability]] in computing).  


Linux has experienced marketplace success as a [[server]] (accessed remotely over a network by multiple users simultaneously), and has achieved moderate success as a single-user [[desktop]].  It is flexible enough to run on a wide variety of hardware platforms, from traditional desktop and workstation platforms such as Intel i386, AMD64 and SPARC, to mobile platforms such as ARM and Palm.<ref name="Consortium tackles Linux mobile phone standards">{{cite web|url=http://linuxdevices.com/news/NS6030689030.html|title="Consortium tackles Linux mobile phone standards"|date=Retreived 11-April-2007}}</ref><ref name="Mobile tech companies plan joint Linux platform">{{cite web|url=http://arstechnica.com/news.ars/post/20060615-7070.html|title="Mobile technology companies plan joint Linux platform"|date=Retreived 11-April-2007}}</ref>
Before the 7th edition of UNIX, the source code was available and it was used to teach students the inner working of operating systems. This availability also allowed computer scientists to change different aspects of the code to fit their needs and inspired a strong following in academia. However, [[AT&T]] which owned UNIX soon realized the commercial value of the operating system and blocked universities from using the UNIX source code in their teaching.


==Origins==
To combat AT&T's licensing change, Professor [[Andrew Tanenbaum]] wrote a new, smaller operating system inspired by UNIX which he called [[Minix]]. This new operating system contained none of the source code that was owned by AT&T, so it could be distributed to universities for use in the classroom and could be adapted to run on many different machines. Since Andrew Tanenbaum was a professor at Vrije Universiteit in Amsterdam, The Netherlands, his goal was to make the source code for his operating system short and simple enough for students to read and follow within a semester.
{{main|Linux history}}
In 1991, the first Linux kernel was written by a Finnish college student named [[Linus Torvalds]]. It was originally started as a hobby and a free solution to the very expensive, commercial Unix systems. Indeed, it was never intended to gain the amount of attention it has acquired, largely due to the fact that Torvalds did not believe that it, having been written by him as an exercise in the features of the then-new [[i386]] platform, could be ported easily to other system architectures.


The name 'Linux' was created by combining [[Linus Torvalds|Linus]] with the "x" in [[Unix]]. Torvalds originally intended to call the project ''Freax'', for Free and Freak, with the "x" denoting that it is Unix-like, but after one of his colleagues named the system's [[File Transfer Protocol|FTP]] directory after him, the name stuck.<ref name="LinuxNaming">{{cite web
Many individuals contributed to Minix through a news group on [[USENET]] called comp.os.minix and their changes were merged into the operating system by it's author. However, as the number of hardware architectures grew, so did the size of the code and eventually Andrew Tanenbaum began rejecting improvements to the code because they added complexity and length and were unsuitable for his classes.  One area that he refused to implement was the 32-bit version of the Intel 386 architecture.  Also, since the source code was copyrighted in his book, "Operating Systems: Design and Implementation," only the modifications, or patches could be distributed.
| title=USENET post on Linux naming
| url=http://groups.google.com/group/comp.os.linux/msg/53a76cbbbcb6e1c8
| date=Retreived 06 April 2007
}}</ref> Linux is pronounced like 'Minix' - that is, "'li' is pronounced with a short [ee] sound: compare prInt, mInImal etc.'nux' is also short, non-diphtong, like in pUt."<ref name="LinuxNaming"/>


Before Torvalds began the [[Linux kernel]] project, the only low-cost, stable, Unix system developed for [[IBM-compatible PC|IBM-compatible PCs]] was a [[closed source software|closed source]] system called '[[Minix]]', developed by a professor named [[Andrew Tanenbaum]]. In 1984, [[Richard Stallman|Dr. Richard Stallman]] founded the
At the University of Helsinki, a second year computer science student named Linus Torvalds decided to write a new operating system based on the physical layout of the Minix system. In his first announcement of the project on comp.os.minix, he described his work as a hobby and asked for suggestions on what improvements other developers would like to see in the minix code, to incorporate into his new operating system.  Linus was influenced by the work of [[Richard Stallman]] and the [[GNU]] Project, which sought to release software that was free from restrictions against copying or modification in order to make it better and more efficientHe incorporated these ideas when he provided the complete source code of this his new operating system, which one of the contributors jokingly named "Linux."<ref name="fun">Torvalds, Linus and David Diamond, ''Just for Fun: The Story of an Accidental Revolutionary'', 2001, ISBN 0-06-662072-4</ref>
landmark [[Free Software Foundation]], a non-profit organization, in which work was done throughout the late 1980's towards creating a free [[Unix]]-like operating system.  The new software was to be called the [[GNU]]<ref>{{cite web
| name=GNU
| url=http://gnu.org
| title=About the GNU Project
| date=Retreived 06 April 2007
}}</ref> system, which is a [[recursive acronym]] for '''''G'''NU's '''N'''ot '''U'''nix''.  The GNU project produced highly successful tools, including the GNU C [[compiler]], GNU [[debugger]], and the [[Emacs]] text editorHowever, the project still lacked a kernel for its new operating system. When Linux came along, the GNU developers adopted it and combined their tools with it, creating a full-fledged operating system with good tools.  Stallman's [[Free Software Foundation]] was the first [[open source software|open source]] software project, and Linux became its [[poster child]].


{{main|GNU/Linux controversy}}
Fundamentally, Tanenbaum and Linus differed in how they implemented their source code to control the critical functions of the computer. The Minix operating system sought a microkernel-based system, in which the operating system runs many separate processes and a kernel directs the passing of messages between each of them. This in theory would prevent an error in one process from spreading to the others, making the overall system more reliable. Linus favoured a monolythic style operating system, where the kernel was directly responsible for process management, memory management, and interaction with the file system and ran as a single overall process.  The advantage of this system structure is that is much easier to implement and produces some improved performance.
The GNU Project members decided to call 'Linux' GNU/Linux, in order to attribute credit to those who worked hard at creating the tools that the Linux kernel runs. Torvalds, however, has made no effort to hide his thoughts towards this naming convention, saying that "calling Linux in general just 'GNU/Linux' I think is ridiculous."<ref name="OSWeekly">{{cite web
| title=The "GNU/Linux" and "Linux" Controversy
| url=http://www.osweekly.com/index.php?option=com_content&Itemid=&task=view&id=2242
| date=Retreived 06 April 2007
}}</ref> By most in the community and officially, the name remains simply 'Linux'.


==Marketplace successes and struggles==
The pairing of this new Linux kernel and the utilities developed by the GNU project proved to be critical to the growth of each projectThe [[GCC]] C compiler developed by Stallman soon became the best way for a developer to take the Linux source code compile it and produce an executable that could be used to control a computer.  Also, the [[bash]] shell created by GNU provided a way for the user to interact with the kernel and run system processes.  The free price, availability, and adaptability of all of these projects allowed developers the flexibility to make them efficiently interact with each other.   In fact at this time GNU was creating a kernel of the own named [[GNU Hurd]] based on the microkernel model, however the speed with which Linus was able to produce a working kernel pulled developers towards his project and away from Hurd. The fundamental similarities in how the GNU project and Linux kernel envisioned ownership, modification, and distribution of their source code allowed two projects, developed by completely different developers to combine to produce a fully functioning operating system.
Linux is typically used either as a [[server]] (accessed remotely over a network by multiple users simultaneously), as a single-user [[desktop]], or in some cases, filling both roles at onceWhen used as a [[server]], typically Linux may fill as many differet roles, such as a [[web server]], [[database server]], [[file server]], etc. The popularity of the [[Apache web server]] was one of the biggest breakthroughs in the open source community. Due to the fact that the developer community for the Unix-like platforms has been considerably larger than that of the other platforms Apache supports, many companies rely on Linux to host their websites. Among the chief reasons for them to switch at the time of Apache's first release was the ability to host more than one website on the same computer. Other large reasons it has excelled in the server market include that it is stable, fast, and generally costs less to maintain (both software and hardware) than other server platforms.


Linux has been somewhat less successful in the marketplace when used as a [[desktop]]. One reason is that the open source community has not standardized on a user interface for the [[desktop]], but rather, different distributions either offer a choice of [[desktop environment|desktop environments]], or focus on a specific one. A Linux computer can be configured to run one of several desktop environments, the most popular being GNOME and KDEThis means that a computer user cannot depend on any two Linux computers being identical to use.  Despite this lack of standardization (and increased learning curve due to differences in design), some companies have turned to using Linux citing reduced cost compared to proprietary operating systems, especially [[Microsoft Windows]].
==The name==
Originally, Torvalds had intended to call the system ''Freax'', for '''Fre'''e, '''Frea'''ks, and Uni'''x'''. The original source code up to version 0.11 made reference to this, such as a comment in the [[Makefile]], "''Makefile for the freax kernel''". However, the kernel's FTP directory at [ftp://nic.funet.fi/pub/Linux nic.funet.fi] was named Linux, in honor of its creator, of course, with an ''x'' to denote that it is Unix-like. This name caught on, and has been the official alias ever since. Linux is pronounced like 'Minix' - that is, "'li' is pronounced with a short [ee] sound: compare prInt, mInImal etc.'nux' is also short, non-diphthong, like in pUt."<ref>{{cite web
| url=http://groups.google.com/group/comp.os.linux/msg/53a76cbbbcb6e1c8
| title=How to pronounce "Linux"?
| author=Linus Torvalds
| date=Accessed April 23rd, 2007
}}</ref>
===Linux controversy===
{{main|Linux naming controversy}}
Preceding the first uploads of the Linux kernel by over 8 years, in 1983 the [[Free Software Foundation]] (FSF) led by [[Richard Stallman|Dr. Richard Stallman]] began work on a similar project called ''GNU''. The GNU system was a multi-person project which aimed to provide a suite of software together with the operating system kernel.  The GNU group began not with the kernel, but rather by developing various tools such as a [[compiler]] ([[GNU C Compiler]]) and a [[text editor]] ([[Emacs]]).  The GNU group never did complete their system with an operating system kernelAs a result, free software enthusiasts started to use Linux's kernel alongside  GNU's suite of toolsSuch combinations came to be called Linux Distributions.  The FSF refers to a Linux Distribution as ''Linux''. This convention has been very controversial, however. Torvalds does not support this terminology, saying that "calling Linux in general just 'Linux' I think is ridiculous."<ref name="OSWeekly">{{cite web
| title=The "Linux" and "Linux" Controversy
| url=http://www.osweekly.com/index.php?option=com_content&Itemid=&task=view&id=2242
| date=Retrieved April 6th, 2007
}}</ref>


More recently, numerous big names in commercial software have signed on to Linux support, most notably IBM and HP. Popular computer manufacturer Dell has recently announced they will offer computers with a desktop version of Linux preinstalled including bundled support, based on customer demand.<ref name="Here Come the Dell Linux Desktops">{{cite web| url=http://www.desktoplinux.com/news/NS8436091466.html|title="Here Come the Dell Linux Desktops"|date=Retreived 11-April-2007}}</ref><ref name="Dell gives desktop Linux its full attention">{{cite web|url=http://www.desktoplinux.com/news/NS8382062536.html|title="Dell gives desktop Linux its full attention"|date=Retreived 11-April-2007}}</ref>
== Interface ==
The majority of Linux distributions allow the use of both a GUI (Graphical User Interface) and a CLI (Command Line Interface). In the last few years, many distributions have focused on improving the graphical interface to increase the accessibility of the interface to new users. [[Ubuntu (Linux distribution)|Ubuntu]], widely believed to be the most used Linux distribution, had a complete visual refresh for the "Hardy Heron" 8.04 release based on the GNOME desktop environment.


Another platform that Linux has made inroads on is the mobile platform of [[PDA|PDAs]] and [[cell phones]]. Linux is a popular choice on this emerging platform due to its openness and flexibility.<ref name="Mobile tech companies plan joint Linux platform"/><ref name="Consortium tackles Linux mobile phone standards"/> Also notable is the [[GP2X]], which is a mobile gaming platform similiar to Sony's PSP that is based solely on Linux, running on the ARM platform.<ref name="GP2X Homepage">{{cite web|url=http://gp2x.co.uk/|title="GP2X Official Site"|date=Retreived 11-April-2007}}</ref>
=== Desktop environments ===
There are many desktop environments available for Linux. This means that there used to be little consistency between distributions. However, in a effort to prevent this, [http://www.freedesktop.org freedesktop.org] have introduced the "Tango Theme Guidelines" - a set of guidelines that icon creators are encouraged to adhere to. This includes a color palette and a set of naming conventions.


==Applications running on Linux==
====GNOME====
{{main|Linux software}}
GNOME (GNU Network Object Model Environment) is a desktop environment created by the GNU Project focused on easy of use. It is made of entirely open source software, and the most recent stable release is 2.20, which was released in September 2007. GNOME is the default desktop environment for many distributions, most notably [[Debian]], [[Fedora Core]], [[openSUSE]] and [[Ubuntu (Linux distribution)|Ubuntu]].
[[Image:Linux_and_KDE_Screenshot.png|thumb|200px|right|The KDE desktop on SUSE Linux 10.1]]
Aside from the GNU project's applications, Linux is capable of running many applications of all natures, from games and graphic editors to [[Integrated Development Environment|Integrated Development Environments]] and [[web server|web servers]]. Among the most commonly used applications are [[The GIMP]] photo editing tool, which is commonly referred to as a free alternative to [[Photoshop]], [[Firefox]], a feature-complete, tabbed web browser, and [[OpenOffice]], which is a free, full-featured alternative to the [[Microsoft Office]] suite. The GIMP, Firefox and OpenOffice are all [[cross-platform]] as well, meaning they run on [[Microsoft Windows]] and [[Mac OS X]].


Unlike [[Microsoft Windows NT]], Linux itself is not a graphical system. Instead, Linux relies on a graphical layer to output [[bitmap]] images. The most common application for this is called [[X.org]], commonly referred to as just ''X''. X.org is a very minimal program that purposely does as little as possible. Users do not normally see it, but the results of its work. [[X.org]] serves as a layer between the kernel and the [[desktop environment]] or [[window manager]]. Window managers, like [[Openbox]] or [[wmii]], are only able to manage windows and desktops, while desktop environments, such as [[GNOME]], [[KDE]] and [[Xfce]], provide advanced graphical functionality, such as the ability to process text, organize photos or chat online.
====KDE====
KDE (K Desktop environment) is another desktop environment, but is focused on allowing the user to configure as much as possible. The main distributions that use KDE are [[Kubuntu]] and [[MEPIS]]. Currently, the KDE developers are testing a major new release: KDE4, which is planned for release on 11 January 2007. It is being upgraded to the Qt4 toolkit, and increases in speed over KDE3 are planned. A new theme, known as the "Oxygen icon set", will be included.


Many applications designed only for Windows can be run through an interpreter called [[Wine (software)|Wine]], which is a recursive acronym for '''''W'''ine '''i'''s '''n'''ot an '''E'''mulator''. While far from perfect (particularity in compatibility with [[DirectX]]), this project can successfully run many top-notch applications, such as [[Adobe]] [[Shockwave]], [[Steam (software)|Steam]], and [[DVDShrink]]. Other commercial interpreters exist as well, such as [[CrossOver]] and [[Cedega]], specially designed for running games. These applications are forks of Wine, hacked to support a list of various programs that the version of Wine they were based on did not.
====Xfce====
[[Xfce]] is a desktop environment designed to give a compromise between eye candy and speed. The latest release is 4.4.1. Xfce is not as popular as GNOME or KDE, but some distributions use Xfce as the default desktop environment, including [[Dreamlinux]] and [[Zenwalk]].


==References==
====Fluxbox====
{{reflist|2}}
[[Fluxbox]] is a lightweight desktop environment, aimed at low-end computers. It is designed for speed, but allows eye-candy including transparency. The project recently passed its 1.0 release milestone.


==Related topics==
====LXDE====
*[[Unix]]
[[LXDE]] (Lightweight X11 Desktop Environment) is another lightweight desktop environment based on the [[Openbox]] window manager.
*[[Minix]]


==Subtopics==
== Package Management ==
*[[Linux history]]
There are several different package management systems for Linux. Since most applications are open source, packages can be installed by compilation from source code. Some distributions aimed at experts use this format, including [[Gentoo]] and [[Sabayon]] Linux. However, most Linux distributions have binary packages available for download. [[Debian]] and Debian-based distributions (including Ubuntu) use the .deb package format, along with the "APT" package manager. This allows packages to be upgraded, removed and installed, dealing with all of the dependencies. Other distributions use the .rpm format. However, this package format was initially unpopular due to its poor handling of dependencies (known as "dependency hell"). [[OpenSUSE]], [[Mandriva]] and [[Fedora Core]] all use the .rpm package format.
*[[Linux kernel]]
*[[Linux distribution|Linux distributions]]


==External links==
==References==
*[http://groups.google.com/group/comp.os.minix/browse_thread/thread/76536d1fb451ac60/b813d52cbc5a044b?lnk=gst Linus' first post presenting Linux]
{{reflist}}[[Category:Suggestion Bot Tag]]
*[http://www.linux-foundation.org/ The Linux Foundation]
 
[[Category:CZ Live]]
[[Category:Computers Workgroup]]

Latest revision as of 11:00, 12 September 2024

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.
This article is about Linux (operating system). For other uses of the term Linux, please see Linux (disambiguation).
Linux
Linux Tux Logo.png
Gnome screenshot.png
Website www.kernel.org
Created by Linus Torvalds (Linux kernel) and Richard Stallman (GNU Utilities)
Developed by the Open Source community
Software type Operating System
Source model Open Source
Licence GNU General Public License
OS Family Unix-like
Kernel Type Modular monolithic
Default UI usually Gnome or KDE
Platforms x86, x86-64, PowerPC, AMD64, ARM, DEC Alpha, HP PA-RISC, IA-64, MIPS, Motorola 68k, IBM S/390, Sun SPARC,

Linux is a general purpose operating system similar in purpose to Microsoft Windows and Mac OS X. Unlike Windows and OS X, Linux is free and runs on both Intel and PowerPC platforms, as well as many others, including mobile phones (OpenMoko, Android (smartphone)), programmable USB keys and other exotic platforms.

Linux comes in a variety of distributions or packages. A distribution bundles the core operating system with a suite of free software typically including email, web browsing, multimedia and office applications. The most popular distribution is Ubuntu, which is designed for ease of installation and use.

The surge in the popularity of Linux in the past decade has contributed to the popularity of open source software in general, and brought the ideals and methodologies of both the open source crowd and the free software movement into the limelight. Linux is also used in computer research where access to the source code is required or where its advanced build system is a benefit.

History

Development of the Linux kernel was started in 1991 by a Finnish college student named Linus Torvalds[1].

At the time the Unix operating system was the de facto standard at universities around the world since it was written in the high-level C programming language, which allowed it to be used on many different machine architectures (this is known as portability in computing).

Before the 7th edition of UNIX, the source code was available and it was used to teach students the inner working of operating systems. This availability also allowed computer scientists to change different aspects of the code to fit their needs and inspired a strong following in academia. However, AT&T which owned UNIX soon realized the commercial value of the operating system and blocked universities from using the UNIX source code in their teaching.

To combat AT&T's licensing change, Professor Andrew Tanenbaum wrote a new, smaller operating system inspired by UNIX which he called Minix. This new operating system contained none of the source code that was owned by AT&T, so it could be distributed to universities for use in the classroom and could be adapted to run on many different machines. Since Andrew Tanenbaum was a professor at Vrije Universiteit in Amsterdam, The Netherlands, his goal was to make the source code for his operating system short and simple enough for students to read and follow within a semester.

Many individuals contributed to Minix through a news group on USENET called comp.os.minix and their changes were merged into the operating system by it's author. However, as the number of hardware architectures grew, so did the size of the code and eventually Andrew Tanenbaum began rejecting improvements to the code because they added complexity and length and were unsuitable for his classes. One area that he refused to implement was the 32-bit version of the Intel 386 architecture. Also, since the source code was copyrighted in his book, "Operating Systems: Design and Implementation," only the modifications, or patches could be distributed.

At the University of Helsinki, a second year computer science student named Linus Torvalds decided to write a new operating system based on the physical layout of the Minix system. In his first announcement of the project on comp.os.minix, he described his work as a hobby and asked for suggestions on what improvements other developers would like to see in the minix code, to incorporate into his new operating system. Linus was influenced by the work of Richard Stallman and the GNU Project, which sought to release software that was free from restrictions against copying or modification in order to make it better and more efficient. He incorporated these ideas when he provided the complete source code of this his new operating system, which one of the contributors jokingly named "Linux."[2]

Fundamentally, Tanenbaum and Linus differed in how they implemented their source code to control the critical functions of the computer. The Minix operating system sought a microkernel-based system, in which the operating system runs many separate processes and a kernel directs the passing of messages between each of them. This in theory would prevent an error in one process from spreading to the others, making the overall system more reliable. Linus favoured a monolythic style operating system, where the kernel was directly responsible for process management, memory management, and interaction with the file system and ran as a single overall process. The advantage of this system structure is that is much easier to implement and produces some improved performance.

The pairing of this new Linux kernel and the utilities developed by the GNU project proved to be critical to the growth of each project. The GCC C compiler developed by Stallman soon became the best way for a developer to take the Linux source code compile it and produce an executable that could be used to control a computer. Also, the bash shell created by GNU provided a way for the user to interact with the kernel and run system processes. The free price, availability, and adaptability of all of these projects allowed developers the flexibility to make them efficiently interact with each other. In fact at this time GNU was creating a kernel of the own named GNU Hurd based on the microkernel model, however the speed with which Linus was able to produce a working kernel pulled developers towards his project and away from Hurd. The fundamental similarities in how the GNU project and Linux kernel envisioned ownership, modification, and distribution of their source code allowed two projects, developed by completely different developers to combine to produce a fully functioning operating system.

The name

Originally, Torvalds had intended to call the system Freax, for Free, Freaks, and Unix. The original source code up to version 0.11 made reference to this, such as a comment in the Makefile, "Makefile for the freax kernel". However, the kernel's FTP directory at nic.funet.fi was named Linux, in honor of its creator, of course, with an x to denote that it is Unix-like. This name caught on, and has been the official alias ever since. Linux is pronounced like 'Minix' - that is, "'li' is pronounced with a short [ee] sound: compare prInt, mInImal etc.'nux' is also short, non-diphthong, like in pUt."[3]

Linux controversy

For more information, see: Linux naming controversy.

Preceding the first uploads of the Linux kernel by over 8 years, in 1983 the Free Software Foundation (FSF) led by Dr. Richard Stallman began work on a similar project called GNU. The GNU system was a multi-person project which aimed to provide a suite of software together with the operating system kernel. The GNU group began not with the kernel, but rather by developing various tools such as a compiler (GNU C Compiler) and a text editor (Emacs). The GNU group never did complete their system with an operating system kernel. As a result, free software enthusiasts started to use Linux's kernel alongside GNU's suite of tools. Such combinations came to be called Linux Distributions. The FSF refers to a Linux Distribution as Linux. This convention has been very controversial, however. Torvalds does not support this terminology, saying that "calling Linux in general just 'Linux' I think is ridiculous."[4]

Interface

The majority of Linux distributions allow the use of both a GUI (Graphical User Interface) and a CLI (Command Line Interface). In the last few years, many distributions have focused on improving the graphical interface to increase the accessibility of the interface to new users. Ubuntu, widely believed to be the most used Linux distribution, had a complete visual refresh for the "Hardy Heron" 8.04 release based on the GNOME desktop environment.

Desktop environments

There are many desktop environments available for Linux. This means that there used to be little consistency between distributions. However, in a effort to prevent this, freedesktop.org have introduced the "Tango Theme Guidelines" - a set of guidelines that icon creators are encouraged to adhere to. This includes a color palette and a set of naming conventions.

GNOME

GNOME (GNU Network Object Model Environment) is a desktop environment created by the GNU Project focused on easy of use. It is made of entirely open source software, and the most recent stable release is 2.20, which was released in September 2007. GNOME is the default desktop environment for many distributions, most notably Debian, Fedora Core, openSUSE and Ubuntu.

KDE

KDE (K Desktop environment) is another desktop environment, but is focused on allowing the user to configure as much as possible. The main distributions that use KDE are Kubuntu and MEPIS. Currently, the KDE developers are testing a major new release: KDE4, which is planned for release on 11 January 2007. It is being upgraded to the Qt4 toolkit, and increases in speed over KDE3 are planned. A new theme, known as the "Oxygen icon set", will be included.

Xfce

Xfce is a desktop environment designed to give a compromise between eye candy and speed. The latest release is 4.4.1. Xfce is not as popular as GNOME or KDE, but some distributions use Xfce as the default desktop environment, including Dreamlinux and Zenwalk.

Fluxbox

Fluxbox is a lightweight desktop environment, aimed at low-end computers. It is designed for speed, but allows eye-candy including transparency. The project recently passed its 1.0 release milestone.

LXDE

LXDE (Lightweight X11 Desktop Environment) is another lightweight desktop environment based on the Openbox window manager.

Package Management

There are several different package management systems for Linux. Since most applications are open source, packages can be installed by compilation from source code. Some distributions aimed at experts use this format, including Gentoo and Sabayon Linux. However, most Linux distributions have binary packages available for download. Debian and Debian-based distributions (including Ubuntu) use the .deb package format, along with the "APT" package manager. This allows packages to be upgraded, removed and installed, dealing with all of the dependencies. Other distributions use the .rpm format. However, this package format was initially unpopular due to its poor handling of dependencies (known as "dependency hell"). OpenSUSE, Mandriva and Fedora Core all use the .rpm package format.

References

  1. The public record of the project can be traced back at least to the following two emails, sent to comp.os.minix in August and October 1991:
    • What would you like to see most in minix? — announcement of the project. Quote:

      I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat

    • Free minix-like kernel sources for 386-AT — announcement of the first release. Quotes:

      I'm working on a free version of a minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution.

      This is a program for hackers by a hacker. I've enjoyed doing it, and somebody might enjoy looking at it and even modifying it for their own needs. It is still small enough to understand, use and modify, and I'm looking forward to any comments you might have.

  2. Torvalds, Linus and David Diamond, Just for Fun: The Story of an Accidental Revolutionary, 2001, ISBN 0-06-662072-4
  3. Linus Torvalds (Accessed April 23rd, 2007). How to pronounce "Linux"?.
  4. The "Linux" and "Linux" Controversy (Retrieved April 6th, 2007).