Datasheet

10
CHAPTER 1 THE HISTORY OF UNIX, GNU, AND LINUX
Unix already existed, was quite mature, and was nicely modular. So the GNU project was started
with the goal of replacing the userland tools of Unix with Free Software equivalents. The kernel was
another part of the overall goal, although one can’t have a kernel in isolation — the kernel needs an
editor, a compiler, and a linker to be built, and some kind of initialization process in order to boot.
So existing proprietary software systems were used to assemble a free ecosystem suf cient to fur-
ther develop itself, and ultimately to compile a kernel. This subject had not been ignored; the Mach
microkernel had been selected in line with the latest thinking on operating system kernel design, and
the HURD kernel has been available for quite some time, although it has been overtaken by a newer
upstart kernel, which was also developed under, and can also work with, the GNU tools.
HURD is “Hird of Unix-Replacing Daemons,” because its microkernel
approach uses multiple userspace background processes (known as daemons
in the Unix tradition) to achieve what the Unix kernel does in one monolithic
kernel. HIRD in turn stands for “Hurd of Interfaces Representing Depth.” This
is again a recursive acronym, like GNU (“GNUs Not Unix”) but this time it is
a pair of mutually recursive acronyms. It is also a play on the word “herd,” the
collective noun for Gnus.
As the unwritten understandings had failed, Stallman would need to create a novel way to ensure
that freely distributable software remained that way. The GNU General Public License (GPL) pro-
vided that in a typically intelligent style. The GPL uses copyright to ensure that the license itself can-
not be changed; the rest of the license then states that the recipient has full right to the code, so long
as he grants the same rights to anybody he distributes it to (whether modi ed or not) and the license
does not change. In that way, all developers (and users) are on a level playing fi eld, where the code
is effectively owned by all involved, but no one can change the license, which ensures that equality.
The creator of a piece of software may dual-license it, under the GPL and a more restrictive license;
this has been done many times — for example, by the MySQL project.
One of the tasks taken on by the GNU project was — of course — to write a shell interpreter as free
software. Brian Fox wrote the bash (Bourne Again SHell) shell — its name comes from the fact that
the original
/bin/sh was written by Steve Bourne, and is known as the Bourne Shell. As bash takes
the features of the Bourne shell, and adds new features, too, bash is, obviously, the Bourne Again
Shell. Brian also wrote the readline utility, which offers exible editing of input lines of text before
submitting them for parsing. This is probably the most signi cant feature to make bash a great
interactive shell. Brian Fox was the fi rst employee of the Free Software Foundation, the entity set up
to coordinate the GNU project.
You’ve probably spotted the pattern by now; although bash isn’t a recursive
acronym, its name is a play on the fact that it’s based on the Bourne shell. It
also implies that bash is an improvement on the original Bourne shell, in having
been “bourne again.
024485c01.indd 10024485c01.indd 10 7/26/11 8:31:58 AM7/26/11 8:31:58 AM