Tux is the official Linux mascot
Linux is a computer operating system and its kernel. It is one of the most prominent examples of free software and of open-source development: unlike proprietary operating systems such as Windows and Mac OS, all of its underlying source code is available to the public for anyone to freely use, modify, improve, and redistribute.
In the narrowest sense, the term Linux refers to the Linux kernel, but it is commonly used to describe entire Unix-like operating systems (also known as GNU/Linux) that are based on the Linux kernel combined with libraries and tools from the GNU Project and other sources. Most broadly, a Linux distribution bundles large quantities of application software with the core system, and provides more user-friendly installation and upgrades.
Initially, Linux was primarily developed and used by individual enthusiasts. Since then, Linux has gained the support of major corporations such as IBM, Sun Microsystems, Hewlett-Packard, and Novell for use in servers and is gaining popularity in the desktop market. Proponents and analysts attribute this success to its vendor independence (the opposite of vendor lock-in), low cost, security, and reliability.
Linux was originally developed for Intel 386 microprocessors and now supports all popular computer architectures (and several obscure ones). It is deployed in applications ranging from embedded systems (such as mobile phones and personal video recorders) to personal computers to supercomputers.
Richard Stallman, founder of the GNU project for a free operating system.In 1983, Richard Stallman founded the GNU project, which today provides an essential part of most Linux systems (see also GNU/Linux, below). The goal of GNU was to develop a complete Unix-like operating system composed entirely of free software. By the beginning of the 1990s, GNU had produced or collected nearly all of the necessary components of this system—libraries, compilers, text editors, a Unix-like shell, and other software—except for the lowest level, the kernel. The GNU project began developing their own kernel, the Hurd, in 1990 (after an abandoned attempt called Trix). According to Thomas Bushnell, the initial Hurd architect, their early plan was to adapt the BSD 4.4-Lite kernel and, in hindsight, "It is now perfectly obvious to me that this would have succeeded splendidly and the world would be a very different place today". However, due to a lack of cooperation from the Berkeley programmers, Stallman decided instead to use the Mach microkernel, which subsequently proved unexpectedly difficult, and the Hurd's development proceeded slowly.
Linus Torvalds, creator of the Linux kernel.Meanwhile, in 1991, another kernel — eventually dubbed "Linux" — was begun as a hobby by Finnish university student Linus Torvalds while attending the University of Helsinki. Torvalds originally used Minix, a simplified Unix-like system written by Andrew Tanenbaum for teaching operating system design. However, Tanenbaum did not permit others to extend his operating system, leading Torvalds to develop a replacement for Minix. Linux started out as a terminal emulator written in IA-32 assembler and C, which was compiled into binary form and booted from a floppy disk so that it would run outside of any operating system. The terminal emulator was running two threads: one for sending and one for receiving characters from the serial port. When Linus needed to read and write files to disk, this task-switching terminal emulator was extended with an entire filesystem handler. After that, it gradually evolved into an entire operating system kernel intended as a foundation for POSIX-compliant systems. The first version of the Linux kernel (0.01) was released to the Internet on September 17, 1991, with the second version following shortly thereafter in October. Since then, thousands of developers from around the world have participated in the project. Eric S. Raymond's essay The Cathedral and the Bazaar discusses the development model of the Linux kernel and similar software.
By the 0.01 release, Linus had implemented enough POSIX system calls to make Linux run the GNU Bash shell; after this bootstrapping procedure, development accelerated rapidly. A computer running Minix was originally necessary in order to configure, compile, and install Linux. Initial versions of Linux also required an operating system to be present in order to boot from a hard disk, but soon there were independent bootloaders, the most well known being lilo. The Linux system quickly surpassed Minix in functionality; Torvalds and other early Linux kernel developers adapted their kernel to work with the GNU components and user-space programs to create a complete, fully functional, free operating system.
Today, Torvalds continues to direct the development of the kernel, while other subsystems such as the GNU components are developed separately. The task of producing an integrated system, which combines all of these basic components along with graphical interfaces (such as GNOME or KDE, which in turn are based on the X Window System) and application software, is now performed by Linux distribution vendors / organizations.
Tux the penguin is the logo and mascot of Linux (although there are other, less common representations,such as theOS-tan), based on an image created by Larry Ewing in 1996.
The name "Linux" was coined, not by Torvalds, but by Ari Lemmke. Lemmke was working for the Helsinki University of Technology (TKK), located in Espoo near Helsinki, as an administrator of ftp.funet.fi, an FTP server which belongs to the Finnish University and Research Network (FUNET), which has numerous organizations as its members, amongst them the TKK and the University of Helsinki. He was the one to invent the name Linux for the directory from which Torvalds' project was first available for download. (The name Linux was derived from Linus' Minix.) The name was later trademarked (see below). Originally, Linus was going to call it Freax for "free" and with the often-used X in the names of Unix-like systems.
The Linux kernel, along with most of the GNU components, is licensed under the GNU General Public License (GPL) version 2 (not or later). The GPL requires that all source code modifications and derived works also be licensed under the GPL, and is sometimes referred to as a "share and share-alike" (or copyleft) license. In 1997, Linus Torvalds stated, "Making Linux GPL'd was definitely the best thing I ever did." Other subsystems use other licenses, although all of them share the property of being free/open-source; for example, several libraries use the LGPL (a more-permissive variant of the GPL), and the X Window System uses the permissive (non-copyleft) MIT License.
The Linux trademark (U.S. Reg No: 1916230) is owned by Linus Torvalds, registered for "Computer operating system software to facilitate computer use and operation." The licensing of the trademark is now handled by the Linux Mark Institute (LMI). LMI has also sought to enforce the Linux trademark in countries other than the US. In September 2005, Intellectual Property Australia, the trademark regulator in Australia, rejected an application to trademark Linux.
Linux is most commonly pronounced either to rhyme with minix, or to sound like lie nix. The first pronunciation is considered more correct, while the second has become popular for sounding more natural in English. Other variations are also possible, but less frequently heard.
In 1992, Torvalds explained (IPA pronunciations added to quote in braces):
"'li' is pronounced with a short [ee] sound: compare prInt, mInImal etc. 'nux' is also short, non-diphthong, 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." An audio file of Torvalds saying "Hello, this is Linus Torvalds, and I pronounce Linux as /liniks/" also exists. Note that in English, "Linux" and "Minix" are usually pronounced with a short /i/ sound that is different from Torvalds's phonemically Finland-Swedish pronunciation of these words (which is somewhere between what would be considered short and long in English).
Linux and GNU/Linux
For more details on this topic, see GNU/Linux naming controversy. Because the GNU libraries and programs, an essential part of nearly all Linux distributions, stem from a long-standing free operating system project that predates the Linux kernel, Richard Stallman and the Free Software Foundation ask that the combined system (regardless of distribution) be referred to as GNU/Linux or a Linux-based GNU system. Torvalds, the creator of the Linux kernel, has said that he finds calling Linux in general GNU/Linux "just ridiculous." Still, some distributions do use this name — notably Debian GNU/Linux — while most people simply refer to the system as Linux. The distinction between Torvalds' kernel and entire Linux-based systems that contain the kernel is a perennial source of confusion, and the naming remains controversial.
For more details on this topic, see SCO-Linux controversies. In March 2003, the SCO Group (SCO) filed a lawsuit against IBM claiming that IBM had contributed some 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 Novell, DaimlerChrysler (partially dismissed in July, 2004), and AutoZone, and by Red Hat and others against SCO.
To date, no proof of SCO's claims of copied code in Linux has been provided and SCO's claims have varied widely. A few of Novell's press releases seem to demonstrate serious problems with SCO's claims:
2003-May-15 Novell Statement on SCO Contract Amendment (good news for Linux users) 2003-May-28 Novell Challenges SCO Position, Reiterates Support for Linux 2003-May-30 Novell Statement re: SCO press conference allegations 2003-Jun-06 Novell Statement on SCO Contract Amendment 2003-Nov-18 Novell Statement on SCO claims regarding a non-compete clause in Novell-SCO contracts The most comprehensive coverage of this suit is given by Groklaw.
For more details on this topic, see Linux distribution. Linux is predominantly used as part of a Linux distribution (commonly called a 'distro'). These are compiled by individuals, loose-knit teams, and various professional organizations. They include additional system software and application programs, as well as certain processes to install these systems on a computer. Distributions are created for many different purposes, including localization, architecture support, real-time applications, and embedded systems, and many deliberately include only free software. Over 450 distributions are available.
A typical general-purpose distribution includes the Linux kernel, some GNU libraries and tools, command-line shells, and thousands of application software packages, from office suites and the graphical X Window System to compilers, text editors, and scientific tools. A variety of Linux distribution screenshots can be viewed here.
More Than a Gigabuck: Estimating GNU/Linux's Size, a study of Red Hat Linux 7.1, found that this particular distribution contained 30 million source lines of code (SLOC). The Linux kernel contained 2.4 million lines of code, or 8% of the total. Using the Constructive Cost Model (COCOMO), the study estimated that this distribution required about eight thousand person-years of development time. Had all this software been developed by conventional proprietary means, it would have cost 1.08 billion dollars (year 2000 dollars) to develop in the United States. Slightly over half of the code in that distribution was licensed under the GPL.
In a later study, Counting potatoes: the size of Debian 2.2, the same analysis was performed for Debian GNU/Linux version 2.2. This distribution contained over fifty-five million source lines of code, and the study estimated that it would have cost 1.9 billion dollars (year 2000 dollars) to develop by conventional proprietary means.
The source code for the Linux kernel used to be maintained using the software application called BitKeeper but, partly because a license dispute, it is now maintained via Git, the new directory content manager created by Linus Torvalds himself.
A GNOME DesktopIn the past, a user needed significant knowledge of computers in order to install and configure Linux. Because of this, and because of being attracted by access to the internals of the system, Linux users have traditionally tended to be more technologically oriented than users of Microsoft Windows and Mac OS, sometimes revelling in the tag of "hacker" or "geek".
This stereotype has been dispelled in recent years by the increased user-friendliness and broad adoption of many Linux distributions. Linux has made considerable gains in server and special-purpose markets, such as image rendering and Web services, and is now making inroads into the high volume desktop market.
A KDE DesktopLinux is the cornerstone of the so-called LAMP server-software combination (Linux, Apache, MySQL, Perl/PHP/Python) that has achieved widespread popularity among Web developers, making it one of the most common platforms on the Web. A prominent example of this software combination in use is MediaWiki — the software primarily written for Wikipedia. Additionally, Linux has a plethora of database software such as MySQL, Sybase ASE (linux application) , mSQL and others.
The multi-billion dollar video game industry will see widespread Linux use with the 2006 launch of the Sony PlayStation 3 video game console which will run Linux out of the box. Sony has previously released a PS2 Linux kit for their PlayStation 2 video game console.
Linux is also often used in embedded systems. Its low cost makes it particularly useful in set-top boxes and for devices such as the Simputer, a computer aimed mainly at low-income populations in developing nations. In mobile phones, Linux has become a major competitor to the proprietory Symbian OS software. In handheld devices, it is an increasingly popular alternative to the Windows CE and Palm OS operating systems. The popular TiVo digital video recorder also uses a customized version of Linux. A large number of network firewalls and routers, including several from Linksys and Netgear, use Linux internally, taking advantage of its advanced firewalling and routing capabilities. The TomTom satellite navigation system also uses an embedded version of the Linux kernel. Linux is also expanding into telecommunications equipment through efforts such as Carrier Grade Linux.
Linux is increasingly common as an operating system for supercomputers, most recently on 64-bit AMD Opterons in the Cray XD1. As of June 2005, the 3 fastest supercomputers in the world (as recorded by the Top500) run Linux.
Linux is rapidly gaining popularity as a desktop operating system. In desktop environments like GNOME and KDE, Linux may be used with a user interface that is similar to that of Mac OS, Microsoft Windows, or other desktop environments, and its traditional Unix-like command line interface. Graphical Linux software exists for almost any area and in some areas there is a greater quality and quantity of software available than for proprietary operating systems.
Usability and market share
Once viewed as an operating system only computer professionals and aficionados could use, Linux distributions have become user-friendly, with many graphical interfaces and applications.
Its market share of desktops is rapidly growing. According to market research company IDC, in 2002, only 25% of servers and 2.8% of desktop computers were already running Linux. However, argued advantages of Linux, such as lower cost, fewer security vulnerabilities  , and lack of vendor lock-in, have spurred a growing number of high-profile cases of mass adoption of Linux by corporations and governments. The Linux market is among the fastest growing and is projected to exceed $35.7 billion by 2008 (this statistic is not comparable to capitalised operating systems like Windows - since Linux is free to use).
Linux and other free software projects have been frequently criticized for not going far enough in terms of ensuring usability, and Linux was once considered more difficult to use than Windows or the Macintosh, although this has changed. Applications running within graphical desktop environments such as GNOME and KDE in Linux are very similar to those running on other operating systems. While some very specific application may not be available for Linux, there usually exists a replacement, often of better quality. A growing number of proprietary software vendors are supporting Linux, and open source development for Linux is also steadily increasing. Additionally, proprietary software for other operating systems may be run through compatibility layers, such as Wine. The area of hardware and services configuration is where user experience is most varied. GUI configuration tools and control panels are available for many system settings and services, but editing of plain-text configuration files is often required. On the command shell, many usability hangups from early Unix days generally remain, such as the difficulty in finding some commands, and the inability to undo many operations such as file deletion. Many older programs with text user interfaces (TUI) have wild inconsistencies between them, but they maintain loyal followings.
It used to be easier to find local technical support for Windows or Mac OS than for Linux in some places but with local Linux User Groups or LUGs appearing everywhere this has changed. It is worth noting that an operating system's usability is subjective and dependent on the background knowledge and needs of its users. For example, Gentoo Linux, a source-based distribution, is time-consuming to install, but can be more usable for advanced users than stereotypical beginner-friendly distributions, such as Mandriva or Ubuntu.
Users might have to switch application software, and there may be fewer options, as in the case of computer games. Equivalents of some specific programs may not be available. However, general applications like spreadsheets, word processors, and browsers are available for Linux in profusion.
Most distributions of Linux have two or more means of software installation, and more office and end-user applications now come with an automated installation program. Because of reluctance to change and the fact that many computers still come with Microsoft Windows pre-installed, there has been a slow initial adoption of new desktop operating systems. Linux is past that stage now, with numerous manufacturers installing Linux and many organizations having five or more years experience with Linux - since installation evolved to graphical user interfaces - or Unix, which has been around for decades. Linux is rapidly gaining popularity as a desktop operating system as it is increasingly used in schools and workplaces and more people are becoming familiar with it.
Support for certain new and obscure hardware remains an issue. Though some vendors provide device drivers, many device drivers must be developed by volunteers after the release of the product. Often, this development requires reverse engineering of some sort, as certain manufacturers remain secretive and refuse to provide the hardware or firmware specifications for their products. Deliberately non-portable hardware drivers like Winmodems and Winprinters have been a general problem.
There have been conflicting studies of Linux's usability and cost in the past. Microsoft-sponsored studies such as those by IDC and Gartner have argued that Linux had a higher total cost of ownership (TCO) than Windows. However, Relevantive, the renowned Berlin-based organization specializing in providing consultation to companies on the usability of software and Web services, concluded that the usability of Linux for a set of desktop-related tasks is "equal to Windows XP." Since then, there have been numerous independent studies and articles that show that a modern Linux desktop using Gnome or KDE is on par with or superior to Microsoft Windows.
Linux distributions have been criticized for unpredictable development schedules, thus making enterprise users less comfortable with Linux than they might be with other systems (Marcinkowski, 2003). However, some observers claim that the intervals between Linux distribution releases are no worse, and often better, than the project management "schedule slipping" that occurs with other operating systems and with software systems in general. The large number of choices of Linux distributions can also confuse users and software vendors.
The paper Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers! identifies many quantitative studies of open source software, on topics including market share and reliability, with many studies specifically examining Linux.
Wikibooks has more about this subject: Installing LinuxIn the past, difficulty of installation was a barrier to wide adoption of Linux-based systems, but the process has been made easy in recent years. Many distributions are at least as easy to install as a comparable version of Windows. It is unnecessary to file license numbers and enter them during installation. Also it is not normally necessary to feed a stack of driver CDs into a Linux installation as most hardware is supported out of the box. Further, personal computers that come with Linux distributions already installed are readily available from numerous vendors, including large mainstream vendors like Hewlett-Packard and Dell.
The most common method of installing Linux, supported by all major distributions, is by booting from a CD 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, or can be obtained as part of a box set that may also include manuals and additional commercial software.
Some distributions, such as Debian, can be installed from a small set of floppy disks. After a basic system is installed, more software can be added by downloading it from the Internet or using CDs.
Other distributions, such as Knoppix, can be run directly from a "live CD" running entirely in RAM, rather than installing it to the hard drive. With this, one boots from the CD and can use Linux without making any modification to the contents of the hard drive. Similarly, some minimal distributions, such as tomsrtbt, can be run directly from as little as 1 floppy disk without needing to change the hard drive contents.
Still another mode of installation of Linux is to install on a powerful computer to use as a server and to use ordinary less powerful machines (perhaps without hard drives, and having less memory and slower CPUs) as thin clients over the network. Clients can boot over the network from the server and display results and pass information to the server where all the applications run. A Linux Terminal Server is a single machine to which many clients can connect this way, so one obtains the benefit of installing Linux on many machines for the cost of installing on one. The clients can be ordinary PCs with the addition of the network bootloader on a drive or network interface controller. Variations on this mode include using local drives and computing power to run applications. The cost savings achieved by using thin clients can be invested in greater computing power or storage on the server.
Many distributions also support booting over a network, so an installation on a properly configured machine can be done remotely.
Anaconda, one of the more popular installers, is used by Red Hat Linux, Fedora Core and other distributions to simplify the installation process. It is famous for its ability to automatically partition a hard drive using the Disk Druid utility.
Installation on an existing platform
Many distribution companies now are sparing no effort to provide users with advanced, easy and specific installations. Some beginners (especially those familiar with Microsoft Windows and Mac OS) may still feel that making the shift can be hard but many solutions have been created to solve this problem.
Some let the user install Linux on top of their current system. Consider WinLinux, for example. After downloading the installer (more than 100MB), the user can install Linux just like any other Windows application. The software provides all the needed features; it is a real Linux distribution. The difference is that it is not necessary for the user to leave Windows, since Linux is installed to the Windows hard-disk partition. A Linux boot loader will boot the Linux system when the PC is restarted and the user chooses to boot Linux. Similar approaches include coLinux.
Technology of virtual machines (such as Virtual PC or VMware) also enables Linux to be run inside another OS such as Microsoft Windows. The virtual machine software will simulate an isolated environment onto which the Linux system is installed. After everything is done, the virtual machine can be booted just as if it were an independent computer.
The difficulty in quickly demonstrating Linux on the computer of a potential new user remains still an obstacle, slowing its adoption as a personal computing platform. So-called "live CDs" that simply boot from CD and automatically load the necessary drivers for the user's respective system promise to change that. Linux User Groups, or LUGs, still provide the primary face-to-face forum for demonstration of Linux. Commercial exhibitions provide Linux demonstrations to potential new users, especially corporate buyers. Many commercial distributions are hard to install, but with work, allow someone to re-use an old machine to see what the Linux desktop is like. The approach by Knoppix, which runs Linux directly from a CD without disturbing the PC's hard drive, is probably the most successful demonstration tool to date. MEPIS also runs from CD like Knoppix, and both can be installed onto a PC like any other Linux distribution. Ubuntu have a separate "Live" version of their distribution which runs from CD. However, the fastest approach is probably that of Workspot, which uses VNC to provide a free Linux desktop demo online.
Configuration of most system wide settings are stored in a single directory called /etc, while user-specific settings are stored in hidden files in the user's home directory. A few programs use a configuration database instead of files.
There are a number of ways to change these settings. The easiest way to do this is by using tools provided by distributions such as Debian's debconf, Mandriva's Control Center, or SUSE's YaST. Others, like Linuxconf, Gnome System Tools, and Webmin, are not distribution-specific. There are also many command line utilities for configuring programs. Since nearly all settings are stored in ordinary text files they can be configured by any text editor.
Running Windows applications
There are several ways to run applications written for Microsoft Windows on Linux, with varying levels of success. The popular Wine software, along with the commercial derivatives Crossover Office and Transgaming's Cedega create an application compatibility layer by reimplementing the Windows API inside of Linux. Many Windows programs run on Linux at approximately the same speed using these programs, and in some cases run even faster. Since these programs are written without use of any Microsoft code, they do not require a Windows license. Although compatibility is improving, in many cases week-by-week, applications that make use of non-standard programming practices can experience problems.
A similar alternative to running Windows applications inside Linux is to use the proprietary Win4Lin software, which converts Microsoft's version of the Windows API to run inside Linux rather than reimplementing it from scratch. Since a legal copy of the Microsoft implementation of the Windows API is needed, use of Win4Lin requires a copy of Windows.
A third alternative for running Windows applications within Linux is to use a virtual machine program and run the desired application along with the entire virtual Windows operating system. VMware is a proprietary hardware virtualisation program that can run Windows in this way with near-perfect functionality, however this approach can carry a considerable speed and performance penalty. Full CPU emulators (such as QEMU or the slower counterpart Bochs) can be used, though to run a Windows program these emulators will also require a copy of Windows. Aside from the performance difficulties, virtual machine approaches to running Windows applications cannot integrate Windows programs into the Linux desktop, as they must instead run inside the virtual Windows desktop.
A fourth alternative is to run the applications on a Windows machine but use remote access software such as VNC to view it on the Linux desktop. This is a good solution where applications are unable to be migrated, or an item of hardware such as a dongle, custom decoder card, or some USB devices will only run under Windows. At its simplest one or more people needing occasional access to Windows applications can share remote access to a single Windows PC for that purpose using VNC. In a corporate setting essentially the same can be done using a Citrix server, rdesktop to access a Microsoft Terminal Services server, or with NX technology.
Programming on Linux
A number of compilers are available for Linux.
The GNU Compiler Collection (GCC) comes with the vast majority of distributions. GCC supports C, C++ and Java (for example by using GCJ) among other languages.
There are also a number of IDEs available for Linux. Some of the most popular are Anjuta, Code::Blocks, KDevelop, NetBeans IDE, Glade (actually a user interface designer), Eclipse, the famous Emacs and Vim.
Another option for linux programming is writing shell scripts. These are applications that are written without the need for compilation of the code. They are interpreted line-by-line as commands entered in the shell.
Linux also integrates well with Python, Perl, PHP and Ruby.
Portability of Linux
As originally envisioned by Linus Torvalds, Linux was strictly an x86 application. But eventually, people started trying to port it to other platforms, and now Linux is available on many CPU architectures, among them:
Intel/AMD x86 (the "normal PC") Both AMD and Intel versions of "64-bit x86" ARM (handhelds, embedded systems) Alpha Motorola 68K (Sun3, Amiga, Atari, early Mac, Apollo……) MIPS (DECstation, SGI Indy……) PA-RISC (HP workstations) PowerPC (Macintosh) IBM System/390 SuperH (Sega Dreamcast) Sparc (Sun4) Complete distributions exist for most of these architectures, but most distributions focus on the "Intel" PC market.
Technical support is provided by commercial suppliers and by other Linux users, usually in online forums, newsgroups and mailing lists. GNU/Linux users are often organised in so called Linux User Groups or abbreviated LUG.
The business model of commercial suppliers is generally dependent on charging for support, especially for business users. Companies, which offer a special business version of their distribution, add special support packages and special tools to administrate higher numbers of installations or do administrative tasks more easily.