Linux: The Big Picture: History
Linux: The Big Picture: History
Abstract
This article gives a brief introduction to Linux, with a sketch of the background history. It was
written for PC Update, the monthly magazine of the PC user grou in !elbourne, "ustralia.
This version does not contain all the editorial changes and selling fixes made by the
magazine.
"ril #$, #%%&, Lars 'irzenius (liw)iki.fi*.
History
The history of comuter oerating systems starts in the +,-%s, with simle schemes for
running batch rograms efficiently, minimizing idle time between rograms. " batch rogram
is one that does not interact with the user at all. It reads all its inut from a file (ossibly a
stack of unch cards* and oututs all its outut to another file (ossibly to a rinter*. This is
how all comuters used to work.
Then, in early +,.%s, interactive use started to gain ground. /ot only interactive use, but
having several eole use the same comuter at the same time, from different terminals.
0uch systems were called time1sharing systems and were 2uite a challenge to imlement
comared to the batch systems.
3uring the +,.%s there were many attemts at building good time1sharing systems. 0ome of
these were university research ro4ects, others were commercial ones. 5ne such ro4ect was
!ultics, which was 2uite innovative at the time. It had, for examle, a hierarchical file system,
something taken for granted in modern oerating systems.
The !ultics ro4ect did not, however, rogress very well. It took years longer to comlete than
anticiated and never got a significant share of the oerating system market. 5ne of the
articiants, 6ell Labs, withdrew from the ro4ect. The 6ell Labs eole who were involved
then made their own oerating system and called it 7nix.
7nix was originally distributed for free and gained much oularity in universities. Later, it got
an imlementation of the TCP8IP rotocol stack and was adoted as the oerating system of
choice for early workstations.
6y +,,%, 7nix had a strong osition in the server market and was esecially strong in
universities. !ost universities had 7nix systems and comuter science students were
exosed to them. !any of them wanted to run 7nix on their own comuters as well.
7nfortunately, by that time, 7nix had become commercial and rather exensive. "bout the
only chea otion was !inix, a limited 7nix1like system written by "ndrew Tanenbaum for
teaching uroses. There was also &$.603, a recursor /et603, 9ree603, and 5en603,
but that wasn:t mature yet, and re2uired higher end hardware than many had at home.
Into this scene came Linux, in 5ctober, +,,+. Linus Torvalds, the author, had used 7nix at the
7niversity of ;elsinki, and wanted something similar on his PC at home. 0ince the
commercial alternatives were way too exensive, he started out with !inix, but wanted
something better and soon started to write his own oerating system. "fter its first release, it
soon attracted the attention of several other hackers. 'hile Linux initially was not really
useful excet as a toy, it soon gathered enough features to be interesting even for eole
uninterested in oerating system develoment.
Linux itself is only the kernel of an oerating system. The kernel is the art that makes all
other rograms run. It imlements multitasking, and manages hardware devices, and
generally enables alications to do their thing. "ll the rograms that the user (or system
administrator* actually interacts with are run on to of the kernel. 0ome of these are
essential< for examle, a command line interreter (or shell*, which is used both interactively
and to write shell scrits (corresonding to .6"T files*.
Linus did not write these rograms himself, and used existing free versions instead. This
reduced greatly the amount of work he had to do to get a working environment. In fact, he
often changed the kernel to make it easier to get the existing rograms to run on Linux,
instead of the other way around.
!ost of the critically imortant system software, including the C comiler, came from the 9ree
0oftware 9oundation:s =/7 ro4ect. 0tarted in +,$>, the =/7 ro4ect aims to develo an
entire 7nix1like oerating system that is comletely free. To credit them, many eole like to
refer to a Linux system as a =/78Linux system. (=/7 has their own kernel as well.*
3uring +,,# and +,,&, the Linux kernel gathered all the necessary features it re2uired to
work as a relacement for 7nix workstations, including TCP8IP networking and a grahical
windowing system (the ? 'indow 0ystem*. Linux also received lenty of industry attention,
and several small comanies were started to develo and distribute Linux. 3ozens of user
grous were founded, and the Linux @ournal magazine started to aear in early +,,>.
Aersion +.% of the Linux kernel was released in !arch, +,,>. 0ince then, the kernel has gone
through many develoment cycles, each culminating in a stable version. Bach develoment
cycle has taken a year or three, and has involved redesigning and rewriting large arts of the
kernel to deal with changes in hardware (for examle, new ways to connect eriherals, such
as 706* and to meet increased seed re2uirements as eole aly Linux to larger and
larger systems (or smaller and smaller ones< embedded Linux is becoming a hot toic*.
9rom a marketing and olitical oint of view, after the +.% release the next huge ste
haened in +,,C, when /etscae decided to release their web browser as free software
(the term :oen source: was created for this*. This was the occasion that first brought free
software to the attention of the whole comuting world for the time. It has taken years of work
since then, but free software (whether called that or oen source* has become not only
generally acceted but also often the referred choice for many alications.
Social phenomenon
"art from being a technological feat, Linux is also an interesting social henomenon. !uch
through Linux, the free software movement has broken through to general attention. 5n the
way, it even got an informal marketing deartment and brand< oen source. It is baffling to
many outsiders that something as successful as Linux could be develoed by a bunch of
unorganized eole in their free time.
The ma4or factor here is the availability of all the source code to the system, lus a coyright
license that allows modifications to be made and distributed. 'hen the system has many
rogrammers among its users, if they find a roblem, they can fairly easily fix it. "dditionally, if
they think a feature is missing, they can add it themselves. 9or some reason, that is
something rogrammers like to do, even if they:re not aid for it< they have an itch (a need*,
so they scratch (write the code to fill the need*.
It is necessary to have at least one committed develoer who uts in lots of effort. "fter a
while, however, once there are enough rogrammer1users sending small changes and
imrovements, you get a snowball effect< lots of small changes result in a fairly raid total
develoment seed, which then attracts more users, some of which will be rogrammers.
This then results in more small changes and imrovements sent in by users, and so on.
9or oerating system develoment secifically, this large grou of rogrammer1users results
in two imortant tyes of imrovements< bug fixes and device drivers. 5erating system code
often has bugs that only occur rarely and it can be difficult for the develoers to reroduce
them. 'hen there are thousands or more users who are also rogrammers, this results in a
very effective testing and debugging army.
!ost of the code volume in Linux is device drivers. The core functionality, which imlements
multitasking and multiuser functionality, is small in comarison. !ost device drivers are
indeendent from each other, and only interact with the oerating system core via well
defined interfaces. Thus, it is fairly easy to write a new device driver without having to
understand the whole comlexity of the oerating system. This also allows the main
develoers to concentrate on the core functiionality, and they can let those eole write the
device drivers who actually have the devices.
It would be awkward 4ust to store the thousands of different sound cards, Bthernet cards, I3B
controllers, motherboards, digital cameras, rinters, and so on that Linux suorts. The Linux
develoment model is distributed, and sreads the work around 2uite effectively.
The Linux model is not without roblems. 'hen a new device gets on the market, it can take
a few months before a Linux rogrammer is interested enough to write a device driver. "lso,
some device manufacturers, for whatever reason, do not want to release rogramming
information for their devices, which can revent a Linux device driver to be written at all.
Luckily, with the growing global interest in Linux such comanies become fewer in numbers.
What it is
Linux is a 7nix1like multitasking, multiuser &# and .> bit oerating system for a variety of
hardware latforms and licensed under an oen source license. This is a somewhat accurate
but rather brief descrition. I:ll send the rest of this article exounding on it.
6eing 7nix1like means emulating the 7nix oerating system interfaces so that rograms
written for 7nix will work for Linux merely by re1comiling. It follows that Linux uses mostly
the same abstractions as the 7nix system. 9or examle, the way rocesses are created and
controlled is the same in 7nix and Linux.
There are a number of other oerating systems in active use< from !icrosoft:s family of
'indows versions, through "le:s !ac50 to 5enA!0. Linux:s creator, Linus Torvalds,
chose 7nix as the model for Linux artly for its aesthetic aeal to system rogrammers,
artly because of all the oerating systems he was familiar with, it was the one he knew best.
The 7nix heritage also gives Linux the two most imortant features< multitasking and
multiuser caabilities. Linux, like 7nix, was designed from the start to run multile rocesses
indeendently of each other. Imlementing multitasking well re2uires attention at every level
of the oerating system. It is hard to add multitasking to an oerationg system afterwards.
That:s why the 'indows ,- series and !ac50 (before !ac50 ?* did multitasking somewhat
oorly< multitasking was added to an existing oerating system, not designed into a new one.
That:s also why the 'indows /T series, !ac50 ?, and Linux do multitasking so much better.
" good imlementation of multitasking re2uires, among other things, roer memory
management. The oerating system must use the memory rotection suort in the
rocessor to rotect running rograms from each other. 5therwise a buggy rogram (that is,
most any rogram* may corrut the memory area of another rogram, or the oerating
system itself, causing weird behavior or a total system crash, with likely loss of data and
unsaved work.
0uorting many concurrent users is easy after multitasking works. Dou label each instance
of a running rogram with a articular user and revent the rogram from tamering with
other user:s files.
Portable and scalable
Linux was originally written for an Intel &$. rocessor, and naturally works on all successive
rocessors. "fter about three years of develoment, work began to adat (or ort* Linux to
other rocessor families as well. The first one was the "lha rocessor, then develoed and
sold by the 3igital B2uiment Cororation. The "lha was chosen because 3igital graciously
donated a system to Linus. 0oon other orting efforts followed. Today, Linux also runs on 0un
0P"EC and 7ltra0P"EC, !otorola .$%%%, PowerPC, PowerPC.>, "E!, ;itachi 0uer;,
I6! 08&,%, !IP0, ;P P"1EI0C, Intel I"1.>, 3BC A"?, "!3 x$.1.> and CEI0 rocessors.
(0ee kernel.org for details.*
!ost of those rocessors are not very common on eole:s desks. 9or examle, 08&,% is
I6!:s big mainframe architecture. ;ere, mainframe means the kind of comuter inside of
which you can ut your desk, rather than the kind that fits on your desk.
0ome of those rocessors are &# bit, like the Intel &$.. 5thers are .> bit, such as the "lha.
0uorting such different rocessors has been good for Linux. It has re2uired designing the
system to use roer modularity and good abstractions and this has imroved code 2uality.
The large variety of suorted rocessors also shows off Linux:s scalability< it works
everything from very small systems, such as embedded comuters, handheld devices, and
mobile hones, to very large systems, such as the I6! mainframes.
7sing clustering technology, such as 6eowulf (beowulf.org*, Linux even runs on
suercomuters. 9or examle, the 70 Lawrence Livermore /ational Laboratories bought a
cluster with +,#% rocessors, resulting in one of the five fastest suercomuters in the world
with a theoretical eak erformance of ,.# tera9L5P0 or ,.# trillion calculations er second.
(L'/ article*.
Using Linux
The oerating system itself is retty boring to most eole. "lications are necessary so to
get things done. Traditionally, Linux alications have been the kinds of alications used
with 7nix< scientific software, databases, and network services. "lso, of course, all the tools
rogrammers want for their craft.
!uch of such software seems rather old1fashioned by today:s deskto standards. 7ser
interfaces are text based, or they might not exist at all. Indeed, most software has usually
been non1interactive and has been of the command line, batch rocessing variety. 0ince
most users have been exerts in the alication domain, this has been good enough.
Thus, Linux first found cororate emloyment as a file server, mail server, web server, or
firewall. It was a good latform for running a database, with suort from all ma4or
commercial database manufacturers.
In the ast few years Linux has also become an interesting otion on the user friendly
deskto front. The F3B (kde.org* and =nome (gnome.org* ro4ects develo deskto
environments and alications that are easy to learn (as well as effective to use*. There is
now lenty of deskto alications which eole with 'indows or !ac50 exerience will
have no difficulty using.
There is even a rofessional grade office software ackage. 5en5ffice (oenoffice.org*,
based on 0un:s 0tar5ffice, is free, fully featured, and file comatible with !icrosoft 5ffice. It
includes a word rocessor, sreadsheet, and resentation rogram, cometing with
!icrosoft:s 'ord, Bxcel, and Poweroint.
Linux distributions
To install Linux, you have to choose a Linux distribution. " distribution is the Linux kernel, lus
an installation rogram, lus some set of alications to run on to of it. There are hundreds
of Linux distributions, serving different needs.
"ll distributions use retty much the same actual software, but they are different in which
software they include, which versions they ick (a stable version known to work well or the
latest version with all the bells and whistles and bugs*, how the software is re1configured,
and how the system is installed and managed. 9or examle, 5en5ffice, !ozilla (web
browser*, F3B and =nome (deskto environments*, and "ache (web server* will all work on
all distributions.
0ome distributions aim to be general urose, but most of them are task secific< they are
meant for running a firewall, a web kiosk, or meant for users within a articular university or
country. Those looking for their first Linux exerience can concentrate on the three biggest
general urose distributions< Eed ;at, 0u0B, and 3ebian.
The Eed ;at and 0u0B distributions are roduced by comanies by the same names. They
aim at roviding an easy installation rocedure, and for a leasant deskto exerience. They
are also good as servers. 6oth are sold in boxes, with an installation C3 and rinted manual.
6oth can also be downloaded via the network.
The 3ebian distribution is roduced by a volunteer organization. It:s installation is less easy<
you have to answer 2uestions during the installation the other distributions deduce
automatically. /othing comlicated as such, but re2uiring understanding of and information
about hardware most PC users don:t want to worry about. 5n the other hand, after
installation, 3ebian can be ugraded to each new release without re1installing anything.
The easiest way to try out Linux is to use a distribution that works comletely off a C31E5!.
This way, you don:t have to install anything. Dou merely download the C31E5! image from
the net and burn it on a disk, or buy a mass1roduced one via the net. Insert disk in drive,
then reboot. /ot having to install anything on the hard disk means you can easily switch
between Linux and 'indows. "lso, since all Linux files are on a read1only C31E5!, you can:t
break anthing by mistake while you:re learning.
Further information
The Linux 3ocumentation Pro4ect. " good lace to start looking for manuals and hel.
Linux 'eekly /ews, 0lashdot< Two imortant news sites about Linux and related
things.
Linux distributions< 3ebian, Eed ;at, 0u0B.
Fnoix< 0ingle bootable C3, for testing Linux without installing.