The real reason for Unix's popularity? Many hackers
feel that Unix is the Right Thing--the One
True Operating System. Hence, the development of Linux by an expanding
group of Unix hackers who want to get their hands
dirty with their own system.
Versions of Unix exist for many
systems, ranging from personal computers to supercomputers such
as the Cray Y-MP. Most versions of
Unix for personal computers are quite expensive and
cumbersome. At the time of this writing, a one-machine version of
AT&T's System V for the 386 runs at about $US1500.
Linus released the initial version of Linux for free on the Internet,
inadvertently spawning one of the largest software-development phenomena
of all time. Today, Linux is authored and maintained by a group of several
thousand (if not more) developers loosely collaborating across the Internet.
Companies have sprung up to provide Linux support, to package it into
easy-to-install distributions, and to sell workstations pre-installed with
the Linux software. In March 1999, the first Linux World Expo trade show
was held in San Jose, California, with reportedly well over 12,000
people in attendance.
Most estimates place the number of Linux users worldwide somewhere around
the 10 million mark (and we expect this number will look small by the time
you read this).
The very early development of Linux dealt mostly with the
task-switching features of the 80386 protected-mode interface, all written
in assembly code. Linus writes:
After that it was plain sailing: hairy coding still, but I had some
devices, and debugging was easier. I started using C at this stage,
and it certainly speeds up development. This is also when I start to
get serious about my megalomaniac ideas to make "a better Minix
than Minix." I was hoping I'd be able to recompile
gcc under Linux some day …
Two months for basic setup, but then only slightly longer until I had
a disk driver (seriously buggy, but it happened to work on my machine)
and a small filesystem. That was about when I made 0.01 available
[around late August of 1991]: it wasn't pretty, it had no floppy
driver, and it couldn't do much anything. I don't think anybody ever
compiled that version. But by then I was hooked, and didn't want to
stop until I could chuck out Minix.
No announcement was ever made for Linux Version 0.01. The 0.01 sources
weren't even executable: they contained only the bare rudiments of the
kernel source and assumed that you had access to a Minix machine to
compile and play with them.
On October 5, 1991, Linus announced the first "official"
version of Linux, version 0.02. At this point, Linus was able to run
bash (the GNU Bourne Again
Shell) and gcc (the GNU C
compiler), but not much else was working. Again, this was
intended as a hacker's system. The primary focus was kernel
development; none of the issues of user support, documentation,
distribution, and so on had even been addressed. Today, the situation
is quite different--the real excitement in the Linux world
deals with graphical user environments, easy-to-install
distribution packages, and high-level applications such as graphics
utilities and productivity suites.
Linus wrote in comp.os.minix :
Do you pine for the nice days of Minix-1.1, when men were men and
wrote their own device drivers? Are you without a nice project and
just dying to cut your teeth on an OS you can try to modify for your
needs? Are you finding it frustrating when everything works on Minix?
No more all-nighters to get a nifty program working? Then this post
might be just for you.
After Version 0.03, Linus bumped the version number up to 0.10, as
more people started to work on the system. After several further
revisions, Linus increased the version number to 0.95, to reflect his
expectation that the system was ready for an "official"
release very soon. (Generally, software is not assigned the version
number 1.0 until it's theoretically complete or bug-free.) This was in
March 1992. Almost a year and a half later, in late December 1993, the Linux kernel was still at Version
0.99.pl14--asymptotically approaching 1.0. Version 1.0 appeared in March
1994. As of the time of this writing (March 1999), the current kernel
version is 2.2.6, while the 2.3 kernel versions are being concurrently
developed. (We'll explain the Linux versioning conventions in detail
later.)
Today, Linux is a complete Unix clone, capable of
running the X Window System, TCP/IP, Emacs, Web,
mail and news software, you name it. Almost
all major free software packages have been ported to Linux, and
commercial software is becoming available. In fact, many developers
start by writing applications for Linux, and port them to other Unix
systems later. More hardware is
supported than in original versions of the kernel. Many people have
executed benchmarks on Linux systems and found them to be
faster than workstations from Sun Microsystems and Compaq, and Linux
performs better than or as well as Windows 98 and Windows NT on a wide range of
benchmarks.
Who would have ever guessed that this
"little" Unix clone would have grown up
to take on the entire world of personal and server computing?