Datasheet
12
❘
CHAPTER 1 THE HISTORY OF UNIX, GNU, AND LINUX
are GNU tools. As such, some people prefer to use the phrase “GNU/Linux” to describe the com-
bination of GNU userspace plus Linux kernel. For the purposes of this book, the goal is to be
technically accurate while avoiding overly political zeal. RedHat Linux is what RedHat calls its dis-
tribution, so it is referred to as RedHat Linux. Debian GNU/Linux prefers to acknowledge the GNU
content so we will, too, when referring specifi cally to Debian. When talking about the Linux kernel,
we will say “Linux”; when talking about a GNU tool we will name it as such. Journalists desper-
ate for headlines can occasionally dream up a far greater rift than actually exists in the community.
Like any large family, it has its disagreements — often loudly and in public — but we will try not to
stoke the fi re here.
Unix was designed with the assumption that it would be operated by engineers;
that if somebody wanted to achieve anything with it, he or she would be prepared
to learn how the system works and how to manipulate it. The elegant simplicity of
the overall design (“everything is a fi le,” “do one thing and do it well,” etc.) means
that principles learned in one part of the system can be applied to other parts.
The rise in popularity of GNU/Linux systems, and in particular, their relatively widespread use on
desktop PCs and laptop systems — not just servers humming away to themselves in dark datacen-
ters — has brought a new generation to a set of tools built on this shared philosophy, but without
necessarily bringing the context of history into the equation.
Microsoft Windows has a very different philosophy: The end users need not concern themselves
with how the underlying system works, and as a result, should not expect it to be discernable, even
to an experienced professional, because of the closed-source license of the software. This is not
a difference in quality or even quantity; this is a different approach, which assumes a hierarchy
whereby the developers know everything and the users need know nothing.
As a result, many experienced Windows users have reviewed a GNU/Linux distribution and found
to their disappointment that to get something confi gured as it “obviously” should be done, they had
to edit a text fi le by hand, or specify a certain parameter. This fl exibility is actually a strength of the
system, not a weakness. In the Windows model, the user does not have to learn because they are not
allowed to make any decisions of importance: which kernel scheduler, which fi lesystem, which win-
dow manager. These decisions have all been made to a “one size fi ts most” level by the developers.
SUMMARY
Although it is quite possible to administer and write shell scripts for a GNU/Linux system without
knowing any of the history behind it, a lot of apparent quirks will not make sense without some appre-
ciation of how things came to be the way they are. There is a difference between scripting for a typical
Linux distribution, such as RedHat, SuSE, or Ubuntu, and scripting for an embedded device, which
is more likely to be running
busybox than a full GNU set of tools. Scripting for commercial Unix is
slightly different again, and much as a web developer has to take care to ensure that a website works
024485c01.indd 12024485c01.indd 12 7/26/11 8:31:59 AM7/26/11 8:31:59 AM