[ ERCB Home |
New |
Feature |
Brief |
DDJ |
Letters |
Links
]
The Grand Master of System Software
Review by Ray Duncan
Copyright (C) Dr. Dobb's Journal, May, 1992
Breathes there the computer science undergraduate with soul
so dead, who never to himself hath said "Knuth is God!"
-- Apologies to Sir Walter Scott
Donald Knuth has become a legend in his own time for, among other things,
his multivolume algorithms reference The Art of Computer Programming
and his reinvention of computer typesetting. Even the average corporation-cubbyhole
applications programmer, who (according to Yourdon at least) has probably
never read any programming textbook at all, will be moved to genuflect when
the Knuth's name is mentioned -- Knuth's books are so lucid, so comprehensive.
and so entertaining that they have become the standard against which all
other computer books are judged. Well, it's about time to expand the pantheon.
Andrew S. Tanenbaum, a professor of computer science at Vrije Universitet
in Amsterdam, is building up a library of texts on systems programming that
rivals Knuth's work in both quantity and quantity. In this month's installment,
I want to introduce you to Dr. Tanenbaum's four most important efforts.
Structured Computer Organization's title makes it sound dry, formal,
and concrete, but the title is just Tanenbaum's way of waming you that he
proposes to describe the digital computer at every level, from the electrons
to the command prompt. The book begins with a brief history of mechanical
and electronic computing, from Babbage to the present. It then embarks on
a grand tour of computer architecture, beginning with the fundamentals of
digital logic and progressing through registers, memory, buses, microprogramming,
conventional instruction sets, addressing schemes, virtual memory, flow
of control, and operating systems. After a brief digression into the workings
of language translators, linkers, and loaders, Structured Computer Organization
finishes up with a survey of cutting-edge technology in RISC machines and
parallel processing. This book, while cosmic in scope, is a pleasure to
read and is an excellent starting point for any programmer who seeks a basic
understanding of the underlying hardware and its relationship to system
software.
Computer Networks attacks the intimidating topic of networking and
communications with much the same thoroughness and tenacity that we saw
in Structured Computer Organization. If there's any stone
that Tanenbaum left unturned in this book, I certainly didn't notice it.
And just in time, too--with the rapid decline in price of high-performance,
twisted pair Ethernet and even higher performance, fiber optic backbones,
Local Area Networks (LANs) and Wide Area Networks (WANs) are springing up
like mushrooms after a Redmond rainstorm, so we must all learn to speak
the language of the network gurus. Have you ever wondered about the significance
of the seven layers of the OSI reference model, or what ISDN, X.25, SNA,
SDLC, and ASN.1 really stand for? Do you want to understand the differences
between a repeater, a router, a gateway, and a bridge? Do you feel perplexed
and alienated when people glibly talk about TCP/IP UseNet, token ring, and
the X.400 standard for electronic mail? Computer Networks will straighten
you out.
I daresay I've at least browsed through nearly every general text on systems
software published during the last 20 years, but Tanenbaum's Operating
Systems: Design and Implementation is by far my favorite. All the fundamental
issues of operating-systems architecture and programming, from device drivers
to security and protection mechanisms, are beautifully explained in this
superb book. Unlike most of its competitors. Operating Systems: Design
and Implementation is not strong on theory but weak on practice, nor
is it scornful of the personal computer. In the latter part of the book.
Tanenbaum illustrates nearly every operating-system concept that he has
discussed in the form of full source code for a UNIX clone called MINIX
that will run on the IBM PC and the Macintosh. If you are not in the mood
to type in the 250 pages of MINIX source code, Tanenbaum thoughtfully makes
it available on diskette, together with all the development tools needed
to rebuild the system. We're definitely talking Hackers' Heaven here.
Tanenbaum originally intended for is newest book. Modern Operating Systems,
to be an updated edition of Operating Systems: Design and Implementation,
but (as he says in the introduction) the book pulled him in another direction
and ended up with a distinctly different emphasis. Although Modern Operating
Systems shares some material with its predecessor, the theoretical discussions
are interspersed with lengthy case studies of UNIX, MS-DOS, Mach, and a
University of Amsterdam experimental operating system called "Amoeba."
The special strength of Modern Operating Systems is its extensive
treatment of distributed operating systems, and distributed file systems,
while its special weakness is the alarming number of typographical errors.
Surprisingly, Tanenbaum barely, mentions several operat ing systems that
you night think would merit coverage in this book. such as VAX//VMS and
the proprietary IBM mainframe systems. (Perhaps he doesn't consider them
modern enough!) OS/2 is ignored. except in the context of MS-DOS:
What does the future of MS-DOS hold? Technically, it is completely
obsolete. Programming it is a nightmare. To the user, it is idiosyncratic
and unfriendly. IBM and Microsoft realized this years ago, and spent millions
of dollars prodticing a modern, powerful, and easy to use replacement, OS/2,
only to discover that the users were not interested.
But I don't want to leave you with the impression that Tanenbaum is singling
out MS-DOS for unfair criticism. In another place, he comments:
Many users, especially beginners, find the MS-DOS command line
interface cryptic at best and downright hostile at worst, probably even
worse than UNIX, whose shell has rarely been accused of being friendly to
novices.
Indeed, Tanenbaum mostly takes a generous attitude toward MS-DOS, considering
his academic background, and takes care to point out its good features,
such as the extreme configurability that it gains from installable device
drivers and the CONFIG.SYS file.
When you consider all four of Tanenbaum's books together, the range of topics
this fellow can write about clearly and authoritatively is nothing short
of astounding. Every one of his books is an excellent investment that will
serve you well, and--if you are a serious programmer at least three out
of the four books should find a place in your library.
Structured Computer Organization, Third Edition
Andrew S. Tanenbaum
Prentice-Hall, 1990
587 pages, $64.00
ISBN 0-13-854662-2
Computer Networks, Second Edition
Andrew S. Tanenbaum
Prentice-Hall, 1989
658 pages, $66.00
ISBN 0-13-162959-X
Operating Systems: Design and Implementation
Andrew S. Tanenbaum
Prentice-Hall, 1987
719 pages, $56.00
ISBN 0-13-637406-9
Modern Operating Systems
Andrew S. Tanenbaum
Prentice-Hall, 1992
728 pages, $54.00
ISBN 0-13-588187-0
Electronic Review of Computer Books
Created 5/1/96 / Last modified 6/15/96 / webmaster@ercb.com