User Tools

Site Tools


handbook:handbook:linux

Linux

Linux is a computer operating system and its kernel. It is one of the most famous examples of free software and of open-source development: unlike other major operating systems (such as Windows or Mac OS), all of its underlying source code is available to the public and anyone can freely use, modify, and redistribute it.

The term Linux strictly refers to the Linux kernel, but 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. Linux distributions often bundle large quantities of software with the core system, and over 300 distributions are available .

Initially, Linux was primarily developed and used by individual enthusiasts. Since then, Linux has gained the support of major corporations such as IBM, Hewlett-Packard and Novell for use in servers and is beginning to make inroads into the desktop market. Proponents and analysts attribute this success to its vendor independence, low cost, security, and reliability.

Linux was originally developed for Intel 386 microprocessors and now supports a variety of computer architectures. It is deployed in applications ranging from personal computers to supercomputers and personal video recorders and mobile phones such as embedded systems

History

The Linux kernel was initially written as a hobby by Finnish university student Linus

Linus Torvalds while attending the University of Helsinki. Torvalds originally used Minix on his computer, a simplified kernel written by Andrew Tanenbaum for teaching operating system design. However, Tanenbaum did not support extensions to his operating system, leading Torvalds to write a replacement for Minix. Linux started out as a terminal emulator written in Intel 80386 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 write and read files to disk, this task-switching terminal emulator was extended with an entire filesystem handler, and after that gradually evolved into an entire operating system targeted at POSIX-compliance. Linus implemented enough POSIX system calls to make Linux run the Bash shell and after this bootstrapping procedure the development rapidly sped up. Although a running Minix system was originally necessary in order to configure, compile, install and run Linux, the Linux system quickly surpassed Minix in functionality and was soon able to boot on its own and compile its own source code.

Linus Torvalds, creator of the Linux kernel

The first version of the Linux kernel was released to the Internet in September 1991, with the second version following shortly thereafter in October . Since then, thousands of developers 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.

The history of the Linux kernel is closely tied to that of GNU, a prominent free-software project led by Richard Stallman. The GNU project was announced in 1983 for the purpose of developing a complete Unix-like operating system, including software development tools and user application programs, composed entirely of free software. By the release of the first version of the Linux kernel, the GNU project had produced all the necessary components of this system except the kernel. Torvalds and other early Linux-kernel developers adapted their kernel to work with the GNU components and user space programs to create a fully functional operating system. The Linux kernel and operating system are licensed under the GNU General Public License (GPL) which requires that all source code modifications and derived works also be licensed under the GPL, which is generally referred to as a “share and share-alike” license. In 1997 Linus Torvalds stated, “Making Linux GPL'd was definitely the best thing I ever did.”

Tux the penguin is the logo and mascot of Linux (though there are other less common representations; see OS-tan). The name “Linux” was coined, not by Torvalds, but by Ari Lemmke, administrator at ftp.funet.fi, who named the FTP directory from which it was first available . The Linux trademark (SN: 1916230) is owned by Linus Torvalds, registered for “Computer operating Linux Mark Institutesystem software to facilitate computer use and operation.”

Pronunciation

In 1992, Torvalds explained : “'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 /linəks/” also exists . Note that in English, “Linux” and “Minix” are usually pronounced with a short /I/ sound that is different from Torvalds's Finland-Swedish pronunciation of these words.

Linux and GNU/Linux

Because the GNU libraries and programs, an essential part of nearly all Linux distributions, stem from a long-standing free operating system , 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. Although some distributions do use this name — most notably Debian GNU/Linux — most 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.

Litigation

In March 2003, the SCO Group (SCO) filed a lawsuit against IBM claiming that IBM had contributed portions of SCO's copyrighted code to the 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 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.

Distributions

Linux is dominantly used as part of a Linux distribution (distro). These are compiled by individuals, loose-knit teams, and various professional. These are compiled by individuals, loose-knit teams, and various professional organizations. They include any number of 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 of which deliberately include only free software.

A typical general-purpose distribution includes the Linux kernel, the GNU libraries and tools, command-line shells, and thousands of text editors, compilers to X Window System and the graphical office suitesapplication software packages, from , and scientific tools.

Development efforts

