Linux (operating system): Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Anees Ahmed
No edit summary
mNo edit summary
 
(247 intermediate revisions by 33 users not shown)
Line 1: Line 1:
'''Linux''' is a [[Unix-like]] computer [[operating system]] family that uses the [[Linux kernel]]. A Linux system which includes [[system utility|system utilities]] and [[Library (computer science)|libraries]] from the [[GNU Project]] is sometimes referred to as '''GNU/Linux'''.
{{subpages}}__NOTOC__
{{dambigbox|Linux (operating system)|Linux}}
{{Infobox Software
| name            = Linux
| logo            = Linux_Tux_Logo.png
| screenshot      = Gnome screenshot.png
| website          = www.kernel.org
| creator          = Linus Torvalds (Linux kernel) and Richard Stallman (GNU Utilities)
| developer        = the [[Open source community|Open Source community]]
| type            = [[Operating System]]
| source_model    = [[Open Source]]
| licence          = [[GNU General Public License]]
| os_family        = [[Unix-like]]
| kernel_type      = [[kernel module|Modular]] [[Monolithic kernel|monolithic]]
| 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]],
}}
'''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.  


Initially developed and used primarily by individual enthusiasts on [[personal computer]]s, Linux has since gained the support of corporations such as [[IBM]], [[Sun Microsystems]], [[Hewlett-Packard]], and [[Novell, Inc.]], and has risen to prominence as an operating system for [[server (computing)|server]]s; [[Netcraft]] reported in September 2006 that eight of the ten most reliable internet hosting companies run Linux on their [[web server]]s.
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.


Linux has been more widely [[port (computing)|port]]ed to different computing platforms than any other operating system.It is used in devices ranging from [[supercomputer]]s to [[mobile phone]]s, and has a foothold in the personal computer and business desktop markets.
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]]<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 ready.  I'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>.


== History ==
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).  
{{main|History of the Linux kernel}}
[[Image:Richard Matthew Stallman.jpeg|thumb|left|[[Richard Stallman]], founder of the [[GNU project]] for a free operating system.]]


The history of Linux is closely tied to that of [[GNU]]. Plans for GNU were made in 1983 and in September of that year they were announced publicly when [[Richard Stallman]] founded the GNU Project.  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, [[compiler]]s, [[text editor]]s, 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 (computer science)|kernel]], device drivers, system-level utilities 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.<ref>http://www.gnu.org/gnu/gnu-history.html</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.


[[Image:Linus Torvalds.jpeg|thumb|right|[[Linus Torvalds]], creator of the [[Linux kernel]].]]
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.


In 1991, work on the [[Linux kernel]] began by [[Linus Torvalds]] while attending the [[University of Helsinki]].<ref>{{ cite newsgroup | title = What would you like to see most in minix? | newsgroup = comp.os.minix | id = 1991Aug25.205708.9541@klaava.Helsinki.FI | url = http://groups.google.com/group/comp.os.minix/msg/b813d52cbc5a044b | last = Torvalds | first = Linus | accessdate = 2006-09-09 }}</ref> 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.
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.


Today, Torvalds continues to direct the development of the kernel. Stallman heads the Free Software Foundation, which in turn develops the GNU componentsFinally, third-party non-GNU components are developed by individuals and corporations.  These third-party components comprise a vast body of work and may include both kernel modules and userland 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 distribution]]s.
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 systemLinus 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."<ref name="fun">Torvalds, Linus and David Diamond, ''Just for Fun: The Story of an Accidental Revolutionary'', 2001, ISBN 0-06-662072-4</ref>


=== Etymology ===
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 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''.<ref>http://www.gnu.org/gnu/linux-and-gnu.html</ref> 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".<ref>{{ cite video | people = Moore, J.T.S. (Produced, Written, and Directed) | title = [[Revolution OS]] | medium = DVD | date = 2001 }}</ref> 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.
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 processesThe 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.


=== Pronunciation ===
==The name==
In 1992, Torvalds explained how he pronounces the word ''Linux'':
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 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."<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>


'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.|Linus Torvalds|comp.os.linux newsgroup<ref>{{ cite newsgroup | newsgroups = comp.os.linux | title = Re: How to pronounce "Linux"? | id = 1992Apr23.123216.22024@klaava.Helsinki.FI | date = [[23 April]] [[1992]] | accessdate = 2007-01-09}}</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.


<!-- The above is an exact quote from the Usenet post. Do not copyedit it. -->
=== 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.


Torvalds has made available an audio sample which indicates his own pronunciation, in English and Swedish.<ref>{{ cite web | url = http://www.paul.sladen.org/pronunciation/ | title = Howto pronouce Linux? | accessdate = 2006-12-17 }}</ref><ref>{{cite web|url=http://www.kernel.org/pub/linux/kernel/SillySounds/|title=Linus pronouncing Linux in English and Swedish|accessdate=2007-01-20}}</ref> Nevertheless, English speakers tend to pronounce the name as {{IPA|[ˈlɪnʊks]}} or {{IPA|[ˈlɪnəks]}}.
====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 (Linux distribution)|Ubuntu]].


== Distribution ==
====KDE====
{{main|Linux (kernel)#Portability|Linux distribution}}
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.


The Linux kernel was originally designed only for [[Intel 80386]] [[microprocessor]]s, but now supports a wide variety of [[computer architecture]]s. Linux is one of the most widely [[porting|ported]] operating systems, running on a diverse range of systems from the hand-held [[ARM architecture|ARM]]-based [[iPAQ]] to the [[mainframe computer|mainframe]] [[IBM]] [[System z9]]. Specialized distributions exist for less mainstream architectures. The [[ELKS]] kernel [[fork (software development)|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]]. The kernel also runs on architectures that were not intended to use other than their original operating systems: this is the case of computers made by [[Apple Computer]] such as the [[iMac]] and [[PowerBook]], [[Palm]] PDAs, [[Nintendo GameCube]] and [[Xbox]].
====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]].


Linux is predominantly used as part of a Linux distribution (commonly called a "distro"). These are put together by individuals, loose-knit teams, commercial and volunteer organizations. They commonly include additional system and [[application software|application]] software, an installer system to ease initial system setup, and integrated management of software installation and upgrading. Distributions are created for many different purposes, including [[computer architecture]] support, localization to a specific region or language, [[real-time]] applications, and [[Embedded Linux|embedded systems]], and many 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.<ref>{{ cite web | url = http://lwn.net/Distributions/ | title = The LWN.net Linux Distribution List | accessdate = 2006-05-19 }}</ref>
====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.


A typical general-purpose distribution includes the [[Linux kernel]], some GNU [[library (software)|libraries]] and tools, command-line [[Unix shell|shell]]s, the graphical [[X Window System]] and an accompanying [[desktop environment]] such as [[KDE]] or [[GNOME]], together with thousands of application software packages, from [[office suite]]s to [[compiler]]s, [[text editor]]s, and scientific tools.
====LXDE====
[[LXDE]] (Lightweight X11 Desktop Environment) is another lightweight desktop environment based on the [[Openbox]] window manager.


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 a few 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 [[Server (computing)|servers]], [[personal computer]]s that come with Linux already installed are available from vendors including [[Hewlett-Packard]] and [[Dell]], although generally only for their business desktop line.  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. On embedded devices, Linux is typically held in the device's [[firmware]] and may or may not be consumer-accessible.
== 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.


== Usage ==
==References==
 
{{reflist}}[[Category:Suggestion Bot Tag]]
Linux is used on a wide variety of machines for a wide variety of purposes.
 
=== Desktop ===
[[Image:Gnome-2.16-screenshot.png|thumb|right|300px|GNOME 2.16 running under [[Ubuntu Linux]] 6.10 showing the [[Nautilus (file manager)|Nautilus]] file manager and the [[gedit]] text editor]]
 
Desktop Linux distributions typically feature a user interface comparable with that of Microsoft Windows and Mac OS X, though migrating users usually have to switch to alternative application software, and there may be a lack of commercial quality software in certain application domains, such as [[computer game|computer gaming]], [[desktop publishing]], and [[professional audio]].  However, there exist high-quality replacements for general-purpose desktop software, which includes applications such as [[spreadsheet]]s, [[word processor]]s, [[email client]]s, and [[web browser]]s.  Additionally, a growing number of proprietary software vendors are supporting Linux.<ref>{{cite web | url = http://www.iist.unu.edu/globaldesktop/ | title = The Global Desktop Project, Building Technology and Communities|accessdate = 2006-05-07 }}</ref>
 
The high level of access granted to Linux's internals has led to Linux users traditionally tending to be more technically-inclined than users of [[Microsoft Windows]] and [[Mac OS]].
Linux's roots in the Unix operating system mean that in addition to graphical configuration tools and control panels available for many system settings and services, it is often either easier or necessary to use plain-text configuration files to configure the OS.  While user access to these files and utilities is controlled by the system administrator, and in theory the user does not need to worry about them, in practice the administrator and user are often the same person on a desktop system.
 
==== Comparison of Windows and Linux ====
 
{{main|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.  Linux and other free software projects have been frequently criticized for not going far enough to ensure ease of use.<ref>{{cite news| url = http://www.pcworld.com/article/id,111871-page,1/article.html | title = PC World - Linux Earns User-Friendly Rating | first = John | last = Blau | publisher = PC World | date = [[2003-08-04]] | accessdate = 2005-12-17]}}</ref>  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]]."<ref>{{cite web | url = http://www.relevantive.de/Linux-Usabilitystudy_e.html | title = Relevantive Linux usability study | accessdate = 2006-04-03 }}</ref> 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.<ref>{{ cite web | first = Emmett | last = Dulaney | date = June 2005 | url = http://redmondmag.com/features/article.asp?editorialsid=485 | title = Desktop Linux: Ready for Prime Time? | accessdate=2006-06-19 }}</ref> 
 
Although lack of application support is often cited as a reason to use Windows over Linux, compatibility layers such as [[Wine (software)|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.  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.
 
=== Programming ===
 
Most Linux distributions support a wide array of [[programming language]]s. Core system software such as libraries and basic utilities are usually written in C. Enterprise software is often written in C++, Java, Perl, 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). Amongst others, GCC provides compilers for [[C programming language|C]], [[C++]], [[Java programming language|Java]], and [[Fortran]]. The Linux kernel itself is written to be compiled with GCC.
 
Most distributions also include support for [[Perl]], [[Python programming language|Python]] and other dynamic languages. Less common, but still well-supported, are [[C Sharp|C#]] via the [[Mono (software)|Mono]] project, [[Scheme programming language|Scheme]], and [[Ruby programming language|Ruby]].  The two main [[widget toolkit]]s used for contemporary [[GUI]] programming are [[Qt (toolkit)|Qt]] and the Gimp Toolkit, known as [[GTK+]]. Both support a wide variety of languages.  There are a number of [[Integrated development environment]]s available including [[MonoDevelop]], [[KDevelop]], [[Anjuta]], [[NetBeans]], and [[Eclipse (computing)|Eclipse]] while the traditional editors [[Emacs]] and [[Vim (text editor)|Vim]] remain popular.<ref>{{ cite web | first = Joe | last = Brockmeier | title = A survey of Linux Web development tools | url =  http://programming.linux.com/programming/05/10/03/1828224.shtml?tid=63&tid=47 | accessdate = 2006-12-16 }}</ref>
 
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,<ref>http://www.pathscale.com/ekopath.html</ref> Micro Focus COBOL,<ref>http://www.microfocus.com</ref> [[Franz Inc]],<ref>http://www.franz.com/</ref> and the Portland Group.<ref>http://www.pgroup.com/</ref>
 
=== Enterprise usage ===
 
Linux is also used in some corporate environments as the desktop platform for its employees, with commercially available solutions including [[Red Hat Enterprise Linux]], [[SUSE Linux Enterprise Desktop]], and [[Linspire]].  Several government organizations have started the switch to using Linux.
 
=== Server usage ===
 
Historically, Linux has mainly been used as a [[Server (computing)|server]] operating system.  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 (software bundle)|LAMP]] server-software combination (Linux, [[Apache HTTP Server|Apache]], [[MySQL]], [[Perl]]/[[PHP]]/[[Python (programming language)|Python]]) which has achieved popularity among developers, and which is one of the more common platforms for website hosting. 
 
=== Embedded systems ===
 
Due to its low cost and its high configurability, an [[embedded Linux]] is often used in [[embedded systems]] such as television [[set-top box]]es, [[mobile phone]]s, and [[handheld device]]s. Linux has become a major competitor to the proprietary [[Symbian OS]] found in many mobile phones, and it is an alternative to the dominant [[Windows CE]] and [[Palm OS]] operating systems on [[handheld device]]s. The popular [[TiVo]] digital video recorder uses a customized version of Linux.<ref>{{ cite web | url = http://www.tivo.com/linux/linux.asp | title = TiVo - GNU/Linux Source Code | accessdate = 2006-12-12 }}</ref> Several network [[firewall]] and [[router]] standalone products, including several from [[Linksys]], use Linux internally, using its advanced firewalling and routing capabilities.
 
=== Supercomputing ===
 
Linux is commonly used as an operating system for [[supercomputer]]s.  As of [[January 5]] [[2007]], out of the top 500 systems, 376 (75.2%) run Linux.<ref>http://www.top500.org/stats/28/osfam/</ref>
 
=== 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 a large number of 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 (software)|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 [[SDL|Simple DirectMedia Layer]], a wrapper around [[OpenGL]], audio libraries, and input devices.  [[NVidia]] and [[ATI Technologies|ATI]] have provided kernel modules that allow for most features of their graphics cards to be used under Linux.  Linux also runs on several game consoles, including the [[X-Box]], [[Playstation]], and [[Gamecube]].  This has allowed game developers without an expensive proprietary game development kit to target console hardware.
 
==== See also ====
* [[List of Linux games]]
* [[List of commercial Linux games]]
* [[List of professionally-developed Linux games]]
 
=== Education ===
 
In technical disciplines at universities and research centres worldwide, Linux is often the platform of choice.  This is due to several factors, including that Linux is available free of charge and includes a large body of free/open source software.  To some extent, technical competence of computer science and software engineering academics is also a contributor, as is stability, maintainability, and upgradability.  IBM ran an advertising campaign entitled "Linux is Education" featuring a young boy who was supposed to be "Linux".  The [[One Laptop Per Child]] project, a campaign to distribute laptop computers to millions of children in the developing world, also uses a Linux operating system.
 
== Commercial considerations and legal issues ==
 
As with any complex software project, there are many issues surrounding Linux from both commercial and legal standpoints.
 
=== Support ===
 
Technical support is provided by commercial suppliers and by other Linux users, usually in [[online forums]], [[IRC]], [[newsgroups]], and [[mailing lists]]. [[Linux User Group]]s have traditionally been organized to provide support for Linux in specific cities and regions.  The business model of commercial suppliers is generally dependent on charging for support, especially for business users. A number of companies 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.
 
=== Development cost and source code composition ===
[[Image:Unix.svg|thumb|left|220px|A graphical history of [[Unix]] systems. Linux is a Unix-type system but its source code does not descend from the original Unix.]]
 
A 2001 study of [[Red Hat Linux]] 7.1 found that this distribution contained 30 million [[source lines of code]]. Using the [[COCOMO|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 software|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">{{ cite web | first = David A | last = Wheeler | date = 2002-07-29 | url = http://www.dwheeler.com/sloc/redhat71-v1/redhat71sloc.html | title = More Than a Gigabuck: Estimating GNU/Linux's Size | accessdate = 2006-05-11 }}</ref>
 
The majority of the code (71%) was written in the [[C programming language]], but many other languages were used, including [[C Plus Plus|C++]], [[Lisp programming language|Lisp]], [[assembly language]], [[Perl]], [[Fortran]],  [[Python (programming language)|Python]] and various [[shell script]]ing 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.<ref>{{ cite web | first = Jesús M | last = González-Barahona | coauthors = et al | date = [[3 January]] [[2002]] | url = http://people.debian.org/~jgb/debian-counting/counting-potatoes/ | title = Counting potatoes: The size of Debian 2.2 | accessdate = 2006-05-11 }}</ref> 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 ===
{{See|Linux adoption}}
 
Many quantitative studies of open source software focus on topics including market share and reliability, with many studies specifically examining Linux.<ref>{{ cite web | first = David A | last = Wheeler | url = http://www.dwheeler.com/oss_fs_why.html | title = Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers! | accessdate = 2006-04-01 }}</ref>
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.<ref>{{ cite web | url = http://www.techweb.com/wire/showArticle.jhtml?articleID=55800522 | title = Linux To Ring Up $35 Billion By 2008 | accessdate = 2006-04-01 }}</ref> The actual installed user base may be higher than indicated by this figure, as most Linux distributions and applications are freely available and redistributable.
According to the market research company [[International Data Corporation|IDC]], 25% of servers and 2.8% of desktop computers ran Linux as of 2004.<ref>{{cite web | url = http://www.telegraph.co.uk/connected/main.jhtml?xml=/connected/2004/02/04/ecnconc04.xml | title = Microsoft eyes up a new kid on the block | publisher = The Daily Telegraph | first = Dominic | last = White | date = 2004-04-02 | accessdate = 2006-09-09 }}</ref> Proponents and analysts attribute the success of Linux to its security, reliability,<ref>{{ cite web | url = http://www-306.ibm.com/software/info/features/feb152005/ | title = Why customers are flocking to Linux }}</ref> low cost, and freedom from [[vendor lock-in]].<ref>{{cite web | url = http://www.ca.com/za/news/2005/20051010_linux.htm|title = The rise and rise of Linux }}</ref> The frictional cost of switching and lack of support for certain hardware and application programs designed for [[Microsoft Windows]], especially [[computer game|games]] or uncommon business software,<!--Canonical examples?--> have been two factors that have initially inhibited fast adoption. Lack of adoption due to hardware compatibility is no longer a true inhibition to adoption, however. As of early 2007, it is very uncommon for hardware to not work "out of the box" with most Linux distributions.
 
=== SCO litigation ===
{{main|SCO-Linux controversies}}
 
In March 2003, the [[SCO Group]] filed a [[SCO v. IBM|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 [[SCO v. Novell|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.<ref>{{ cite web | url = http://www.idm.net.au/story.asp?id=7297 | title = SCO Losing Linux Battle With IBM }}</ref>
 
=== Licensing ===
 
The Linux kernel and most GNU software are licensed under the [[GNU General Public License]] 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."<ref>{{ cite web | url = http://kde.sw.com.sg/food/linus.html | title = Linus Torvalds interview | accessdate = 2006-05-08 }}</ref> 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 Intellectual Property laws, especially Software Patents.  Linus Torvalds has publicly stated he would not move the Linux kernel to GPL v.3. Torvalds opposes in particular certain [[Digital Rights Management]] exclusions in the GPL v3.
 
=== The Linux trademark ===
 
In the United States, the name ''Linux'' is a [[trademark]] registered to Linus Torvalds.<ref>{{ cite web | url = http://assignments.uspto.gov/assignments/q?db=tm&rno=1916230 | title = U.S. Reg No: 1916230 | publisher = United States Patent and Trademark Office | accessdate = 2006-04-01 }}</ref> 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.<ref>{{cite web | url = http://www.linuxjournal.com/article/9065 | title = Linux Timeline | publisher = Linux Journal | date = [[31 May]] [[2006]] }}</ref> 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.<ref>{{ cite web | url = http://www.infoworld.com/article/05/09/05/36OPopenent_1.html | title = Linus gets tough on Linux trademark | accessdate = 2006-09-04 | date = 2005-09-05 }}</ref>
 
== See also ==
{{portalpar|Free software|Floss draft.png}}
 
* [[List of Linux distributions]]
* [[Comparison of Linux distributions]]
* [[The Cathedral and the Bazaar]]
* [[Total cost of ownership]]
* [[DistroWatch]]
* [[:Category: Linux software|Linux software]]
 
== References ==
 
<div class="references-small">
* {{cite book|first=Linus, and David Diamond|last=Torvalds|title=[[Just for Fun|Just for Fun: The Story of an Accidental Revolutionary]]|publisher=Harper-Collins Business|ISBN=}}
* {{cite book|first=Glyn|last=Moody|title=Rebel Code: Linux and the Open Source Revolution|publisher=Perseus Publishing|id=ISBN 0-7139-9520-3}}
* {{cite web|first=R|last=Gedda|date=2004|url=http://www.linuxworld.com.au/index.php?id=568003838&fp=16&fpid=0|title=Linux breaks desktop barrier in 2004: Torvalds|accessdate=2004-01-16}}
* {{cite web|first=K|last=Mackenzie|url=http://australianit.news.com.au/articles/0,7204,8407881%5E15841%5E%5Enbv%5E,00.html|title=Linux Torvalds Q&A|date=2004|accessdate=2004-01-19}}
* {{cite web|first=Thomas C|last=Greene|url=http://www.theregister.co.uk/2001/12/18/mandrake_8_1_easier_than/|title=Mandrake 8.1 easier than Win-XP|publisher=The Register|accessdate=2005-12-22}}
</div>
{{reflist|2}}
 
== External links ==
{{Sisterlinks|Linux}}
 
* [http://www.linux.org/ Linux.org] — contains comprehensive information and resources about Linux.
* [http://www.kernel.org/ Kernel.org] — Linux kernel web site
* [http://www.tldp.org/ The Linux Documentation Project] — [[HOWTO]]s, [[FAQ]]s and other guides.
* [http://www.gnu.org/ GNU.org] — The GNU Project web site
* [http://www.fsf.org/ FSF.org] — The Free Software Foundation web site
* [http://www.linuxlinks.com/ LinuxLinks.com] - The Linux Portal site
*[http://www.computerworld.com/action/article.do?command=viewArticleBasic&taxonomyName=linux&articleId=9008738&taxonomyId=122&intsrc=kc_top    Two major Linux groups to merge] Jan, 2007
*[http://www.ibtimes.com/articles/20070122/linux-foudation-merger-windows-microsoft.htm Linux Community Unites to Fight Microsoft] Jan, 2007
{{unix-like}}
{{linux-distro}}
 
[[Category:Computing platforms]]
[[Category:Linux|*]]
[[Category:Free software]]

Latest revision as of 12: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).