Linux is an operating system. It is one of the variations on the Unix theme.
(Is Linux a Unix system? That depends on your definition of Unix. For the user there is no doubt: Linux is a Unix. Maybe the lawyer has doubts: who owns the trademark Unix today? There is a point where Linux differs from other Unices: the source base of the kernel was developed from scratch, not as a continuation of original Bell Labs work.)
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Date: 25 Aug 91 20:57:08 GMT Hello everybody out there using minix - 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 (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
Linus Torvalds, a student in Helsinki, started a small operating system in 1991.
The guiding line when implementing linux was: get it working fast. I wanted the kernel simple, yet powerful enough to run most unix software.
The Linux kernel source grew superlinearly at first, then growth became roughly linear at about 60000 lines/month. Now things seem to be speeding up again.
|
![]() |
The goal: running most Unix software, was reached already in 0.99.
About half of the current source is I/O subsystem and device drivers. About one-fifth is architecture-specific code.
Before Unix, most operating systems were written in assembler (Multics was written in PL/I but required special hardware), and the quick rise of Unix was greatly helped by the fact that most of it is written in C, so that porting to new hardware platforms was easy. The Microsoft world is mostly tied to the i386 platform. (I think there has been a Windows NT for the DEC Alpha, but it has been abandoned.) Linux, like Unix, is easily ported. The standard tree has code for more than twenty platforms:
alpha | DEC Alpha AXP (now Compaq). See alphalinux. |
arm | Machines based on one of the many types of ARM microprocessor (ARM, StrongARM, Xscale). A well known example is the Acorn. There is a list with more than two hundred machine types. |
arm26 | ARM processors with 26 bit address space. |
avr32 | Atmel AVR32 is a 32-bit RISC microprocessor architecture. See avr32linux. |
blackfin | Microprocessor from Analog Devices. See blackfin.uclinux.org. |
cris | The Axis Communications ETRAX 100LX embedded network CPU. |
frv | Fujitsu FR-V CPU. |
h8300 | H8/300. See Renesas. |
i386 | Intel 386 compatible (Intel, AMD, Cyrix, etc.) computers. |
ia64 | Intel Itanium. See linuxia64. |
m68k | Motorola 680x0 based computers such as Amiga, Atari, many Apple Macintosh models, the Next, Sun3 etc. See linux-m68k. |
m68knommu | Motorola 68k based computers without memory management unit. Mostly for embedded use. |
mips, mips64 | Silicon Graphics MIPS processors, from embedded systems to large machines. For example, Silicon Graphics Indy and O2, Cobalt Qube, DECstation 2100 and 5000, Sony Playstation. See oss.sgi/mips. |
parisc | HP's PA-RISC workstations. |
ppc | Motorola/IBM Power PC. See penguinppc. |
ppc64 | IBM iSeries (earlier AS/400) and pSeries. |
s390, s390x | IBM System/390 mainframes. See linux390. |
sh | Hitachi SuperH. |
sparc | Sun SPARC. |
sparc64 | Sun UltraSPARC. See ultralinux. |
um | User Mode Linux (Linux in a Linux box). |
v850 | NEC V850E. |
x86_64 | AMD Hammer/Opteron. |
Several other ports are maintained separately.
Examples The Sharp Zaurus PDA runs Linux 2.4 on a StrongARM processor.
The Motorola A760 Linux/Java-based smartphone runs Linux 2.4 (Montavista CEE 3.0) on a Motorola (ARM-based) i.MX microprocessor.
The Linksys WRT54G wireless router runs Linux 2.4.5 on a MIPS processor. One can upload new firmware to get a custom Linux machine. A very nice toy.
To start with: Linus Torvalds. The CREDITS file for 1.0.0 mentions 80 people. The CREDITS file for 2.6.0 mentions 447 people. Many others have contributed.
Nobody knows how many users there are. Current estimates are somewhere between 15 and 30 million. As a percentage: between 1% and 2% of the desktop users.
Maybe 30% of the web servers. (See Netcraft for the status of Apache. Roughly half of the Apache machines use Linux.)
Maybe 15% of the part of the embedded system market where a real operating system is required. (The contenders are mostly Symbian, PalmOS, Linux and Windows Mobile. All industry prefers to avoid a dependence on Microsoft. So far, Symbian is more popular than Linux. Motorola and China are pushing Linux. See, for example, eweek)
The IBM BlueGene/L Linux cluster holds the 1st place in the top-500 list of supercomputers (Nov 2006). Now 80% of the top-500 machines run Linux.
Exercise Invent some way of estimating the number of Linux users in the Netherlands. Is Linux about ten times as large as FreeBSD? Is Linux half as large as MacOS?
"Linux wasn't started as any kind of rebellion against the 'evil Microsoft empire,'" Torvalds told The New York Times last year. "I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."
Amazon is the world's largest internet bookshop. Amazon.com switched much of its massive internal network to Linux in 2000. By the third quarter of 2001, the company reported saving $17 million, slashing nearly a quarter of its tech expenses.
Google is the world's largest search engine. It runs on Linux.
Linux is used everywhere...on the 6,000+ servers themselves, as well as desktop machines for all of our technical employees. We chose Linux because it offers us the price for performance ratio. It's so nice to be able to customize any part of the operating system that we like, at any time.(Sergey Brin, 2000; the 6000 had become 15000 two years later, in 2003 someone reports 54000, in 2004 Google reports "tens of thousands of servers", and also "over 30 clusters, up to 2000 PCs in a cluster". In 2006 the New York Times estimates 450000 servers.)
Akamai has the world's largest content delivery network. They use Linux servers. This fact got a lot of publicity when during a virus attack Microsoft no longer could handle the traffic for www.microsoft.com and let its DNS handle by Akamai.
(Spring 2008) IDC estimates the Linux share of the software market at 4% and expects a growth to 11% in 2008-2011.
I.15) What is the proper pronounciation for "Linux"? ANSWER: (Linus himself) '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. I originally intended it to be called freax (although buggix was one contender after I got fed up with some of the more persistent bugs :) and I think the kernel makefiles up to version 0.11 had something to that effect ("Makefile for the freax kernel" in a comment). But arl called the linux directory at nic.funet.fi pub/OS/Linux, and the name stuck. Maybe just as well: freax doesn't sound too good either (freax is obviosly free + freak + the obligatory -x).
The name Linux is used to denote the kernel of this operating system,
but also to denote the entire system, complete with user mode software.
GNU people ("GNU's Not Unix") prefer to call the latter GNU/Linux,
in order to stress that the kernel is Linux, but a lot of the user
mode software is from GNU/FSF. In particular, the compiler used under
Linux is gcc
, and the most common C library is glibc.
[Linus called his system "freax". When Ari Lemmke, the administrator at ftp.funet.fi, made an ftp directory for this future system, he called the directory "Linux", and that became the name of the system. In January 1996 RMS (Richard M. Stallman) tried to enforce the name "Lignux". It was a fiasco. In March he tried " Linux-based GNU system". In the end people that agreed that there should be some GNU in the name settled on " GNU/Linux". In reality, of course, everybody uses the name Linux.]
It is possible, but a bit time consuming, to construct a private system, finding all components on the net. (See, for example, LinuxFromScratch.) These days it is most common to install a Linux distribution, probably from CDROM. Several hundred distributions exist. Well-known ones are RedHat ( Fedora), Ubuntu, Debian, Mandrake, Slackware, Gentoo, SuSE/Novell, where the last one has obscure Microsoft connections. A live distribution on a CDROM (no hard disk needed) is Knoppix. There are also very small distributions, like tomsrtbt, a distribution on a single floppy, very useful for investigating and repairing broken systems (Linux or not). See also distrowatch.com.
On an old system there is no easy way to find out what release
of which distribution it is. Later, people started providing
such information in files like /etc/foo-release
(where 'foo' is redhat, fedora, SuSE, etc.). Again later,
we got a utility called lsb_release
, and
% lsb_release -a LSB Version: 1.3 Distributor ID: FedoraCore Description: Fedora Core release 1 (Yarrow) Release: 1 Codename: Yarrow
Most software comes in binary form only. If something is broken, you can report the problem, and hope it will be fixed sooner or later. Open Source software comes together with the source. If something is wrong, you can fix it yourself, or, in case you are not a programmer or have no time, ask someone, perhaps pay someone, to fix it for you. That makes Open Source software much more useful than other software.
The Linux kernel, as almost all of the software in a random Linux distribution, is open source software, distributed freely under GPL. (Since 1 Feb 1992. Before that there was the anti-commercial "You may not distribute this for a fee", see the 0.01 kernel release notes.)
The GPL ( GNU Public License) is the "virus" license that covers a lot of open software: You are allowed to use this software, modify it, distribute it, but only under the condition that you make the source of what you distribute freely available again (under GPL). Putting stuff in the public domain allows vendors to take it, modify it, and sell a closed source version. The GPL prevents this - if you get it freely and improve it, then you can only distribute the improved version if you contribute your improvements back to society.
For kernel modules, see below.
Linux® is a registered trademark of Linus Torvalds.
Andrew S. Tanenbaum, Modern Operating Systems, Prentice Hall, 1992.
John Lions, Lions' Commentary on UNIX 6th Edition with Source Code, Peer-to-Peer Communications, 1996, published by Annabooks, ISBN 1-57398-013-7.
Maurice J. Bach, Design of the Unix Operating System, Prentice Hall, 1986.
Uresh Vahalia, Unix Internals: The New Frontiers, Prentice Hall, 1995.
Marshall Kirk McKusick, Keith Bostic, Michael J. Karels & John S. Quarterman, The Design and Implementation of the 4.4 BSD Operating System, Addison-Wesley, 1996.
W. Richard Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley, 1994.
David Rusling, The Linux Kernel. Online version [On Linux 2.0.]
Daniel P. Bovet & Marco Cesati, Understanding the Linux kernel, O'Reilly, 2001. [On Linux 2.2.]
Daniel P. Bovet & Marco Cesati, Understanding the Linux kernel, 2nd edition, O'Reilly, 2003. [On Linux 2.4.]
Daniel P. Bovet & Marco Cesati, Understanding the Linux kernel, 3rd edition, O'Reilly, 2005. [On Linux 2.6.]
Alessandro Rubini, Linux device drivers, O'Reilly, 1998.
Alessandro Rubini & Jonathan Corbet, Linux device drivers 2nd ed., O'Reilly, 2001. Online version
Jonathan Corbet, Alessandro Rubini & Greg Kroah-Hartman, Linux device drivers 3rd ed., O'Reilly, 2005. Online version
M. Beck, H. Böhme, M. Dziadzka, U. Kunitz, R. Magnus, C. Schröter & D. Verworner, Linux kernel programming 3rd ed., Addison Wesley, 2002.
R. Card, E. Dumas & F. Mevel, The Linux Kernel Book, John Wiley and Sons, 1998.
David Mosberger & Stéphane Eranian, IA-64 Linux kernel, HP / Prentice Hall, 2002.
Robert Love, Linux Kernel Development, Developer's library, 2003. ISBN 0-672-32512-8 ad
On the web one can find an enormous amount of information. Use your favorite search engine.
And then there is the source..
Use the source, Luke!