The bootable image of the Linux kernel itself is written entirely in the version of the C programming language supported by the GNU GCCcompiler (which supports a “superset” of standard C), together with relatively short sections of code written in the assembly language of the compiler (which supports a “superset” of standard C), together with relatively short sections of code written in the assembly language of the target architecture (and at last count Linux supported about 20 different processor families). Because of the extensions to 'C' supported by the GCC compiler it was (in conjunction with its associated toolset) for long the only compiler capable of correctly building a Linux kernel. More recently Intel claims to have modified its 'C' compiler so that it also is capable of creating a Linux kernel.

Many other languages are used in some way, primarily in connection with the kernel 'build' process (the methods whereby the bootable image is created from the sources). These include Perl, Python, and various shell scripting languages. Some closed source drivers may also be written in C++, Fortran, or other languages.

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 provided 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.

Applications

In the past, a user needed significant knowledge of computers in order to install and configure

In the past, a user needed significant knowledge of computers in order to install and configure Linux. For this reason and, 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, often 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 Desktop Enlarge A KDE Desktop

Linux 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.

Linux is also often used in embedded systems. Its low cost makes it particularly useful in set-top boxes and for such devices as the Simputer, a computer aimed especially at low-income populations in developing nations. In mobile phones, it is an alternative to the Symbian OS software in the cell-phone market. In handheld devices, it is an alternative to the Windows CE and Palm OS operating systems. The popular TiVo PVR also uses a customized version of Linux. A large number of network firewalls and routers, including several from Linksys, use Linux internally, taking advantage of its advanced firewalling and routing capabilities. Linux is increasingly common as an operating system for supercomputers, most recently on 64-bit AMD Opterons in the Cray XD1.

Linux is rapidly gaining popularity as a desktop operating system. In desktop environments like KDE and GNOME, Linux may be used with a user interface that is similar to that of Mac OS or Microsoft Windows in addition to other desktop environments and to its traditional Unix-like command line interface. Graphical Linux software exists for almost any area and in some areas there is a greater breadth and quantity of software available than for proprietary operating systems.

Usability and market share

Once viewed as an operating system only computer geeks could use, Linux has become a user-friendly system with many graphical system with many graphical interfaces and applications.

Its market share for desktops is rapidly growing. According to market research company IDC, 25% of servers and 2.8% of desktop computers were already running Linux in 2002. 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 .

Linux and other free software projects have been frequently criticized for not going far enough in terms of ensuring usability, and the question of Linux's usability compared with Windows or the Macintosh remained hotly debated. For those only familiar with Windows or Mac OS, Linux may be perceived difficult at first because many tasks do not work identically. It was also easier to find local technical support for Windows or Mac OS than for Linux in some places.

However, in comparison to operating systems with a homogenous user interface such as Windows or Mac OS X, it is difficult to measure the usability as the ease-of-use and target group varies from distribution to distribution. For example, Gentoo Linux, a source-based distribution, remains notoriously difficult to install for beginners but remains the distro of choice for many advanced Linux users. Many advanced users find Gentoo more “usable” in comparison due to the relative freedom that the nature of the distro allows, in comparison to a more Windows-like distro such as Mandriva. Beginners, on the other hand, find that the freedom that Gentoo Linux offers renders simple tasks far too complicated, limiting the distro's usability. A more beginner-friendly distro, such as Mandriva or Linspire, offers a more guided approach, making it more “usable” in the eyes of beginners, but is perceived by many advanced users as being bloatware, being filled with too much software rendering it slow and unstable.

Users might have to switch application software, and equivalents of some specific programs may not be available or there may be fewer options, as there are for computer games. However, general applications like spreadsheets, wordprocessors, and browsers are available for Linux in profusion, and, because of free distribution, a user may choose what suits him.

Most distributions of Linux have two or more means of installation of software 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 come with Windows pre-installed, there has been initially a slow 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 become familiar with it.

Support for certain new and obscure hardware remains an issue. Though reputable vendors provide device drivers, some available 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 still remain secretive and refuse to provide 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 by IDC have argued that Linux had a higher total cost of ownership (TCO) than Windows. However, Relevantive, the renowned Berlin-based organization specializing in consulting 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 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, including market share and reliability, with many studies specifically examining Linux.

handbook/handbook/linux.txt · Last modified: 2010/04/15 21:18 (external edit)