Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

pa"ris lahe artikkel

5 views
Skip to first unread message

Tr.

unread,
May 20, 1999, 3:00:00 AM5/20/99
to

C R Y P T O N O M I C O N

In the Beginning was the Command Line

by Neal Stephenson

About twenty years ago Jobs and Wozniak, the founders of Apple, came up
with the very strange idea of selling information processing machines
for use in the home. The business took off, and its founders made a lot
of money and received the credit they deserved for being daring
visionaries. But around the same time, Bill Gates and Paul Allen came up
with an idea even stranger and more fantastical: selling computer
operating systems. This was much weirder than the idea of Jobs and
Wozniak. A computer at least had some sort of physical reality to it. It
came in a box, you could open it up and plug it in and watch lights
blink. An operating system had no tangible incarnation at all. It
arrived on a disk, of course, but the disk was, in effect, nothing more
than the box that the OS came in. The product itself was a very long
string of ones and zeroes that, when properly installed and coddled,
gave you the ability to manipulate other very long strings of ones and
zeroes. Even those few who actually understood what a computer operating
system was were apt to think of it as a fantastically arcane engineering
prodigy, like a breeder reactor or a U-2 spy plane, and not something
that could ever be (in the parlance of high-tech) "productized." Yet now
the company that Gates and Allen founded is selling operating systems
like Gillette sells razor blades. New releases of operating systems are
launched as if they were Hollywood blockbusters, with celebrity
endorsements, talk show appearances, and world tours. The market for
them is vast enough that people worry about whether it has been
monopolized by one company. Even the least technically-minded people in
our society now have at least a hazy idea of what operating systems do;
what is more, they have strong opinions about their relative merits. It
is commonly understood, even by technically unsophisticated computer
users, that if you have a piece of software that works on your
Macintosh, and you move it over onto a Windows machine, it will not run.
That this would, in fact, be a laughable and idiotic mistake, like
nailing horseshoes to the tires of a Buick. A person who went into a
coma before Microsoft was founded, and woke up now, could pick up this
morning's New York Times and understand everything in it--almost:  


Item: the richest man in the world made his fortune from-what? Railways?
Shipping? Oil? No, operating systems.


Item: the Department of Justice is tackling Microsoft's supposed OS
monopoly with legal tools that were invented to restrain the power of
Nineteenth-Century robber barons.


Item: a woman friend of mine recently told me that she'd broken off a
(hitherto) stimulating exchange of e-mail with a young man. At first he
had seemed like such an intelligent and interesting guy, she said, but
then "he started going all PC-versus-Mac on me."

What the hell is going on here? And does the operating system business
have a future, or only a past? Here is my view, which is entirely
subjective; but since I have spent a fair amount of time not only using,
but programming, Macintoshes, Windows machines, Linux boxes and the
BeOS, perhaps it is not so ill-informed as to be completely worthless.
This is a subjective essay, more review than research paper, and so it
might seem unfair or biased compared to the technical reviews you can
find in PC magazines. But ever since the Mac came out, our operating
systems have been based on metaphors, and anything with metaphors in it
is fair game as far as I'm concerned.  

MGBs, TANKS, AND BATMOBILES Around the time that Jobs, Wozniak, Gates,
and Allen were dreaming up these unlikely schemes, I was a teenager
living in Ames, Iowa. One of my friends' dads had an old MGB sports car
rusting away in his garage. Sometimes he would actually manage to get it
running and then he would take us for a spin around the block, with a
memorable look of wild youthful exhiliration on his face; to his worried
passengers, he was a madman, stalling and backfiring around Ames, Iowa
and eating the dust of rusty Gremlins and Pintos, but in his own mind he
was Dustin Hoffman tooling across the Bay Bridge with the wind in his
hair. In retrospect, this was telling me two things about people's
relationship to technology. One was that romance and image go a long way
towards shaping their opinions. If you doubt it (and if you have a lot
of spare time on your hands) just ask anyone who owns a Macintosh and
who, on those grounds, imagines him- or herself to be a member of an
oppressed minority group. The other, somewhat subtler point, was that
interface is very important. Sure, the MGB was a lousy car in almost
every way that counted: balky, unreliable, underpowered. But it was fun
to drive. It was responsive. Every pebble on the road was felt in the
bones, every nuance in the pavement transmitted instantly to the
driver's hands. He could listen to the engine and tell what was wrong
with it. The steering responded immediately to commands from his hands.
To us passengers it was a pointless exercise in going nowhere--about as
interesting as peering over someone's shoulder while he punches numbers
into a spreadsheet. But to the driver it was an experience. For a short
time he was extending his body and his senses into a larger realm, and
doing things that he couldn't do unassisted. The analogy between cars
and operating systems is not half bad, and so let me run with it for a
moment, as a way of giving an executive summary of our situation today.
Imagine a crossroads where four competing auto dealerships are situated.
One of them (Microsoft) is much, much bigger than the others. It started
out years ago selling three-speed bicycles (MS-DOS); these were not
perfect, but they worked, and when they broke you could easily fix them.
There was a competing bicycle dealership next door (Apple) that one day
began selling motorized vehicles--expensive but attractively styled cars
with their innards hermetically sealed, so that how they worked was
something of a mystery. The big dealership responded by rushing a moped
upgrade kit (the original Windows) onto the market. This was a Rube
Goldberg contraption that, when bolted onto a three-speed bicycle,
enabled it to keep up, just barely, with Apple-cars. The users had to
wear goggles and were always picking bugs out of their teeth while Apple
owners sped along in hermetically sealed comfort, sneering out the
windows. But the Micro-mopeds were cheap, and easy to fix compared with
the Apple-cars, and their market share waxed. Eventually the big
dealership came out with a full-fledged car: a colossal station wagon
(Windows 95). It had all the aesthetic appeal of a Soviet worker housing
block, it leaked oil and blew gaskets, and it was an enormous success. A
little later, they also came out with a hulking off-road vehicle
intended for industrial users (Windows NT) which was no more beautiful
than the station wagon, and only a little more reliable. Since then
there has been a lot of noise and shouting, but little has changed. The
smaller dealership continues to sell sleek Euro-styled sedans and to
spend a lot of money on advertising campaigns. They have had GOING OUT
OF BUSINESS! signs taped up in their windows for so long that they have
gotten all yellow and curly. The big one keeps making bigger and bigger
station wagons and ORVs. On the other side of the road are two
competitors that have come along more recently. One of them (Be, Inc.)
is selling fully operational Batmobiles (the BeOS). They are more
beautiful and stylish even than the Euro-sedans, better designed, more
technologically advanced, and at least as reliable as anything else on
the market--and yet cheaper than the others. With one exception, that
is: Linux, which is right next door, and which is not a business at all.
It's a bunch of RVs, yurts, tepees, and geodesic domes set up in a field
and organized by consensus. The people who live there are making tanks.
These are not old-fashioned, cast-iron Soviet tanks; these are more like
the M1 tanks of the U.S. Army, made of space-age materials and jammed
with sophisticated technology from one end to the other. But they are
better than Army tanks. They've been modified in such a way that they
never, ever break down, are light and maneuverable enough to use on
ordinary streets, and use no more fuel than a subcompact car. These
tanks are being cranked out, on the spot, at a terrific pace, and a vast
number of them are lined up along the edge of the road with keys in the
ignition. Anyone who wants can simply climb into one and drive it away
for free. Customers come to this crossroads in throngs, day and night.
Ninety percent of them go straight to the biggest dealership and buy
station wagons or off-road vehicles. They do not even look at the other
dealerships. Of the remaining ten percent, most go and buy a sleek
Euro-sedan, pausing only to turn up their noses at the philistines going
to buy the station wagons and ORVs. If they even notice the people on
the opposite side of the road, selling the cheaper, technically superior
vehicles, these customers deride them cranks and half-wits. The
Batmobile outlet sells a few vehicles to the occasional car nut who
wants a second vehicle to go with his station wagon, but seems to
accept, at least for now, that it's a fringe player. The group giving
away the free tanks only stays alive because it is staffed by
volunteers, who are lined up at the edge of the street with bullhorns,
trying to draw customers' attention to this incredible situation. A
typical conversation goes something like this: Hacker with bullhorn:
"Save your money! Accept one of our free tanks! It is invulnerable, and
can drive across rocks and swamps at ninety miles an hour while getting
a hundred miles to the gallon!" Prospective station wagon buyer: "I know
what you say is true...but...er...I don't know how to maintain a tank!"
Bullhorn: "You don't know how to maintain a station wagon either!"
Buyer: "But this dealership has mechanics on staff. If something goes
wrong with my station wagon, I can take a day off work, bring it here,
and pay them to work on it while I sit in the waiting room for hours,
listening to elevator music." Bullhorn: "But if you accept one of our
free tanks we will send volunteers to your house to fix it for free
while you sleep!" Buyer: "Stay away from my house, you freak!" Bullhorn:
"But..." Buyer: "Can't you see that everyone is buying station wagons?"
 

BIT-FLINGER

The connection between cars, and ways of interacting with computers,
wouldn't have occurred to me at the time I was being taken for rides in
that MGB. I had signed up to take a computer programming class at Ames
High School. After a few introductory lectures, we students were granted
admission into a tiny room containing a teletype, a telephone, and an
old-fashioned modem consisting of a metal box with a pair of rubber cups
on the top (note: many readers, making their way through that last
sentence, probably felt an initial pang of dread that this essay was
about to turn into a tedious, codgerly reminiscence about how tough we
had it back in the old days; rest assured that I am actually positioning
my pieces on the chessboard, as it were, in preparation to make a point
about truly hip and up-to-the minute topics like Open Source Software).
The teletype was exactly the same sort of machine that had been used,
for decades, to send and receive telegrams. It was basically a loud
typewriter that could only produce UPPERCASE LETTERS. Mounted to one
side of it was a smaller machine with a long reel of paper tape on it,
and a clear plastic hopper underneath. In order to connect this device
(which was not a computer at all) to the Iowa State University mainframe
across town, you would pick up the phone, dial the computer's number,
listen for strange noises, and then slam the handset down into the
rubber cups. If your aim was true, one would wrap its neoprene lips
around the earpiece and the other around the mouthpiece, consummating a
kind of informational soixante-neuf.  The teletype would shudder as
it was possessed by the spirit of the distant mainframe, and begin to
hammer out cryptic messages. Since computer time was a scarce resource,
we used a sort of batch processing technique. Before dialing the phone,
we would turn on the tape puncher (a subsidiary machine bolted to the
side of the teletype) and type in our programs. Each time we depressed a
key, the teletype would bash out a letter on the paper in front of us,
so we could read what we'd typed; but at the same time it would convert
the letter into a set of eight binary digits, or bits, and punch a
corresponding pattern of holes across the width of a paper tape. The
tiny disks of paper knocked out of the tape would flutter down into the
clear plastic hopper, which would slowly fill up what can only be
described as actual bits. On the last day of the school year, the
smartest kid in the class (not me) jumped out from behind his desk and
flung several quarts of these bits over the head of our teacher, like
confetti, as a sort of semi-affectionate practical joke. The image of
this man sitting there, gripped in the opening stages of an atavistic
fight-or-flight reaction, with millions of bits (megabytes) sifting down
out of his hair and into his nostrils and mouth, his face gradually
turning purple as he built up to an explosion, is the single most
memorable scene from my formal education. Anyway, it will have been
obvious that my interaction with the computer was of an extremely formal
nature, being sharply divided up into different phases, viz.: (1)
sitting at home with paper and pencil, miles and miles from any
computer, I would think very, very hard about what I wanted the computer
to do, and translate my intentions into a computer language--a series of
alphanumeric symbols on a page. (2) I would carry this across a sort of
informational cordon sanitaire (three miles of snowdrifts) to school and
type those letters into a machine--not a computer--which would convert
the symbols into binary numbers and record them visibly on a tape. (3)
Then, through the rubber-cup modem, I would cause those numbers to be
sent to the university mainframe, which would (4) do arithmetic on them
and send different numbers back to the teletype. (5) The teletype would
convert these numbers back into letters and hammer them out on a page
and (6) I, watching, would construe the letters as meaningful symbols.
The division of responsibilities implied by all of this is admirably
clean: computers do arithmetic on bits of information. Humans construe
the bits as meaningful symbols. But this distinction is now being
blurred, or at least complicated, by the advent of modern operating
systems that use, and frequently abuse, the power of metaphor to make
computers accessible to a larger audience. Along the way--possibly
because of those metaphors, which make an operating system a sort of
work of art--people start to get emotional, and grow attached to pieces
of software in the way that my friend's dad did to his MGB. People who
have only interacted with computers through graphical user interfaces
like the MacOS or Windows--which is to say, almost everyone who has ever
used a computer--may have been startled, or at least bemused, to hear
about the telegraph machine that I used to communicate with a computer
in 1973. But there was, and is, a good reason for using this particular
kind of technology. Human beings have various ways of communicating to
each other, such as music, art, dance, and facial expressions, but some
of these are more amenable than others to being expressed as strings of
symbols. Written language is the easiest of all, because, of course, it
consists of strings of symbols to begin with. If the symbols happen to
belong to a phonetic alphabet (as opposed to, say, ideograms),
converting them into bits is a trivial procedure, and one that was
nailed, technologically, in the early nineteenth century, with the
introduction of Morse code and other forms of telegraphy. We had a
human/computer interface a hundred years before we had computers. When
computers came into being around the time of the Second World War,
humans, quite naturally, communicated with them by simply grafting them
on to the already-existing technologies for translating letters into
bits and vice versa: teletypes and punch card machines. These embodied
two fundamentally different approaches to computing. When you were using
cards, you'd punch a whole stack of them and run them through the reader
all at once, which was called batch processing. You could also do batch
processing with a teletype, as I have already described, by using the
paper tape reader, and we were certainly encouraged to use this approach
when I was in high school. But--though efforts were made to keep us
unaware of this--the teletype could do something that the card reader
could not. On the teletype, once the modem link was established, you
could just type in a line and hit the return key. The teletype would
send that line to the computer, which might or might not respond with
some lines of its own, which the teletype would hammer out--producing,
over time, a transcript of your exchange with the machine. This way of
doing it did not even have a name at the time, but when, much later, an
alternative became available, it was retroactively dubbed the Command
Line Interface. When I moved on to college, I did my computing in large,
stifling rooms where scores of students would sit in front of slightly
updated versions of the same machines and write computer programs: these
used dot-matrix printing mechanisms, but were (from the computer's point
of view) identical to the old teletypes. By that point, computers were
better at time-sharing--that is, mainframes were still mainframes, but
they were better at communicating with a large number of terminals at
once. Consequently, it was no longer necessary to use batch processing.
Card readers were shoved out into hallways and boiler rooms, and batch
processing became a nerds-only kind of thing, and consequently took on a
certain eldritch flavor among those of us who even knew it existed. We
were all off the Batch, and on the Command Line, interface now--my very
first shift in operating system paradigms, if only I'd known it. A huge
stack of accordion-fold paper sat on the floor underneath each one of
these glorified teletypes, and miles of paper shuddered through their
platens. Almost all of this paper was thrown away or recycled without
ever having been touched by ink--an ecological atrocity so glaring that
those machines soon replaced by video terminals--so-called "glass
teletypes"--which were quieter and didn't waste paper. Again, though,
from the computer's point of view these were indistinguishable from
World War II-era teletype machines. In effect we still used Victorian
technology to communicate with computers until about 1984, when the
Macintosh was introduced with its Graphical User Interface. Even after
that, the Command Line continued to exist as an underlying stratum--a
sort of brainstem reflex--of many modern computer systems all through
the heyday of Graphical User Interfaces, or GUIs as I will call them
from now on.  

GUIs

Now the first job that any coder needs to do when writing a new piece of
software is to figure out how to take the information that is being
worked with (in a graphics program, an image; in a spreadsheet, a grid
of numbers) and turn it into a linear string of bytes. These strings of
bytes are commonly called files or (somewhat more hiply) streams. They
are to telegrams what modern humans are to Cro-Magnon man, which is to
say the same thing under a different name. All that you see on your
computer screen--your Tomb Raider, your digitized voice mail messages,
faxes, and word processing documents written in thirty-seven different
typefaces--is still, from the computer's point of view, just like
telegrams, except much longer, and demanding of more arithmetic. The
quickest way to get a taste of this is to fire up your web browser,
visit a site, and then select the View/Document Source menu item. You
will get a bunch of computer code that looks something like this:

<HTML>

<HEAD>

<TITLE>Welcome to the Avon Books Homepage</TITLE> </HEAD>

<MAP NAME="left0199"> ÊÊÊÊÊ<AREA SHAPE="rect" COORDS="16,56,111,67"
HREF="/bard/"> ÊÊÊÊÊ<AREA SHAPE="rect" COORDS="14,77,111,89"
HREF="/eos/"> ÊÊÊÊÊ<AREA SHAPE="rect" COORDS="17,98,112,110"
HREF="/twilight/"> ÊÊÊÊÊ<AREA SHAPE="rect" COORDS="18,119,112,131"
HREF="/avon_user/category.html?category_id=271"> ÊÊÊÊÊ<AREA SHAPE="rect"
COORDS="19,140,112,152" HREF="http://www.goners.com/"> ÊÊÊÊÊ<AREA
SHAPE="rect" COORDS="18,161,111,173" HREF="http://www.spikebooks.com/">
ÊÊÊÊÊ<AREA SHAPE="rect" COORDS="2,181,112,195"
HREF="/avon_user/category.html?category_id=277"> ÊÊÊÊÊ<AREA SHAPE="rect"
COORDS="9,203,112,216" HREF="/chathamisland/"> ÊÊÊÊÊ<AREA SHAPE="rect"
COORDS="7,223,112,236" HREF="/avon_user/search.html"> </MAP>

<BODY TEXT="#478CFF" LINK="#FFFFFF" VLINK="#000000" ALINK="#478CFF"
BGCOLOR="#003399"> <TABLE BORDER="0" WIDTH="600" CELLPADDING="0"
CELLSPACING="0">

<TR VALIGN=TOP>

ÊÊÊÊÊ<TD ROWSPAN="3"> ÊÊÊÊÊ<A
HREF="/cgi-bin/imagemap/maps/left.gif.map"><IMG
SRC="/avon/images/home/nav/left0199.gif" WIDTH="113" HEIGHT="280"
BORDER="0" USEMAP="#left0199"></A></TD><TD ROWSPAN="3"><IMG
SRC="/avon/images/home/homepagejan98/2ndleft.gif" WIDTH="144"
HEIGHT="280" BORDER="0"></TD><TD><A HREF="/avon/about.html"><IMG
SRC="/avon/images/home/homepagejan98/aboutavon.gif" ALT="About Avon
Books" WIDTH="199" HEIGHT="44" BORDER="0"></A></TD><TD ROWSPAN="3"><A
HREF="/avon/fiction/guides.html"><IMG
SRC="/avon/images/home/feb98/right1.gif" ALT="Reading Groups"
WIDTH="165" HEIGHT="121" BORDER="0"></A><BR><A
HREF="/avon/feature/feb99/crook.html"><IMG
SRC="/avon/images/home/feb99/crook_text.gif" ALT="The Crook Factory"
WIDTH="165" HEIGHT="96" BORDER="0"></A><BR><A
HREF="http://apps.hearstnewmedia.com/cgi-bin/gx.cgi/AppLogic+APPSSURVEYS
Questionnaire?domain_id=182&survey_id=541"><IMG
SRC="/avon/images/home/feb99/env_text.gif" ALT="The Envelope Please"
WIDTH="165" HEIGHT="63" BORDER="0"></A></TD> </TR>

<TR VALIGN=TOP><TD><IMG SRC="/avon/images/home/feb98/main.gif"
WIDTH="199" HEIGHT="182" BORDER="0"></TD></TR><TR VALIGN=TOP><TD><A
HREF="/avon/feature/jan99/sitchin.html"><IMG
SRC="/avon/images/home/jan99/sitchin_text.gif" WIDTH="199" HEIGHT="54"
BORDER="0"></A></TD></TR><TR VALIGN=TOP><TD COLSPAN="4"><IMG
SRC="/avon/images/home/jan99/avon_bottom_beau.gif" WIDTH="622"
HEIGHT="179" BORDER="0" USEMAP="#bottom"></TD></TR><TR><TD ALIGN=CENTER
VALIGN=TOP COLSPAN="4"><FONT SIZE="2" FACE="ARIAL,COURIER"><PRE>


</PRE><A HREF="/avon/ordering.html">How to order</A> | <A
HREF="/avon/faq.html#manu">How to submit a Manuscript</A> | <A
HREF="mailto:avo...@hearst.com">Contact us</A> | <A
HREF="/avon/policy.html">Privacy Policy</A></FONT>

<P> </FONT></TD>

</TR>

</TABLE>

</BODY>

</HTML>

This crud is called HTML (HyperText Markup Language) and it is basically
a very simple programming language instructing your web browser how to
draw a page on a screen. Anyone can learn HTML and many people do. The
important thing is that no matter what splendid multimedia web pages
they might represent, HTML files are just telegrams. When Ronald Reagan
was a radio announcer, he used to call baseball games by reading the
terse descriptions that trickled in over the telegraph wire and were
printed out on a paper tape. He would sit there, all by himself in a
padded room with a microphone, and the paper tape would eke out of the
machine and crawl over the palm of his hand printed with cryptic
abbreviations. If the count went to three and two, Reagan would describe
the scene as he saw it in his mind's eye: "The brawny left-hander steps
out of the batter's box to wipe the sweat from his brow. The umpire
steps forward to sweep the dirt from home plate." and so on. When the
cryptogram on the paper tape announced a base hit, he would whack the
edge of the table with a pencil, creating a little sound effect, and
describe the arc of the ball as if he could actually see it. His
listeners, many of whom presumably thought that Reagan was actually at
the ballpark watching the game, would reconstruct the scene in their
minds according to his descriptions. This is exactly how the World Wide
Web works: the HTML files are the pithy description on the paper tape,
and your Web browser is Ronald Reagan. The same is true of Graphical
User Interfaces in general. So an OS is a stack of metaphors and
abstractions that stands between you and the telegrams, and embodying
various tricks the programmer used to convert the information you're
working with--be it images, e-mail messages, movies, or word processing
documents--into the necklaces of bytes that are the only things
computers know how to work with. When we used actual telegraph equipment
(teletypes) or their higher-tech substitutes ("glass teletypes," or the
MS-DOS command line) to work with our computers, we were very close to
the bottom of that stack. When we use most modern operating systems,
though, our interaction with the machine is heavily mediated. Everything
we do is interpreted and translated time and again as it works its way
down through all of the metaphors and abstractions. The Macintosh OS was
a revolution in both the good and bad senses of that word. Obviously it
was true that command line interfaces were not for everyone, and that it
would be a good thing to make computers more accessible to a less
technical audience--if not for altruistic reasons, then because those
sorts of people constituted an incomparably vaster market. It was clear
the the Mac's engineers saw a whole new country stretching out before
them; you could almost hear them muttering, "Wow! We don't have to be
bound by files as linear streams of bytes anymore, vive la revolution,
let's see how far we can take this!" No command line interface was
available on the Macintosh; you talked to it with the mouse, or not at
all. This was a statement of sorts, a credential of revolutionary
purity. It seemed that the designers of the Mac intended to sweep
Command Line Interfaces into the dustbin of history. My own personal
love affair with the Macintosh began in the spring of 1984 in a computer
store in Cedar Rapids, Iowa, when a friend of mine--coincidentally, the
son of the MGB owner--showed me a Macintosh running MacPaint, the
revolutionary drawing program. It ended in July of 1995 when I tried to
save a big important file on my Macintosh Powerbook and instead instead
of doing so, it annihilated the data so thoroughly that two different
disk crash utility programs were unable to find any trace that it had
ever existed. During the intervening ten years, I had a passion for the
MacOS that seemed righteous and reasonable at the time but in retrospect
strikes me as being exactly the same sort of goofy infatuation that my
friend's dad had with his car. The introduction of the Mac triggered a
sort of holy war in the computer world. Were GUIs a brilliant design
innovation that made computers more human-centered and therefore
accessible to the masses, leading us toward an unprecedented revolution
in human society, or an insulting bit of audiovisual gimcrackery dreamed
up by flaky Bay Area hacker types that stripped computers of their power
and flexibility and turned the noble and serious work of computing into
a childish video game? This debate actually seems more interesting to me
today than it did in the mid-1980s. But people more or less stopped
debating it when Microsoft endorsed the idea of GUIs by coming out with
the first Windows. At this point, command-line partisans were relegated
to the status of silly old grouches, and a new conflict was touched off,
between users of MacOS and users of Windows. There was plenty to argue
about. The first Macintoshes looked different from other PCs even when
they were turned off: they consisted of one box containing both CPU (the
part of the computer that does arithmetic on bits) and monitor screen.
This was billed, at the time, as a philosophical statement of sorts:
Apple wanted to make the personal computer into an appliance, like a
toaster. But it also reflected the purely technical demands of running a
graphical user interface. In a GUI machine, the chips that draw things
on the screen have to be integrated with the computer's central
processing unit, or CPU, to a far greater extent than is the case with
command-line interfaces, which until recently didn't even know that they
weren't just talking to teletypes. This distinction was of a technical
and abstract nature, but it became clearer when the machine crashed (it
is commonly the case with technologies that you can get the best insight
about how they work by watching them fail). When everything went to hell
and the CPU began spewing out random bits, the result, on a CLI machine,
was lines and lines of perfectly formed but random characters on the
screen--known to cognoscenti as "going Cyrillic." But to the MacOS, the
screen was not a teletype, but a place to put graphics; the image on the
screen was a bitmap, a literal rendering of the contents of a particular
portion of the computer's memory. When the computer crashed and wrote
gibberish into the bitmap, the result was something that looked vaguely
like static on a broken television set--a "snow crash." And even after
the introduction of Windows, the underlying differences endured; when a
Windows machine got into trouble, the old command-line interface would
fall down over the GUI like an asbestos fire curtain sealing off the
proscenium of a burning opera. When a Macintosh got into trouble it
presented you with a cartoon of a bomb, which was funny the first time
you saw it. And these were by no means superficial differences. The
reversion of Windows to a CLI when it was in distress proved to Mac
partisans that Windows was nothing more than a cheap facade, like a
garish afghan flung over a rotted-out sofa. They were disturbed and
annoyed by the sense that lurking underneath Windows' ostensibly
user-friendly interface was--literally--a subtext. For their part,
Windows fans might have made the sour observation that all computers,
even Macintoshes, were built on that same subtext, and that the refusal
of Mac owners to admit that fact to themselves seemed to signal a
willingness, almost an eagerness, to be duped. Anyway, a Macintosh had
to switch individual bits in the memory chips on the video card, and it
had to do it very fast, and in arbitrarily complicated patterns.
Nowadays this is cheap and easy, but in the technological regime that
prevailed in the early 1980s, the only realistic way to do it was to
build the motherboard (which contained the CPU) and the video system
(which contained the memory that was mapped onto the screen) as a
tightly integrated whole--hence the single, hermetically sealed case
that made the Macintosh so distinctive. When Windows came out, it was
conspicuous for its ugliness, and its current successors, Windows 95 and
Windows NT, are not things that people would pay money to look at
either. Microsoft's complete disregard for aesthetics gave all of us
Mac-lovers plenty of opportunities to look down our noses at them. That
Windows looked an awful lot like a direct ripoff of MacOS gave us a
burning sense of moral outrage to go with it. Among people who really
knew and appreciated computers (hackers, in Steven Levy's non-pejorative
sense of that word) and in a few other niches such as professional
musicians, graphic artists and schoolteachers, the Macintosh, for a
while, was simply the computer. It was seen as not only a superb piece
of engineering, but an embodiment of certain ideals about the use of
technology to benefit mankind, while Windows was seen as a pathetically
clumsy imitation and a sinister world domination plot rolled into one.
So very early, a pattern had been established that endures to this day:
people dislike Microsoft, which is okay; but they dislike it for reasons
that are poorly considered, and in the end, self-defeating. &nbsp;

CLASS STRUGGLE ON THE DESKTOP Now that the Third Rail has been firmly
grasped, it is worth reviewing some basic facts here: like any other
publicly traded, for-profit corporation, Microsoft has, in effect,
borrowed a bunch of money from some people (its stockholders) in order
to be in the bit business. As an officer of that corporation, Bill Gates
has one responsibility only, which is to maximize return on investment.
He has done this incredibly well. Any actions taken in the world by
Microsoft-any software released by them, for example--are basically
epiphenomena, which can't be interpreted or understood except insofar as
they reflect Bill Gates's execution of his one and only responsibility.
It follows that if Microsoft sells goods that are aesthetically
unappealing, or that don't work very well, it does not mean that they
are (respectively) philistines or half-wits. It is because Microsoft's
excellent management has figured out that they can make more money for
their stockholders by releasing stuff with obvious, known imperfections
than they can by making it beautiful or bug-free. This is annoying, but
(in the end) not half so annoying as watching Apple inscrutably and
relentlessly destroy itself. Hostility towards Microsoft is not
difficult to find on the Net, and it blends two strains: resentful
people who feel Microsoft is too powerful, and disdainful people who
think it's tacky. This is all strongly reminiscent of the heyday of
Communism and Socialism, when the bourgeoisie were hated from both ends:
by the proles, because they had all the money, and by the
intelligentsia, because of their tendency to spend it on lawn ornaments.
Microsoft is the very embodiment of modern high-tech prosperity--it is,
in a word, bourgeois--and so it attracts all of the same gripes. The
opening "splash screen" for Microsoft Word 6.0 summed it up pretty
neatly: when you started up the program you were treated to a picture of
an expensive enamel pen lying across a couple of sheets of fancy-looking
handmade writing paper. It was obviously a bid to make the software look
classy, and it might have worked for some, but it failed for me, because
the pen was a ballpoint, and I'm a fountain pen man. If Apple had done
it, they would've used a Mont Blanc fountain pen, or maybe a Chinese
calligraphy brush. And I doubt that this was an accident. Recently I
spent a while re-installing Windows NT on one of my home computers, and
many times had to double-click on the "Control Panel" icon. For reasons
that are difficult to fathom, this icon consists of a picture of a
clawhammer and a chisel or screwdriver resting on top of a file folder.
These aesthetic gaffes give one an almost uncontrollable urge to make
fun of Microsoft, but again, it is all beside the point--if Microsoft
had done focus group testing of possible alternative graphics, they
probably would have found that the average mid-level office worker
associated fountain pens with effete upper management toffs and was more
comfortable with ballpoints. Likewise, the regular guys, the balding
dads of the world who probably bear the brunt of setting up and
maintaining home computers, can probably relate better to a picture of a
clawhammer--while perhaps harboring fantasies of taking a real one to
their balky computers. This is the only way I can explain certain
peculiar facts about the current market for operating systems, such as
that ninety percent of all customers continue to buy station wagons off
the Microsoft lot while free tanks are there for the taking, right
across the street. A string of ones and zeroes was not a difficult thing
for Bill Gates to distribute, one he'd thought of the idea. The hard
part was selling it--reassuring customers that they were actually
getting something in return for their money. Anyone who has ever bought
a piece of software in a store has had the curiously deflating
experience of taking the bright shrink-wrapped box home, tearing it
open, finding that it's 95 percent air, throwing away all the little
cards, party favors, and bits of trash, and loading the disk into the
computer. The end result (after you've lost the disk) is nothing except
some images on a computer screen, and some capabilities that weren't
there before. Sometimes you don't even have that--you have a string of
error messages instead. But your money is definitely gone. Now we are
almost accustomed to this, but twenty years ago it was a very dicey
business proposition. Bill Gates made it work anyway. He didn't make it
work by selling the best software or offering the cheapest price.
Instead he somehow got people to believe that they were receiving
something in exchange for their money. The streets of every city in the
world are filled with those hulking, rattling station wagons. Anyone who
doesn't own one feels a little weird, and wonders, in spite of himself,
whether it might not be time to cease resistance and buy one; anyone who
does, feels confident that he has acquired some meaningful possession,
even on those days when the vehicle is up on a lift in an auto repair
shop. All of this is perfectly congruent with membership in the
bourgeoisie, which is as much a mental, as a material state. And it
explains why Microsoft is regularly attacked, on the Net, from both
sides. People who are inclined to feel poor and oppressed construe
everything Microsoft does as some sinister Orwellian plot. People who
like to think of themselves as intelligent and informed technology users
are driven crazy by the clunkiness of Windows. Nothing is more annoying
to sophisticated people to see someone who is rich enough to know better
being tacky--unless it is to realize, a moment later, that they probably
know they are tacky and they simply don't care and they are going to go
on being tacky, and rich, and happy, forever. Microsoft therefore bears
the same relationship to the Silicon Valley elite as the Beverly
Hillbillies did to their fussy banker, Mr. Drysdale--who is irritated
not so much by the fact that the Clampetts moved to his neighborhood as
by the knowledge that, when Jethro is seventy years old, he's still
going to be talking like a hillbilly and wearing bib overalls, and he's
still going to be a lot richer than Mr. Drysdale. Even the hardware that
Windows ran on, when compared to the machines put out by Apple, looked
like white-trash stuff, and still mostly does. The reason was that Apple
was and is a hardware company, while Microsoft was and is a software
company. Apple therefore had a monopoly on hardware that could run
MacOS, whereas Windows-compatible hardware came out of a free market.
The free market seems to have decided that people will not pay for
cool-looking computers; PC hardware makers who hire designers to make
their stuff look distinctive get their clocks cleaned by Taiwanese clone
makers punching out boxes that look as if they belong on cinderblocks in
front of someone's trailer. But Apple could make their hardware as
pretty as they wanted to and simply pass the higher prices on to their
besotted consumers, like me. Only last week (I am writing this sentence
in early Jan. 1999) the technology sections of all the newspapers were
filled with adulatory press coverage of how Apple had released the iMac
in several happenin' new colors like Blueberry and Tangerine. Apple has
always insisted on having a hardware monopoly, except for a brief period
in the mid-1990s when they allowed clone-makers to compete with them,
before subsequently putting them out of business. Macintosh hardware
was, consequently, expensive. You didn't open it up and fool around with
it because doing so would void the warranty. In fact the first Mac was
specifically designed to be difficult to open--you needed a kit of
exotic tools, which you could buy through little ads that began to
appear in the back pages of magazines a few months after the Mac came
out on the market. These ads always had a certain disreputable air about
them, like pitches for lock-picking tools in the backs of lurid
detective magazines. This monopolistic policy can be explained in at
least three different ways. THE CHARITABLE EXPLANATION is that the
hardware monopoly policy reflected a drive on Apple's part to provide a
seamless, unified blending of hardware, operating system, and software.
There is something to this. It is hard enough to make an OS that works
well on one specific piece of hardware, designed and tested by engineers
who work down the hallway from you, in the same company. Making an OS to
work on arbitrary pieces of hardware, cranked out by rabidly
entrepeneurial clonemakers on the other side of the International Date
Line, is very difficult, and accounts for much of the troubles people
have using Windows. THE FINANCIAL EXPLANATION is that Apple, unlike
Microsoft, is and always has been a hardware company. It simply depends
on revenue from selling hardware, and cannot exist without it. THE
NOT-SO-CHARITABLE EXPLANATION has to do with Apple's corporate culture,
which is rooted in Bay Area Baby Boomdom. Now, since I'm going to talk
for a moment about culture, full disclosure is probably in order, to
protect myself against allegations of conflict of interest and ethical
turpitude: (1) Geographically I am a Seattleite, of a Saturnine
temperament, and inclined to take a sour view of the Dionysian Bay Area,
just as they tend to be annoyed and appalled by us. (2) Chronologically
I am a post-Baby Boomer. I feel that way, at least, because I never
experienced the fun and exciting parts of the whole Boomer scene--just
spent a lot of time dutifully chuckling at Boomers' maddeningly
pointless anecdotes about just how stoned they got on various occasions,
and politely fielding their assertions about how great their music was.
But even from this remove it was possible to glean certain patterns, and
one that recurred as regularly as an urban legend was the one about how
someone would move into a commune populated by sandal-wearing,
peace-sign flashing flower children, and eventually discover that,
underneath this facade, the guys who ran it were actually control
freaks; and that, as living in a commune, where much lip service was
paid to ideals of peace, love and harmony, had deprived them of normal,
socially approved outlets for their control-freakdom, it tended to come
out in other, invariably more sinister, ways. Applying this to the case
of Apple Computer will be left as an exercise for the reader, and not a
very difficult exercise. It is a bit unsettling, at first, to think of
Apple as a control freak, because it is completely at odds with their
corporate image. Weren't these the guys who aired the famous Super Bowl
ads showing suited, blindfolded executives marching like lemmings off a
cliff? Isn't this the company that even now runs ads picturing the Dalai
Lama (except in Hong Kong) and Einstein and other offbeat rebels? It is
indeed the same company, and the fact that they have been able to plant
this image of themselves as creative and rebellious free-thinkers in the
minds of so many intelligent and media-hardened skeptics really gives
one pause. It is testimony to the insidious power of expensive slick ad
campaigns and, perhaps, to a certain amount of wishful thinking in the
minds of people who fall for them. It also raises the question of why
Microsoft is so bad at PR, when the history of Apple demonstrates that,
by writing large checks to good ad agencies, you can plant a corporate
image in the minds of intelligent people that is completely at odds with
reality. (The answer, for people who don't like Damoclean questions, is
that since Microsoft has won the hearts and minds of the silent
majority--the bourgeoisie--they don't give a damn about having a slick
image, any more then Dick Nixon did. "I want to believe,"--the mantra
that Fox Mulder has pinned to his office wall in The X-Files--applies in
different ways to these two companies; Mac partisans want to believe in
the image of Apple purveyed in those ads, and in the notion that Macs
are somehow fundamentally different from other computers, while Windows
people want to believe that they are getting something for their money,
engaging in a respectable business transaction). In any event, as of
1987, both MacOS and Windows were out on the market, running on hardware
platforms that were radically different from each other--not only in the
sense that MacOS used Motorola CPU chips while Windows used Intel, but
in the sense--then overlooked, but in the long run, vastly more
significant--that the Apple hardware business was a rigid monopoly and
the Windows side was a churning free-for-all. But the full ramifications
of this did not become clear until very recently--in fact, they are
still unfolding, in remarkably strange ways, as I'll explain when we get
to Linux. The upshot is that millions of people got accustomed to using
GUIs in one form or another. By doing so, they made Apple/Microsoft a
lot of money. The fortunes of many people have become bound up with the
ability of these companies to continue selling products whose salability
is very much open to question. &nbsp;

HONEY-POT, TAR-PIT, WHATEVER

When Gates and Allen invented the idea of selling software, they ran
into criticism from both hackers and sober-sided businesspeople. Hackers
understood that software was just information, and objected to the idea
of selling it. These objections were partly moral. The hackers were
coming out of the scientific and academic world where it is imperative
to make the results of one's work freely available to the public. They
were also partly practical; how can you sell something that can be
easily copied? Businesspeople, who are polar opposites of hackers in so
many ways, had objections of their own. Accustomed to selling toasters
and insurance policies, they naturally had a difficult time
understanding how a long collection of ones and zeroes could constitute
a salable product. Obviously Microsoft prevailed over these objections,
and so did Apple. But the objections still exist. The most hackerish of
all the hackers, the Ur-hacker as it were, was and is Richard Stallman,
who became so annoyed with the evil practice of selling software that,
in 1984 (the same year that the Macintosh went on sale) he went off and
founded something called the Free Software Foundation, which commenced
work on something called GNU. Gnu is an acronym for Gnu's Not Unix, but
this is a joke in more ways than one, because GNU most certainly IS
Unix,. Because of trademark concerns ("Unix" is trademarked by AT&amp;T)
they simply could not claim that it was Unix, and so, just to be extra
safe, they claimed that it wasn't. Notwithstanding the incomparable
talent and drive possessed by Mr. Stallman and other GNU adherents,
their project to build a free Unix to compete against Microsoft and
Apple's OSes was a little bit like trying to dig a subway system with a
teaspoon. Until, that is, the advent of Linux, which I will get to
later. But the basic idea of re-creating an operating system from
scratch was perfectly sound and completely doable. It has been done many
times. It is inherent in the very nature of operating systems. Operating
systems are not strictly necessary. There is no reason why a
sufficiently dedicated coder could not start from nothing with every
project and write fresh code to handle such basic, low-level operations
as controlling the read/write heads on the disk drives and lighting up
pixels on the screen. The very first computers had to be programmed in
this way. But since nearly every program needs to carry out those same
basic operations, this approach would lead to vast duplication of
effort. Nothing is more disagreeable to the hacker than duplication of
effort. The first and most important mental habit that people develop
when they learn how to write computer programs is to generalize,
generalize, generalize. To make their code as modular and flexible as
possible, breaking large problems down into small subroutines that can
be used over and over again in different contexts. Consequently, the
development of operating systems, despite being technically unnecessary,
was inevitable. Because at its heart, an operating system is nothing
more than a library containing the most commonly used code, written once
(and hopefully written well) and then made available to every coder who
needs it. So a proprietary, closed, secret operating system is a
contradiction in terms. It goes against the whole point of having an
operating system. And it is impossible to keep them secret anyway. The
source code--the original lines of text written by the programmers--can
be kept secret. But an OS as a whole is a collection of small
subroutines that do very specific, very clearly defined jobs. Exactly
what those subroutines do has to be made public, quite explicitly and
exactly, or else the OS is completely useless to programmers; they can't
make use of those subroutines if they don't have a complete and perfect
understanding of what the subroutines do. The only thing that isn't made
public is exactly how the subroutines do what they do. But once you know
what a subroutine does, it's generally quite easy (if you are a hacker)
to write one of your own that does exactly the same thing. It might take
a while, and it is tedious and unrewarding, but in most cases it's not
really hard. What's hard, in hacking as in fiction, is not writing; it's
deciding what to write. And the vendors of commercial OSes have already
decided, and published their decisions. This has been generally
understood for a long time. MS-DOS was duplicated, functionally, by a
rival product, written from scratch, called ProDOS, that did all of the
same things in pretty much the same way. In other words, another company
was able to write code that did all of the same things as MS-DOS and
sell it at a profit. If you are using the Linux OS, you can get a free
program called WINE which is a windows emulator; that is, you can open
up a window on your desktop that runs windows programs. It means that a
completely functional Windows OS has been recreated inside of Unix, like
a ship in a bottle. And Unix itself, which is vastly more sophisticated
than MS-DOS, has been built up from scratch many times over. Versions of
it are sold by Sun, Hewlett-Packard, AT&amp;T, Silicon Graphics, IBM,
and others. People have, in other words, been re-writing basic OS code
for so long that all of the technology that constituted an "operating
system" in the traditional (pre-GUI) sense of that phrase is now so
cheap and common that it's literally free. Not only could Gates and
Allen not sell MS-DOS today, they could not even give it away, because
much more powerful OSes are already being given away. Even the original
Windows (which was the only windows until 1995) has become worthless, in
that there is no point in owning something that can be emulated inside
of Linux--which is, itself, free. In this way the OS business is very
different from, say, the car business. Even an old rundown car has some
value. You can use it for making runs to the dump, or strip it for
parts. It is the fate of manufactured goods to slowly and gently
depreciate as they get old and have to compete against more modern
products. But it is the fate of operating systems to become free.
Microsoft is a great software applications company. Applications--such
as Microsoft Word--are an area where innovation brings real, direct,
tangible benefits to users. The innovations might be new technology
straight from the research department, or they might be in the category
of bells and whistles, but in any event they are frequently useful and
they seem to make users happy. And Microsoft is in the process of
becoming a great research company. But Microsoft is not such a great
operating systems company. And this is not necessarily because their
operating systems are all that bad from a purely technological
standpoint. Microsoft's OSes do have their problems, sure, but they are
vastly better than they used to be, and they are adequate for most
people. Why, then, do I say that Microsoft is not such a great operating
systems company? Because the very nature of operating systems is such
that it is senseless for them to be developed and owned by a specific
company. It's a thankless job to begin with. Applications create
possibilities for millions of credulous users, whereas OSes impose
limitations on thousands of grumpy coders, and so OS-makers will forever
be on the shit-list of anyone who counts for anything in the high-tech
world. Applications get used by people whose big problem is
understanding all of their features, whereas OSes get hacked by coders
who are annoyed by their limitations. The OS business has been good to
Microsoft only insofar as it has given them the money they needed to
launch a really good applications software business and to hire a lot of
smart researchers. Now it really ought to be jettisoned, like a spent
booster stage from a rocket. The big question is whether Microsoft is
capable of doing this. Or is it addicted to OS sales in the same way as
Apple is to selling hardware? Keep in mind that Apple's ability to
monopolize its own hardware supply was once cited, by learned observers,
as a great advantage over Microsoft. At the time, it seemed to place
them in a much stronger position. In the end, it nearly killed them, and
may kill them yet. The problem, for Apple, was that most of the world's
computer users ended up owning cheaper hardware. But cheap hardware
couldn't run MacOS, and so these people switched to Windows. Replace
"hardware" with "operating systems," and "Apple" with "Microsoft" and
you can see the same thing about to happen all over again. Microsoft
dominates the OS market, which makes them money and seems like a great
idea for now. But cheaper and better OSes are available, and they are
growingly popular in parts of the world that are not so saturated with
computers as the US. Ten years from now, most of the world's computer
users may end up owning these cheaper OSes. But these OSes do not, for
the time being, run any Microsoft applications, and so these people will
use something else. To put it more directly: every time someone decides
to use a non-Microsoft OS, Microsoft's OS division, obviously, loses a
customer. But, as things stand now, Microsoft's applications division
loses a customer too. This is not such a big deal as long as almost
everyone uses Microsoft OSes. But as soon as Windows' market share
begins to slip, the math starts to look pretty dismal for the people in
Redmond. This argument could be countered by saying that Microsoft could
simply re-compile its applications to run under other OSes. But this
strategy goes against most normal corporate instincts. Again the case of
Apple is instructive. When things started to go south for Apple, they
should have ported their OS to cheap PC hardware. But they didn't.
Instead, they tried to make the most of their brilliant hardware, adding
new features and expanding the product line. But this only had the
effect of making their OS more dependent on these special hardware
features, which made it worse for them in the end. Likewise, when
Microsoft's position in the OS world is threatened, their corporate
instincts will tell them to pile more new features into their operating
systems, and then re-jigger their software applications to exploit those
special features. But this will only have the effect of making their
applications dependent on an OS with declining market share, and make it
worse for them in the end. The operating system market is a death-trap,
a tar-pit, a slough of despond. There are only two reasons to invest in
Apple and Microsoft. (1) each of these companies is in what we would
call a co-dependency relationship with their customers. The customers
Want To Believe, and Apple and Microsoft know how to give them what they
want. (2) each company works very hard to add new features to their
OSes, which works to secure customer loyalty, at least for a little
while. Accordingly, most of the remainder of this essay will be about
those two topics.

THE TECHNOSPHERE Unix is the only OS remaining whose GUI (a vast suite
of code called the X Windows System) is separate from the OS in the old
sense of the phrase. This is to say that you can run Unix in pure
command-line mode if you want to, with no windows, icons, mouses, etc.
whatsoever, and it will still be Unix and capable of doing everything
Unix is supposed to do. But the other OSes: MacOS, the Windows family,
and BeOS, have their GUIs tangled up with the old-fashioned OS functions
to the extent that they have to run in GUI mode, or else they are not
really running. So it's no longer really possible to think of GUIs as
being distinct from the OS; they're now an inextricable part of the OSes
that they belong to--and they are by far the largest part, and by far
the most expensive and difficult part to create. There are only two ways
to sell a product: price and features. When OSes are free, OS companies
cannot compete on price, and so they compete on features. This means
that they are always trying to outdo each other writing code that, until
recently, was not considered to be part of an OS at all: stuff like
GUIs. This explains a lot about how these companies behave. It explains
why Microsoft added a browser to their OS, for example. It is easy to
get free browsers, just as to get free OSes. If browsers are free, and
OSes are free, it would seem that there is no way to make money from
browsers or OSes. But if you can integrate a browser into the OS and
thereby imbue both of them with new features, you have a salable
product. Setting aside, for the moment, the fact that this makes
government anti-trust lawyers really mad, this strategy makes sense. At
least, it makes sense if you assume (as Microsoft's management appears
to) that the OS has to be protected at all costs. The real question is
whether every new technological trend that comes down the pike ought to
be used as a crutch to maintain the OS's dominant position. Confronted
with the Web phenomenon, Microsoft had to develop a really good web
browser, and they did. But then they had a choice: they could have made
that browser work on many different OSes, which would give Microsoft a
strong position in the Internet world no matter what happened to their
OS market share. Or they could make the browser one with the OS,
gambling that this would make the OS look so modern and sexy that it
would help to preserve their dominance in that market. The problem is
that when Microsoft's OS position begins to erode (and since it is
currently at something like ninety percent, it can't go anywhere but
down) it will drag everything else down with it. In your high school
geology class you probably were taught that all life on earth exists in
a paper-thin shell called the biosphere, which is trapped between
thousands of miles of dead rock underfoot, and cold dead radioactive
empty space above. Companies that sell OSes exist in a sort of
technosphere. Underneath is technology that has already become free.
Above is technology that has yet to be developed, or that is too crazy
and speculative to be productized just yet. Like the Earth's biosphere,
the technosphere is very thin compared to what is above and what is
below. But it moves a lot faster. In various parts of our world, it is
possible to go and visit rich fossil beds where skeleton lies piled upon
skeleton, recent ones on top and more ancient ones below. In theory they
go all the way back to the first single-celled organisms. And if you use
your imagination a bit, you can understand that, if you hang around long
enough, you'll become fossilized there too, and in time some more
advanced organism will become fossilized on top of you. The fossil
record--the La Brea Tar Pit--of software technology is the Internet.
Anything that shows up there is free for the taking (possibly illegal,
but free). Executives at companies like Microsoft must get used to the
experience--unthinkable in other industries--of throwing millions of
dollars into the development of new technologies, such as Web browsers,
and then seeing the same or equivalent software show up on the Internet
two years, or a year, or even just a few months, later. By continuing to
develop new technologies and add features onto their products they can
keep one step ahead of the fossilization process, but on certain days
they must feel like mammoths caught at La Brea, using all their energies
to pull their feet, over and over again, out of the sucking hot tar that
wants to cover and envelop them. Survival in this biosphere demands
sharp tusks and heavy, stomping feet at one end of the organization, and
Microsoft famously has those. But trampling the other mammoths into the
tar can only keep you alive for so long. The danger is that in their
obsession with staying out of the fossil beds, these companies will
forget about what lies above the biosphere: the realm of new technology.
In other words, they must hang onto their primitive weapons and crude
competitive instincts, but also evolve powerful brains. This appears to
be what Microsoft is doing with its research division, which has been
hiring smart people right and left (Here I should mention that although
I know, and socialize with, several people in that company's research
division, we never talk about business issues and I have little to no
idea what the hell they are up to. I have learned much more about
Microsoft by using the Linux operating system than I ever would have
done by using Windows). Never mind how Microsoft used to make money;
today, it is making its money on a kind of temporal arbitrage.
"Arbitrage," in the usual sense, means to make money by taking advantage
of differences in the price of something between different markets. It
is spatial, in other words, and hinges on the arbitrageur knowing what
is going on simultaneously in different places. Microsoft is making
money by taking advantage of differences in the price of technology in
different times. Temporal arbitrage, if I may coin a phrase, hinges on
the arbitrageur knowing what technologies people will pay money for next
year, and how soon afterwards those same technologies will become free.
What spatial and temporal arbitrage have in common is that both hinge on
the arbitrageur's being extremely well-informed; one about price
gradients across space at a given time, and the other about price
gradients over time in a given place. So Apple/Microsoft shower new
features upon their users almost daily, in the hopes that a steady
stream of genuine technical innovations, combined with the "I want to
believe" phenomenon, will prevent their customers from looking across
the road towards the cheaper and better OSes that are available to them.
The question is whether this makes sense in the long run. If Microsoft
is addicted to OSes as Apple is to hardware, then they will bet the
whole farm on their OSes, and tie all of their new applications and
technologies to them. Their continued survival will then depend on these
two things: adding more features to their OSes so that customers will
not switch to the cheaper alternatives, and maintaining the image that,
in some mysterious way, gives those customers the feeling that they are
getting something for their money. The latter is a truly strange and
interesting cultural phenomenon.

THE INTERFACE CULTURE

A few years ago I walked into a grocery store somewhere and was
presented with the following tableau vivant: near the entrance a young
couple were standing in front of a large cosmetics display. The man was
stolidly holding a shopping basket between his hands while his mate
raked blister-packs of makeup off the display and piled them in. Since
then I've always thought of that man as the personification of an
interesting human tendency: not only are we not offended to be dazzled
by manufactured images, but we like it. We practically insist on it. We
are eager to be complicit in our own dazzlement: to pay money for a
theme park ride, vote for a guy who's obviously lying to us, or stand
there holding the basket as it's filled up with cosmetics. I was in
Disney World recently, specifically the part of it called the Magic
Kingdom, walking up Main Street USA. This is a perfect gingerbready
Victorian small town that culminates in a Disney castle. It was very
crowded; we shuffled rather than walked. Directly in front of me was a
man with a camcorder. It was one of the new breed of camcorders where
instead of peering through a viewfinder you gaze at a flat-panel color
screen about the size of a playing card, which televises live coverage
of whatever the camcorder is seeing. He was holding the appliance close
to his face, so that it obstructed his view. Rather than go see a real
small town for free, he had paid money to see a pretend one, and rather
than see it with the naked eye he was watching it on television. And
rather than stay home and read a book, I was watching him. Americans'
preference for mediated experiences is obvious enough, and I'm not going
to keep pounding it into the ground. I'm not even going to make snotty
comments about it--after all, I was at Disney World as a paying
customer. But it clearly relates to the colossal success of GUIs and so
I have to talk about it some. Disney does mediated experiences better
than anyone. If they understood what OSes are, and why people use them,
they could crush Microsoft in a year or two. In the part of Disney World
called the Animal Kingdom there is a new attraction, slated to open in
March 1999, called the Maharajah Jungle Trek. It was open for sneak
previews when I was there. This is a complete stone-by-stone
reproduction of a hypothetical ruin in the jungles of India. According
to its backstory, it was built by a local rajah in the 16th Century as a
game reserve. He would go there with his princely guests to hunt Bengal
tigers. As time went on it fell into disrepair and the tigers and
monkeys took it over; eventually, around the time of India's
independence, it became a government wildlife reserve, now open to
visitors. The place looks more like what I have just described than any
actual building you might find in India. All the stones in the broken
walls are weathered as if monsoon rains had been trickling down them for
centuries, the paint on the gorgeous murals is flaked and faded just so,
and Bengal tigers loll amid stumps of broken columns. Where modern
repairs have been made to the ancient structure, they've been done, not
as Disney's engineers would do them, but as thrifty Indian janitors
would--with hunks of bamboo and rust-spotted hunks of rebar. The rust is
painted on, or course, and protected from real rust by a plastic
clear-coat, but you can't tell unless you get down on your knees. In one
place you walk along a stone wall with a series of old pitted friezes
carved into it. One end of the wall has broken off and settled into the
earth, perhaps because of some long-forgotten earthquake, and so a broad
jagged crack runs across a panel or two, but the story is still
readable: first, primordial chaos leads to a flourishing of many animal
species. Next, we see the Tree of Life surrounded by diverse animals.
This is an obvious allusion (or, in showbiz lingo, a tie-in) to the
gigantic Tree of Life that dominates the center of Disney's Animal
Kingdom just as the Castle dominates the Magic Kingdom or the Sphere
does Epcot. But it's rendered in historically correct style and could
probably fool anyone who didn't have a Ph.D. in Indian art history. The
next panel shows a mustachioed H. sapiens chopping down the Tree of Life
with a scimitar, and the animals fleeing every which way. The one after
that shows the misguided human getting walloped by a tidal wave, part of
a latter-day Deluge presumably brought on by his stupidity. The final
panel, then, portrays the Sapling of Life beginning to grow back, but
now Man has ditched the edged weapon and joined the other animals in
standing around to adore and praise it. It is, in other words, a
prophecy of the Bottleneck: the scenario, commonly espoused among
modern-day environmentalists, that the world faces an upcoming period of
grave ecological tribulations that will last for a few decades or
centuries and end when we find a new harmonious modus vivendi with
Nature. Taken as a whole the frieze is a pretty brilliant piece of work.
Obviously it's not an ancient Indian ruin, and some person or people now
living deserve credit for it. But there are no signatures on the
Maharajah's game reserve at Disney World. There are no signatures on
anything, because it would ruin the whole effect to have long strings of
production credits dangling from every custom-worn brick, as they do
from Hollywood movies. Among Hollywood writers, Disney has the
reputation of being a real wicked stepmother. It's not hard to see why.
Disney is in the business of putting out a product of seamless
illusion--a magic mirror that reflects the world back better than it
really is. But a writer is literally talking to his or her readers, not
just creating an ambience or presenting them with something to look at;
and just as the command-line interface opens a much more direct and
explicit channel from user to machine than the GUI, so it is with words,
writer, and reader. The word, in the end, is the only system of encoding
thoughts--the only medium--that is not fungible, that refuses to
dissolve in the devouring torrent of electronic media (the richer
tourists at Disney World wear t-shirts printed with the names of famous
designers, because designs themselves can be bootlegged easily and with
impunity. The only way to make clothing that cannot be legally
bootlegged is to print copyrighted and trademarked words on it; once you
have taken that step, the clothing itself doesn't really matter, and so
a t-shirt is as good as anything else. T-shirts with expensive words on
them are now the insignia of the upper class. T-shirts with cheap words,
or no words at all, are for the commoners). But this special quality of
words and of written communication would have the same effect on
Disney's product as spray-painted graffiti on a magic mirror. So Disney
does most of its communication without resorting to words, and for the
most part, the words aren't missed. Some of Disney's older properties,
such as Peter Pan, Winnie the Pooh, and Alice in Wonderland, came out of
books. But the authors' names are rarely if ever mentioned, and you
can't buy the original books at the Disney store. If you could, they
would all seem old and queer, like very bad knockoffs of the purer, more
authentic Disney versions. Compared to more recent productions like
Beauty and the Beast and Mulan, the Disney movies based on these books
(particularly Alice in Wonderland and Peter Pan) seem deeply bizarre,
and not wholly appropriate for children. That stands to reason, because
Lewis Carroll and J.M. Barrie were very strange men, and such is the
nature of the written word that their personal strangeness shines
straight through all the layers of Disneyfication like x-rays through a
wall. Probably for this very reason, Disney seems to have stopped buying
books altogether, and now finds its themes and characters in folk tales,
which have the lapidary, time-worn quality of the ancient bricks in the
Maharajah's ruins. If I can risk a broad generalization, most of the
people who go to Disney World have zero interest in absorbing new ideas
from books. Which sounds snide, but listen: they have no qualms about
being presented with ideas in other forms. Disney World is stuffed with
environmental messages now, and the guides at Animal Kingdom can talk
your ear off about biology. If you followed those tourists home, you
might find art, but it would be the sort of unsigned folk art that's for
sale in Disney World's African- and Asian-themed stores. In general they
only seem comfortable with media that have been ratified by great age,
massive popular acceptance, or both. In this world, artists are like the
anonymous, illiterate stone carvers who built the great cathedrals of
Europe and then faded away into unmarked graves in the churchyard. The
cathedral as a whole is awesome and stirring in spite, and possibly
because, of the fact that we have no idea who built it. When we walk
through it we are communing not with individual stone carvers but with
an entire culture. Disney World works the same way. If you are an
intellectual type, a reader or writer of books, the nicest thing you can
say about this is that the execution is superb. But it's easy to find
the whole environment a little creepy, because something is missing: the
translation of all its content into clear explicit written words, the
attribution of the ideas to specific people. You can't argue with it. It
seems as if a hell of a lot might be being glossed over, as if Disney
World might be putting one over on us, and possibly getting away with
all kinds of buried assumptions and muddled thinking. But this is
precisely the same as what is lost in the transition from the
command-line interface to the GUI. Disney and Apple/Microsoft are in the
same business: short-circuiting laborious, explicit verbal communication
with expensively designed interfaces. Disney is a sort of user interface
unto itself--and more than just graphical. Let's call it a Sensorial
Interface. It can be applied to anything in the world, real or imagined,
albeit at staggering expense. Why are we rejecting explicit word-based
interfaces, and embracing graphical or sensorial ones--a trend that
accounts for the success of both Microsoft and Disney? Part of it is
simply that the world is very complicated now--much more complicated
than the hunter-gatherer world that our brains evolved to cope with--and
we simply can't handle all of the details. We have to delegate. We have
no choice but to trust some nameless artist at Disney or programmer at
Apple or Microsoft to make a few choices for us, close off some options,
and give us a conveniently packaged executive summary. But more
importantly, it comes out of the fact that, during this century,
intellectualism failed, and everyone knows it. In places like Russia and
Germany, the common people agreed to loosen their grip on traditional
folkways, mores, and religion, and let the intellectuals run with the
ball, and they screwed everything up and turned the century into an
abbatoir. Those wordy intellectuals used to be merely tedious; now they
seem kind of dangerous as well. We Americans are the only ones who
didn't get creamed at some point during all of this. We are free and
prosperous because we have inherited political and values systems
fabricated by a particular set of eighteenth-century intellectuals who
happened to get it right. But we have lost touch with those
intellectuals, and with anything like intellectualism, even to the point
of not reading books any more, though we are literate. We seem much more
comfortable with propagating those values to future generations
nonverbally, through a process of being steeped in media. Apparently
this actually works to some degree, for police in many lands are now
complaining that local arrestees are insisting on having their Miranda
rights read to them, just like perps in American TV cop shows. When it's
explained to them that they are in a different country, where those
rights do not exist, they become outraged. Starsky and Hutch reruns,
dubbed into diverse languages, may turn out, in the long run, to be a
greater force for human rights than the Declaration of Independence. A
huge, rich, nuclear-tipped culture that propagates its core values
through media steepage seems like a bad idea. There is an obvious risk
of running astray here. Words are the only immutable medium we have,
which is why they are the vehicle of choice for extremely important
concepts like the Ten Commandments, the Koran, and the Bill of Rights.
Unless the messages conveyed by our media are somehow pegged to a fixed,
written set of precepts, they can wander all over the place and possibly
dump loads of crap into people's minds. Orlando used to have a military
installation called McCoy Air Force Base, with long runways from which
B-52s could take off and reach Cuba, or just about anywhere else, with
loads of nukes. But now McCoy has been scrapped and repurposed. It has
been absorbed into Orlando's civilian airport. The long runways are
being used to land 747-loads of tourists from Brazil, Italy, Russia and
Japan, so that they can come to Disney World and steep in our media for
a while. To traditional cultures, especially word-based ones such as
Islam, this is infinitely more threatening than the B-52s ever were. It
is obvious, to everyone outside of the United States, that our
arch-buzzwords, multiculturalism and diversity, are false fronts that
are being used (in many cases unwittingly) to conceal a global trend to
eradicate cultural differences. The basic tenet of multiculturalism (or
"honoring diversity" or whatever you want to call it) is that people
need to stop judging each other-to stop asserting (and, eventually, to
stop believing) that this is right and that is wrong, this true and that
false, one thing ugly and another thing beautiful, that God exists and
has this or that set of qualities. The lesson most people are taking
home from the Twentieth Century is that, in order for a large number of
different cultures to coexist peacefully on the globe (or even in a
neighborhood) it is necessary for people to suspend judgment in this
way. Hence (I would argue) our suspicion of, and hostility towards, all
authority figures in modern culture. As David Foster Wallace has
explained in his essay "E Unibus Pluram," this is the fundamental
message of television; it is the message that people take home, anyway,
after they have steeped in our media long enough. It's not expressed in
these highfalutin terms, of course. It comes through as the presumption
that all authority figures--teachers, generals, cops, ministers,
politicians--are hypocritical buffoons, and that hip jaded coolness is
the only way to be. The problem is that once you have done away with the
ability to make judgments as to right and wrong, true and false, etc.,
there's no real culture left. All that remains is clog dancing and
macrame. The ability to make judgments, to believe things, is the entire
it point of having a culture. I think this is why guys with machine guns
sometimes pop up in places like Luxor, and begin pumping bullets into
Westerners. They perfectly understand the lesson of McCoy Air Force
Base. When their sons come home wearing Chicago Bulls caps with the
bills turned sideways, the dads go out of their minds. The global
anti-culture that has been conveyed into every cranny of the world by
television is a culture unto itself, and by the standards of great and
ancient cultures like Islam and France, it seems grossly inferior, at
least at first. The only good thing you can say about it is that it
makes world wars and Holocausts less likely--and that is actually a
pretty good thing! The only real problem is that anyone who has no
culture, other than this global monoculture, is completely screwed.
Anyone who grows up watching TV, never sees any religion or philosophy,
is raised in an atmosphere of moral relativism, learns about civics from
watching bimbo eruptions on network TV news, and attends a university
where postmodernists vie to outdo each other in demolishing traditional
notions of truth and quality, is going to come out into the world as one
pretty feckless human being. And--again--perhaps the goal of all this is
to make us feckless so we won't nuke each other. On the other hand, if
you are raised within some specific culture, you end up with a basic set
of tools that you can use to think about and understand the world. You
might use those tools to reject the culture you were raised in, but at
least you've got some tools. In this country, the people who run
things--who populate major law firms and corporate boards--understand
all of this at some level. They pay lip service to multiculturalism and
diversity and non-judgmentalness, but they don't raise their own
children that way. I have highly educated, technically sophisticated
friends who have moved to small towns in Iowa to live and raise their
children, and there are Hasidic Jewish enclaves in New York where large
numbers of kids are being brought up according to traditional beliefs.
Any suburban community might be thought of as a place where people who
hold certain (mostly implicit) beliefs go to live among others who think
the same way. And not only do these people feel some responsibility to
their own children, but to the country as a whole. Some of the upper
class are vile and cynical, of course, but many spend at least part of
their time fretting about what direction the country is going in, and
what responsibilities they have. And so issues that are important to
book-reading intellectuals, such as global environmental collapse,
eventually percolate through the porous buffer of mass culture and show
up as ancient Hindu ruins in Orlando. You may be asking: what the hell
does all this have to do with operating systems? As I've explained,
there is no way to explain the domination of the OS market by
Apple/Microsoft without looking to cultural explanations, and so I can't
get anywhere, in this essay, without first letting you know where I'm
coming from vis-a-vis contemporary culture. Contemporary culture is a
two-tiered system, like the Morlocks and the Eloi in H.G. Wells's The
Time Machine, except that it's been turned upside down. In The Time
Machine the Eloi were an effete upper class, supported by lots of
subterranean Morlocks who kept the technological wheels turning. But in
our world it's the other way round. The Morlocks are in the minority,
and they are running the show, because they understand how everything
works. The much more numerous Eloi learn everything they know from being
steeped from birth in electronic media directed and controlled by
book-reading Morlocks. So many ignorant people could be dangerous if
they got pointed in the wrong direction, and so we've evolved a popular
culture that is (a) almost unbelievably infectious and (b) neuters every
person who gets infected by it, by rendering them unwilling to make
judgments and incapable of taking stands. Morlocks, who have the energy
and intelligence to comprehend details, go out and master complex
subjects and produce Disney-like Sensorial Interfaces so that Eloi can
get the gist without having to strain their minds or endure boredom.
Those Morlocks will go to India and tediously explore a hundred ruins,
then come home and built sanitary bug-free versions: highlight films, as
it were. This costs a lot, because Morlocks insist on good coffee and
first-class airline tickets, but that's no problem because Eloi like to
be dazzled and will gladly pay for it all. Now I realize that most of
this probably sounds snide and bitter to the point of absurdity: your
basic snotty intellectual throwing a tantrum about those unlettered
philistines. As if I were a self-styled Moses, coming down from the
mountain all alone, carrying the stone tablets bearing the Ten
Commandments carved in immutable stone--the original command-line
interface--and blowing his stack at the weak, unenlightened Hebrews
worshipping images. Not only that, but it sounds like I'm pumping some
sort of conspiracy theory. But that is not where I'm going with this.
The situation I describe, here, could be bad, but doesn't have to be bad
and isn't necessarily bad now: &nbsp;


It simply is the case that we are way too busy, nowadays, to comprehend
everything in detail. And it's better to comprehend it dimly, through an
interface, than not at all. Better for ten million Eloi to go on the
Kilimanjaro Safari at Disney World than for a thousand cardiovascular
surgeons and mutual fund managers to go on "real" ones in Kenya.


The boundary between these two classes is more porous than I've made it
sound. I'm always running into regular dudes--construction workers, auto
mechanics, taxi drivers, galoots in general--who were largely aliterate
until something made it necessary for them to become readers and start
actually thinking about things. Perhaps they had to come to grips with
alcoholism, perhaps they got sent to jail, or came down with a disease,
or suffered a crisis in religious faith, or simply got bored. Such
people can get up to speed on particular subjects quite rapidly.
Sometimes their lack of a broad education makes them over-apt to go off
on intellectual wild goose chases, but, hey, at least a wild goose chase
gives you some exercise.


The spectre of a polity controlled by the fads and whims of voters who
actually believe that there are significant differences between Bud Lite
and Miller Lite, and who think that professional wrestling is for real,
is naturally alarming to people who don't. But then countries controlled
via the command-line interface, as it were, by double-domed
intellectuals, be they religious or secular, are generally miserable
places to live.


Sophisticated people deride Disneyesque entertainments as pat and
saccharine, but, hey, if the result of that is to instill basically warm
and sympathetic reflexes, at a preverbal level, into hundreds of
millions of unlettered media-steepers, then how bad can it be? We killed
a lobster in our kitchen last night and my daughter cried for an hour.
The Japanese, who used to be just about the fiercest people on earth,
have become infatuated with cuddly adorable cartoon characters.


My own family--the people I know best--is divided about evenly between
people who will probably read this essay and people who almost certainly
won't, and I can't say for sure that one group is necessarily warmer,
happier, or better-adjusted than the other.

MORLOCKS AND ELOI AT THE KEYBOARD

Back in the days of the command-line interface, users were all Morlocks
who had to convert their thoughts into alphanumeric symbols and type
them in, a grindingly tedious process that stripped away all ambiguity,
laid bare all hidden assumptions, and cruelly punished laziness and
imprecision. Then the interface-makers went to work on their GUIs, and
introduced a new semiotic layer between people and machines. People who
use such systems have abdicated the responsibility, and surrendered the
power, of sending bits directly to the chip that's doing the arithmetic,
and handed that responsibility and power over to the OS. This is
tempting because giving clear instructions, to anyone or anything, is
difficult. We cannot do it without thinking, and depending on the
complexity of the situation, we may have to think hard about abstract
things, and consider any number of ramifications, in order to do a good
job of it. For most of us, this is hard work. We want things to be
easier. How badly we want it can be measured by the size of Bill Gates's
fortune. The OS has (therefore) become a sort of intellectual
labor-saving device that tries to translate humans' vaguely expressed
intentions into bits. In effect we are asking our computers to shoulder
responsibilities that have always been considered the province of human
beings--we want them to understand our desires, to anticipate our needs,
to foresee consequences, to make connections, to handle routine chores
without being asked, to remind us of what we ought to be reminded of
while filtering out noise. At the upper (which is to say, closer to the
user) levels, this is done through a set of conventions--menus, buttons,
and so on. These work in the sense that analogies work: they help Eloi
understand abstract or unfamiliar concepts by likening them to something
known. But the loftier word "metaphor" is used. The overarching concept
of the MacOS was the "desktop metaphor" and it subsumed any number of
lesser (and frequently conflicting, or at least mixed) metaphors. Under
a GUI, a file (frequently called "document") is metaphrased as a window
on the screen (which is called a "desktop"). The window is almost always
too small to contain the document and so you "move around," or, more
pretentiously, "navigate" in the document by "clicking and dragging" the
"thumb" on the "scroll bar." When you "type" (using a keyboard) or
"draw" (using a "mouse") into the "window" or use pull-down "menus" and
"dialog boxes" to manipulate its contents, the results of your labors
get stored (at least in theory) in a "file," and later you can pull the
same information back up into another "window." When you don't want it
anymore, you "drag" it into the "trash." There is massively promiscuous
metaphor-mixing going on here, and I could deconstruct it 'til the cows
come home, but I won't. Consider only one word: "document." When we
document something in the real world, we make fixed, permanent,
immutable records of it. But computer documents are volatile, ephemeral
constellations of data. Sometimes (as when you've just opened or saved
them) the document as portrayed in the window is identical to what is
stored, under the same name, in a file on the disk, but other times (as
when you have made changes without saving them) it is completely
different. In any case, every time you hit "Save" you annihilate the
previous version of the "document" and replace it with whatever happens
to be in the window at the moment. So even the word "save" is being used
in a sense that is grotesquely misleading---"destroy one version, save
another" would be more accurate. Anyone who uses a word processor for
very long inevitably has the experience of putting hours of work into a
long document and then losing it because the computer crashes or the
power goes out. Until the moment that it disappears from the screen, the
document seems every bit as solid and real as if it had been typed out
in ink on paper. But in the next moment, without warning, it is
completely and irretrievably gone, as if it had never existed. The user
is left with a feeling of disorientation (to say nothing of annoyance)
stemming from a kind of metaphor shear--you realize that you've been
living and thinking inside of a metaphor that is essentially bogus. So
GUIs use metaphors to make computing easier, but they are bad metaphors.
Learning to use them is essentially a word game, a process of learning
new definitions of words like "window" and "document" and "save" that
are different from, and in many cases almost diametrically opposed to,
the old. Somewhat improbably, this has worked very well, at least from a
commercial standpoint, which is to say that Apple/Microsoft have made a
lot of money off of it. All of the other modern operating systems have
learned that in order to be accepted by users they must conceal their
underlying gutwork beneath the same sort of spackle. This has some
advantages: if you know how to use one GUI operating system, you can
probably work out how to use any other in a few minutes. Everything
works a little differently, like European plumbing--but with some
fiddling around, you can type a memo or surf the web. Most people who
shop for OSes (if they bother to shop at all) are comparing not the
underlying functions but the superficial look and feel. The average
buyer of an OS is not really paying for, and is not especially
interested in, the low-level code that allocates memory or writes bytes
onto the disk. What we're really buying is a system of metaphors.
And--much more important--what we're buying into is the underlying
assumption that metaphors are a good way to deal with the world.
Recently a lot of new hardware has become available that gives computers
numerous interesting ways of affecting the real world: making paper spew
out of printers, causing words to appear on screens thousands of miles
away, shooting beams of radiation through cancer patients, creating
realistic moving pictures of the Titanic. Windows is now used as an OS
for cash registers and bank tellers' terminals. My satellite TV system
uses a sort of GUI to change channels and show program guides. Modern
cellular telephones have a crude GUI built into a tiny LCD screen. Even
Legos now have a GUI: you can buy a Lego set called Mindstorms that
enables you to build little Lego robots and program them through a GUI
on your computer. So we are now asking the GUI to do a lot more than
serve as a glorified typewriter. Now we want to become a generalized
tool for dealing with reality. This has become a bonanza for companies
that make a living out of bringing new technology to the mass market.
Obviously you cannot sell a complicated technological system to people
without some sort of interface that enables them to use it. The internal
combustion engine was a technological marvel in its day, but useless as
a consumer good until a clutch, transmission, steering wheel and
throttle were connected to it. That odd collection of gizmos, which
survives to this day in every car on the road, made up what we would
today call a user interface. But if cars had been invented after
Macintoshes, carmakers would not have bothered to gin up all of these
arcane devices. We would have a computer screen instead of a dashboard,
and a mouse (or at best a joystick) instead of a steering wheel, and
we'd shift gears by pulling down a menu: PARK --- REVERSE --- NEUTRAL
---- 3 2 1 --- Help... A few lines of computer code can thus be made to
substitute for any imaginable mechanical interface. The problem is that
in many cases the substitute is a poor one. Driving a car through a GUI
would be a miserable experience. Even if the GUI were perfectly
bug-free, it would be incredibly dangerous, because menus and buttons
simply can't be as responsive as direct mechanical controls. My friend's
dad, the gentleman who was restoring the MGB, never would have bothered
with it if it had been equipped with a GUI. It wouldn't have been any
fun. The steering wheel and gearshift lever were invented during an era
when the most complicated technology in most homes was a butter churn.
Those early carmakers were simply lucky, in that they could dream up
whatever interface was best suited to the task of driving an automobile,
and people would learn it. Likewise with the dial telephone and the AM
radio. By the time of the Second World War, most people knew several
interfaces: they could not only churn butter but also drive a car, dial
a telephone, turn on a radio, summon flame from a cigarette lighter, and
change a light bulb. But now every little thing--wristwatches, VCRs,
stoves--is jammed with features, and every feature is useless without an
interface. If you are like me, and like most other consumers, you have
never used ninety percent of the available features on your microwave
oven, VCR, or cellphone. You don't even know that these features exist.
The small benefit they might bring you is outweighed by the sheer hassle
of having to learn about them. This has got to be a big problem for
makers of consumer goods, because they can't compete without offering
features. It's no longer acceptable for engineers to invent a wholly
novel user interface for every new product, as they did in the case of
the automobile, partly because it's too expensive and partly because
ordinary people can only learn so much. If the VCR had been invented a
hundred years ago, it would have come with a thumbwheel to adjust the
tracking and a gearshift to change between forward and reverse and a big
cast-iron handle to load or to eject the cassettes. It would have had a
big analog clock on the front of it, and you would have set the time by
moving the hands around on the dial. But because the VCR was invented
when it was--during a sort of awkward transitional period between the
era of mechanical interfaces and GUIs--it just had a bunch of
pushbuttons on the front, and in order to set the time you had to push
the buttons in just the right way. This must have seemed reasonable
enough to the engineers responsible for it, but to many users it was
simply impossible. Thus the famous blinking 12:00 that appears on so
many VCRs. Computer people call this "the blinking twelve problem". When
they talk about it, though, they usually aren't talking about VCRs.
Modern VCRs usually have some kind of on-screen programming, which means
that you can set the time and control other features through a sort of
primitive GUI. GUIs have virtual pushbuttons too, of course, but they
also have other types of virtual controls, like radio buttons,
checkboxes, text entry boxes, dials, and scrollbars. Interfaces made out
of these components seem to be a lot easier, for many people, than
pushing those little buttons on the front of the machine, and so the
blinking 12:00 itself is slowly disappearing from America's living
rooms. The blinking twelve problem has moved on to plague other
technologies. So the GUI has gone beyond being an interface to personal
computers, and become a sort of meta-interface that is pressed into
service for every new piece of consumer technology. It is rarely an
ideal fit, but having an ideal, or even a good interface is no longer
the priority; the important thing now is having some kind of interface
that customers will actually use, so that manufacturers can claim, with
a straight face, that they are offering new features. We want GUIs
largely because they are convenient and because they are easy-- or at
least the GUI makes it seem that way Of course, nothing is really easy
and simple, and putting a nice interface on top of it does not change
that fact. A car controlled through a GUI would be easier to drive than
one controlled through pedals and steering wheel, but it would be
incredibly dangerous. By using GUIs all the time we have insensibly
bought into a premise that few people would have accepted if it were
presented to them bluntly: namely, that hard things can be made easy,
and complicated things simple, by putting the right interface on them.
In order to understand how bizarre this is, imagine that book reviews
were written according to the same values system that we apply to user
interfaces: "The writing in this book is marvelously simple-minded and
glib; the author glosses over complicated subjects and employs facile
generalizations in almost every sentence. Readers rarely have to think,
and are spared all of the difficulty and tedium typically involved in
reading old-fashioned books." As long as we stick to simple operations
like setting the clocks on our VCRs, this is not so bad. But as we try
to do more ambitious things with our technologies, we inevitably run
into the problem of: &nbsp;

METAPHOR SHEAR

I began using Microsoft Word as soon as the first version was released
around 1985. After some initial hassles I found it to be a better tool
than MacWrite, which was its only competition at the time. I wrote a lot
of stuff in early versions of Word, storing it all on floppies, and
transferred the contents of all my floppies to my first hard drive,
which I acquired around 1987. As new versions of Word came out I
faithfully upgraded, reasoning that as a writer it made sense for me to
spend a certain amount of money on tools. Sometime in the mid-1980's I
attempted to open one of my old, circa-1985 Word documents using the
version of Word then current: 6.0 It didn't work. Word 6.0 did not
recognize a document created by an earlier version of itself. By opening
it as a text file, I was able to recover the sequences of letters that
made up the text of the document. My words were still there. But the
formatting had been run through a log chipper--the words I'd written
were interrupted by spates of empty rectangular boxes and gibberish.
Now, in the context of a business (the chief market for Word) this sort
of thing is only an annoyance--one of the routine hassles that go along
with using computers. It's easy to buy little file converter programs
that will take care of this problem. But if you are a writer whose
career is words, whose professional identity is a corpus of written
documents, this kind of thing is extremely disquieting. There are very
few fixed assumptions in my line of work, but one of them is that once
you have written a word, it is written, and cannot be unwritten. The ink
stains the paper, the chisel cuts the stone, the stylus marks the clay,
and something has irrevocably happened (my brother-in-law is a
theologian who reads 3250-year-old cuneiform tablets--he can recognize
the handwriting of particular scribes, and identify them by name). But
word-processing software--particularly the sort that employs special,
complex file formats--has the eldritch power to unwrite things. A small
change in file formats, or a few twiddled bits, and months' or years'
literary output can cease to exist. Now this was technically a fault in
the application (Word 6.0 for the Macintosh) not the operating system
(MacOS 7 point something) and so the initial target of my annoyance was
the people who were responsible for Word. But. On the other hand, I
could have chosen the "save as text" option in Word and saved all of my
documents as simple telegrams, and this problem would not have arisen.
Instead I had allowed myself to be seduced by all of those flashy
formatting options that hadn't even existed until GUIs had come along to
make them practicable. I had gotten into the habit of using them to make
my documents look pretty (perhaps prettier than they deserved to look;
all of the old documents on those floppies turned out to be more or less
crap). Now I was paying the price for that self-indulgence. Technology
had moved on and found ways to make my documents look even prettier, and
the consequence of it was that all old ugly documents had ceased to
exist. It was--if you'll pardon me for a moment's strange little
fantasy--as if I'd gone to stay at some resort, some exquisitely
designed and art-directed hotel, placing myself in the hands of past
masters of the Sensorial Interface, and had sat down in my room and
written a story in ballpoint pen on a yellow legal pad, and when I
returned from dinner, discovered that the maid had taken my work away
and left behind in its place a quill pen and a stack of fine
parchment--explaining that the room looked ever so much finer this way,
and it was all part of a routine upgrade. But written on these sheets of
paper, in flawless penmanship, were long sequences of words chosen at
random from the dictionary. Appalling, sure, but I couldn't really lodge
a complaint with the management, because by staying at this resort I had
given my consent to it. I had surrendered my Morlock credentials and
become an Eloi. &nbsp;

LINUX During the late 1980's and early 1990's I spent a lot of time
programming Macintoshes, and eventually decided for fork over several
hundred dollars for an Apple product called the Macintosh Programmer's
Workshop, or MPW. MPW had competitors, but it was unquestionably the
premier software development system for the Mac. It was what Apple's own
engineers used to write Macintosh code. Given that MacOS was far more
technologically advanced, at the time, than its competition, and that
Linux did not even exist yet, and given that this was the actual program
used by Apple's world-class team of creative engineers, I had high
expectations. It arrived on a stack of floppy disks about a foot high,
and so there was plenty of time for my excitement to build during the
endless installation process. The first time I launched MPW, I was
probably expecting some kind of touch-feely multimedia showcase.
Instead it was austere, almost to the point of being intimidating. It
was a scrolling window into which you could type simple, unformatted
text. The system would then interpret these lines of text as commands,
and try to execute them. It was, in other words, a glass teletype
running a command line interface. It came with all sorts of cryptic but
powerful commands, which could be invoked by typing their names, and
which I learned to use only gradually. It was not until a few years
later, when I began messing around with Unix, that I understood that the
command line interface embodied in MPW was a re-creation of Unix. In
other words, the first thing that Apple's hackers had done when they'd
got the MacOS up and running--probably even before they'd gotten it up
and running--was to re-create the Unix interface, so that they would be
able to get some useful work done. At the time, I simply couldn't get my
mind around this, but: as far as Apple's hackers were concerned, the
Mac's vaunted Graphical User Interface was an impediment, something to
be circumvented before the little toaster even came out onto the market.
Even before my Powerbook crashed and obliterated my big file in July
1995, there had been danger signs. An old college buddy of mine, who
starts and runs high-tech companies in Boston, had developed a
commercial product using Macintoshes as the front end. Basically the
Macs were high-performance graphics terminals, chosen for their sweet
user interface, giving users access to a large database of graphical
information stored on a network of much more powerful, but less
user-friendly, computers. This fellow was the second person who turned
me on to Macintoshes, by the way, and through the mid-1980's we had
shared the thrill of being high-tech cognoscenti, using superior Apple
technology in a world of DOS-using knuckleheads. Early versions of my
friend's system had worked well, he told me, but when several machines
joined the network, mysterious crashes began to occur; sometimes the
whole network would just freeze. It was one of those bugs that could not
be reproduced easily. Finally they figured out that these network
crashes were triggered whenever a user, scanning the menus for a
particular item, held down the mouse button for more than a couple of
seconds. Fundamentally, the MacOS could only do one thing at a time.
Drawing a menu on the screen is one thing. So when a menu was pulled
down, the Macintosh was not capable of doing anything else until that
indecisive user released the button. This is not such a bad thing in a
single-user, single-process machine (although it's a fairly bad thing),
but it's no good in a machine that is on a network, because being on a
network implies some kind of continual low-level interaction with other
machines. By failing to respond to the network, the Mac caused a
network-wide crash. In order to work with other computers, and with
networks, and with various different types of hardware, an OS must be
incomparably more complicated and powerful than either MS-DOS or the
original MacOS. The only way of connecting to the Internet that's worth
taking seriously is PPP, the Point-to-Point Protocol, which (never mind
the details) makes your computer--temporarily--a full-fledged member of
the Global Internet, with its own unique address, and various
privileges, powers, and responsibilities appertaining thereunto.
Technically it means your machine is running the TCP/IP protocol, which,
to make a long story short, revolves around sending packets of data back
and forth, in no particular order, and at unpredictable times, according
to a clever and elegant set of rules. But sending a packet of data is
one thing, and so an OS that can only do one thing at a time cannot
simultaneously be part of the Internet and do anything else. When TCP/IP
was invented, running it was an honor reserved for Serious
Computers--mainframes and high-powered minicomputers used in technical
and commercial settings--and so the protocol is engineered around the
assumption that every computer using it is a serious machine, capable of
doing many things at once. Not to put too fine a point on it, a Unix
machine. Neither MacOS nor MS-DOS was originally built with that in
mind, and so when the Internet got hot, radical changes had to be made.
When my Powerbook broke my heart, and when Word stopped recognizing my
old files, I jumped to Unix. The obvious alternative to MacOS would have
been Windows. I didn't really have anything against Microsoft, or
Windows. But it was pretty obvious, now, that old PC operating systems
were overreaching, and showing the strain, and, perhaps, were best
avoided until they had learned to walk and chew gum at the same time.
The changeover took place on a particular day in the summer of 1995. I
had been San Francisco for a couple of weeks, using my PowerBook to work
on a document. The document was too big to fit onto a single floppy, and
so I hadn't made a backup since leaving home. The PowerBook crashed and
wiped out the entire file. It happened just as I was on my way out the
door to visit a company called Electric Communities, which in those days
was in Los Altos. I took my PowerBook with me. My friends at Electric
Communities were Mac users who had all sorts of utility software for
unerasing files and recovering from disk crashes, and I was certain I
could get most of the file back. As it turned out, two different Mac
crash recovery utilities were unable to find any trace that my file had
ever existed. It was completely and systematically wiped out. We went
through that hard disk block by block and found disjointed fragments of
countless old, discarded, forgotten files, but none of what I wanted.
The metaphor shear was especially brutal that day. It was sort of like
watching the girl you've been in love with for ten years get killed in a
car wreck, and then attending her autopsy, and learning that underneath
the clothes and makeup she was just flesh and blood. I must have been
reeling around the offices of Electric Communities in some kind of
primal Jungian fugue, because at this moment three weirdly synchronistic
things happened. (1) Randy Farmer, a co-founder of the company, came in
for a quick visit along with his family--he was recovering from back
surgery at the time. He had some hot gossip: "Windows 95 mastered
today." What this meant was that Microsoft's new operating system had,
on this day, been placed on a special compact disk known as a golden
master, which would be used to stamp out a jintillion copies in
preparation for its thunderous release a few weeks later. This news was
received peevishly by the staff of Electric Communities, including one
whose office door was plastered with the usual assortment of cartoons
and novelties, e.g. (2) a copy of a Dilbert cartoon in which Dilbert,
the long-suffering corporate software engineer, encounters a portly,
bearded, hairy man of a certain age--a bit like Santa Claus, but darker,
with a certain edge about him. Dilbert recognizes this man, based upon
his appearance and affect, as a Unix hacker, and reacts with a certain
mixture of nervousness, awe, and hostility. Dilbert jabs weakly at the
disturbing interloper for a couple of frames; the Unix hacker listens
with a kind of infuriating, beatific calm, then, in the last frame,
reaches into his pocket. "Here's a nickel, kid," he says, "go buy
yourself a real computer." (3) the owner of the door, and the cartoon,
was one Doug Barnes. Barnes was known to harbor certain heretical
opinions on the subject of operating systems. Unlike most Bay Area
techies who revered the Macintosh, considering it to be a true hacker's
machine, Barnes was fond of pointing out that the Mac, with its
hermetically sealed architecture, was actually hostile to hackers, who
are prone to tinkering and dogmatic about openness. By contrast, the
IBM-compatible line of machines, which can easily be taken apart and
plugged back together, was much more hackable. So when I got home I
began messing around with Linux, which is one of many, many different
concrete implementations of the abstract, Platonic ideal called Unix. I
was not looking forward to changing over to a new OS, because my credit
cards were still smoking from all the money I'd spent on Mac hardware
over the years. But Linux's great virtue was, and is, that it would run
on exactly the same sort of hardware as the Microsoft OSes--which is to
say, the cheapest hardware in existence. As if to demonstrate why this
was a great idea, I was, within a week or two of returning home, able to
get my hand on a then-decent computer (a 33-MHz 486 box) for free,
because I knew a guy who worked in an office where they were simply
being thrown away. Once I got it home, I yanked the hood off, stuck my
hands in, and began switching cards around. If something didn't work, I
went to a used-computer outlet and pawed through a bin full of
components and bought a new card for a few bucks. The availability of
all this cheap but effective hardware was an unintended consequence of
decisions that had been made more than a decade earlier by IBM and
Microsoft. When Windows came out, and brought the GUI to a much larger
market, the hardware regime changed: the cost of color video cards and
high-resolution monitors began to drop, and is dropping still. This
free-for-all approach to hardware meant that Windows was unavoidably
clunky compared to MacOS. But the GUI brought computing to such a vast
audience that volume went way up and prices collapsed. Meanwhile Apple,
which so badly wanted a clean, integrated OS with video neatly
integrated into processing hardware, had fallen far behind in market
share, at least partly because their beautiful hardware cost so much.
But the price that we Mac owners had to pay for superior aesthetics and
engineering was not merely a financial one. There was a cultural price
too, stemming from the fact that we couldn't open up the hood and mess
around with it. Doug Barnes was right. Apple, in spite of its reputation
as the machine of choice of scruffy, creative hacker types, had actually
created a machine that discouraged hacking, while Microsoft, viewed as a
technological laggard and copycat, had created a vast, disorderly parts
bazaar--a primordial soup that eventually self-assembled into Linux.
&nbsp;

THE HOLE HAWG OF OPERATING SYSTEMS

Unix has always lurked provocatively in the background of the operating
system wars, like the Russian Army. Most people know it only by
reputation, and its reputation, as the Dilbert cartoon suggests, is
mixed. But everyone seems to agree that if it could only get its act
together and stop surrendering vast tracts of rich agricultural land and
hundreds of thousands of prisoners of war to the onrushing invaders, it
could stomp them (and all other opposition) flat. It is difficult to
explain how Unix has earned this respect without going into
mind-smashing technical detail. Perhaps the gist of it can be explained
by telling a story about drills. The Hole Hawg is a drill made by the
Milwaukee Tool Company. If you look in a typical hardware store you may
find smaller Milwaukee drills but not the Hole Hawg, which is too
powerful and too expensive for homeowners. The Hole Hawg does not have
the pistol-like design of a cheap homeowner's drill. It is a cube of
solid metal with a handle sticking out of one face and a chuck mounted
in another. The cube contains a disconcertingly potent electric motor.
You can hold the handle and operate the trigger with your index finger,
but unless you are exceptionally strong you cannot control the weight of
the Hole Hawg with one hand; it is a two-hander all the way. In order to
fight off the counter-torque of the Hole Hawg you use a separate handle
(provided), which you screw into one side of the iron cube or the other
depending on whether you are using your left or right hand to operate
the trigger. This handle is not a sleek, ergonomically designed item as
it would be in a homeowner's drill. It is simply a foot-long chunk of
regular galvanized pipe, threaded on one end, with a black rubber handle
on the other. If you lose it, you just go to the local plumbing supply
store and buy another chunk of pipe. During the Eighties I did some
construction work. One day, another worker leaned a ladder against the
outside of the building that we were putting up, climbed up to the
second-story level, and used the Hole Hawg to drill a hole through the
exterior wall. At some point, the drill bit caught in the wall. The Hole
Hawg, following its one and only imperative, kept going. It spun the
worker's body around like a rag doll, causing him to knock his own
ladder down. Fortunately he kept his grip on the Hole Hawg, which
remained lodged in the wall, and he simply dangled from it and shouted
for help until someone came along and reinstated the ladder. I myself
used a Hole Hawg to drill many holes through studs, which it did as a
blender chops cabbage. I also used it to cut a few six-inch-diameter
holes through an old lath-and-plaster ceiling. I chucked in a new hole
saw, went up to the second story, reached down between the newly
installed floor joists, and began to cut through the first-floor ceiling
below. Where my homeowner's drill had labored and whined to spin the
huge bit around, and had stalled at the slightest obstruction, the Hole
Hawg rotated with the stupid consistency of a spinning planet. When the
hole saw seized up, the Hole Hawg spun itself and me around, and crushed
one of my hands between the steel pipe handle and a joist, producing a
few lacerations, each surrounded by a wide corona of deeply bruised
flesh. It also bent the hole saw itself, though not so badly that I
couldn't use it. After a few such run-ins, when I got ready to use the
Hole Hawg my heart actually began to pound with atavistic terror. But I
never blamed the Hole Hawg; I blamed myself. The Hole Hawg is dangerous
because it does exactly what you tell it to. It is not bound by the
physical limitations that are inherent in a cheap drill, and neither is
it limited by safety interlocks that might be built into a homeowner's
product by a liability-conscious manufacturer. The danger lies not in
the machine itself but in the user's failure to envision the full
consequences of the instructions he gives to it. A smaller tool is
dangerous too, but for a completely different reason: it tries to do
what you tell it to, and fails in some way that is unpredictable and
almost always undesirable. But the Hole Hawg is like the genie of the
ancient fairy tales, who carries out his master's instructions literally
and precisely and with unlimited power, often with disastrous,
unforeseen consequences. Pre-Hole Hawg, I used to examine the drill
selection in hardware stores with what I thought was a judicious eye,
scorning the smaller low-end models and hefting the big expensive ones
appreciatively, wishing I could afford one of them babies. Now I view
them all with such contempt that I do not even consider them to be real
drills--merely scaled-up toys designed to exploit the self-delusional
tendencies of soft-handed homeowners who want to believe that they have
purchased an actual tool. Their plastic casings, carefully designed and
focus-group-tested to convey a feeling of solidity and power, seem
disgustingly flimsy and cheap to me, and I am ashamed that I was ever
bamboozled into buying such knicknacks. It is not hard to imagine what
the world would look like to someone who had been raised by contractors
and who had never used any drill other than a Hole Hawg. Such a person,
presented with the best and most expensive hardware-store drill, would
not even recognize it as such. He might instead misidentify it as a
child's toy, or some kind of motorized screwdriver. If a salesperson or
a deluded homeowner referred to it as a drill, he would laugh and tell
them that they were mistaken--they simply had their terminology wrong.
His interlocutor would go away irritated, and probably feeling rather
defensive about his basement full of cheap, dangerous, flashy, colorful
tools. Unix is the Hole Hawg of operating systems, and Unix hackers,
like Doug Barnes and the guy in the Dilbert cartoon and many of the
other people who populate Silicon Valley, are like contractor's sons who
grew up using only Hole Hawgs. They might use Apple/Microsoft OSes to
write letters, play video games, or balance their checkbooks, but they
cannot really bring themselves to take these operating systems
seriously. &nbsp;

THE ORAL TRADITION

Unix is hard to learn. The process of learning it is one of multiple
small epiphanies. Typically you are just on the verge of inventing some
necessary tool or utility when you realize that someone else has already
invented it, and built it in, and this explains some odd file or
directory or command that you have noticed but never really understood
before. For example there is a command (a small program, part of the OS)
called whoami, which enables you to ask the computer who it thinks you
are. On a Unix machine, you are always logged in under some
name--possibly even your own! What files you may work with, and what
software you may use, depends on your identity. When I started out using
Linux, I was on a non-networked machine in my basement, with only one
user account, and so when I became aware of the whoami command it struck
me as ludicrous. But once you are logged in as one person, you can
temporarily switch over to a pseudonym in order to access different
files. If your machine is on the Internet, you can log onto other
computers, provided you have a user name and a password. At that point
the distant machine becomes no different in practice from the one right
in front of you. These changes in identity and location can easily
become nested inside each other, many layers deep, even if you aren't
doing anything nefarious. Once you have forgotten who and where you are,
the whoami command is indispensible. I use it all the time. The file
systems of Unix machines all have the same general structure. On your
flimsy operating systems, you can create directories (folders) and give
them names like Frodo or My Stuff and put them pretty much anywhere you
like. But under Unix the highest level--the root--of the filesystem is
always designated with the single character "/" and it always contains
the same set of top-level directories: /usr /etc /var /bin /proc /boot
/home /root /sbin /dev /lib /tmp &nbsp; and each of these directories
typically has its own distinct structure of subdirectories. Note the
obsessive use of abbreviations and avoidance of capital letters; this is
a system invented by people to whom repetitive stress disorder is what
black lung is to miners. Long names get worn down to three-letter
nubbins, like stones smoothed by a river. This is not the place to try
to explain why each of the above directories exists, and what is
contained in it. At first it all seems obscure; worse, it seems
deliberately obscure. When I started using Linux I was accustomed to
being able to create directories wherever I wanted and to give them
whatever names struck my fancy. Under Unix you are free to do that, of
course (you are free to do anything) but as you gain experience with the
system you come to understand that the directories listed above were
created for the best of reasons and that your life will be much easier
if you follow along (within /home, by the way, you have pretty much
unlimited freedom). After this kind of thing has happened several
hundred or thousand times, the hacker understands why Unix is the way it
is, and agrees that it wouldn't be the same any other way. It is this
sort of acculturation that gives Unix hackers their confidence in the
system, and the attitude of calm, unshakable, annoying superiority
captured in the Dilbert cartoon. Windows 95 and MacOS are products,
contrived by engineers in the service of specific companies. Unix, by
contrast, is not so much a product as it is a painstakingly compiled
oral history of the hacker subculture. It is our Gilgamesh epic. What
made old epics like Gilgamesh so powerful and so long-lived was that
they were living bodies of narrative that many people knew by heart, and
told over and over again--making their own personal embellishments
whenever it struck their fancy. The bad embellishments were shouted
down, the good ones picked up by others, polished, improved, and, over
time, incorporated into the story. Likewise, Unix is known, loved, and
understood by so many hackers that it can be re-created from scratch
whenever someone needs it. This is very difficult to understand for
people who are accustomed to thinking of OSes as things that absolutely
have to be bought.

Many hackers have launched more or less successful re-implementations of
the Unix ideal. Each one brings in new embellishments. Some of them die
out quickly, some are merged with similar, parallel innovations created
by different hackers attacking the same problem, others still are
embraced, and adopted into the epic. Thus Unix has slowly accreted
around a simple kernel and acquired a kind of complexity and asymmetry
about it that is organic, like the roots of a tree, or the branchings of
a coronary artery. Understanding it is more like anatomy than physics.
For at least a year, prior to my adoption of Linux, I had been hearing
about it. Credible, well-informed people kept telling me that a bunch of
hackers had got together an implentation of Unix that could be
downloaded, free of charge, from the Internet. For a long time I could
not bring myself to take the notion seriously. It was like hearing
rumors that a group of model rocket enthusiasts had created a completely
functional Saturn V by exchanging blueprints on the Net and mailing
valves and flanges to each other. But it's true. Credit for Linux
generally goes to its human namesake, one Linus Torvalds, a Finn who got
the whole thing rolling in 1991 when he used some of the GNU tools to
write the beginnings of a Unix kernel that could run on PC-compatible
hardware. And indeed Torvalds deserves all the credit he has ever
gotten, and a whole lot more. But he could not have made it happen by
himself, any more than Richard Stallman could have. To write code at
all, Torvalds had to have cheap but powerful development tools, and
these he got from Stallman's GNU project. And he had to have cheap
hardware on which to write that code. Cheap hardware is a much harder
thing to arrange than cheap software; a single person (Stallman) can
write software and put it up on the Net for free, but in order to make
hardware it's necessary to have a whole industrial infrastructure, which
is not cheap by any stretch of the imagination. Really the only way to
make hardware cheap is to punch out an incredible number of copies of
it, so that the unit cost eventually drops. For reasons already
explained, Apple had no desire to see the cost of hardware drop. The
only reason Torvalds had cheap hardware was Microsoft. Microsoft refused
to go into the hardware business, insisted on making its software run on
hardware that anyone could build, and thereby created the market
conditions that allowed hardware prices to plummet. In trying to
understand the Linux phenomenon, then, we have to look not to a single
innovator but to a sort of bizarre Trinity: Linus Torvalds, Richard
Stallman, and Bill Gates. Take away any of these three and Linux would
not exist. &nbsp;

OS SHOCK

Young Americans who leave their great big homogeneous country and visit
some other part of the world typically go through several stages of
culture shock: first, dumb wide-eyed astonishment. Then a tentative
engagement with the new country's manners, cuisine, public transit
systems and toilets, leading to a brief period of fatuous confidence
that they are instant experts on the new country. As the visit wears on,
homesickness begins to set in, and the traveler begins to appreciate,
for the first time, how much he or she took for granted at home. At the
same time it begins to seem obvious that many of one's own cultures and
traditions are essentially arbitrary, and could have been different;
driving on the right side of the road, for example. When the traveler
returns home and takes stock of the experience, he or she may have
learned a good deal more about America than about the country they went
to visit. For the same reasons, Linux is worth trying. It is a strange
country indeed, but you don't have to live there; a brief sojourn
suffices to give some flavor of the place and--more importantly--to lay
bare everything that is taken for granted, and all that could have been
done differently, under Windows or MacOS. You can't try it unless you
install it. With any other OS, installing it would be a straightforward
transaction: in exchange for money, some company would give you a
CD-ROM, and you would be on your way. But a lot is subsumed in that kind
of transaction, and has to be gone through and picked apart. We like
plain dealings and straightforward transactions in America. If you go to
Egypt and, say, take a taxi somewhere, you become a part of the taxi
driver's life; he refuses to take your money because it would demean
your friendship, he follows you around town, and weeps hot tears when
you get in some other guy's taxi. You end up meeting his kids at some
point, and have to devote all sort of ingenuity to finding some way to
compensate him without insulting his honor. It is exhausting. Sometimes
you just want a simple Manhattan-style taxi ride. But in order to have
an American-style setup, where you can just go out and hail a taxi and
be on your way, there must exist a whole hidden apparatus of medallions,
inspectors, commissions, and so forth--which is fine as long as taxis
are cheap and you can always get one. When the system fails to work in
some way, it is mysterious and infuriating and turns otherwise
reasonable people into conspiracy theorists. But when the Egyptian
system breaks down, it breaks down transparently. You can't get a taxi,
but your driver's nephew will show up, on foot, to explain the problem
and apologize. Microsoft and Apple do things the Manhattan way, with
vast complexity hidden behind a wall of interface. Linux does things the
Egypt way, with vast complexity strewn about all over the landscape. If
you've just flown in from Manhattan, your first impulse will be to throw
up your hands and say "For crying out loud! Will you people get a grip
on yourselves!?" But this does not make friends in Linux-land any better
than it would in Egypt. You can suck Linux right out of the air, as it
were, by downloading the right files and putting them in the right
places, but there probably are not more than a few hundred people in the
world who could create a functioning Linux system in that way. What you
really need is a distribution of Linux, which means a prepackaged set of
files. But distributions are a separate thing from Linux per se. Linux
per se is not a specific set of ones and zeroes, but a self-organizing
Net subculture. The end result of its collective lucubrations is a vast
body of source code, almost all written in C (the dominant computer
programming language). "Source code" just means a computer program as
typed in and edited by some hacker. If it's in C, the file name will
probably have .c or .cpp on the end of it, depending on which dialect
was used; if it's in some other language it will have some other suffix.
Frequently these sorts of files can be found in a directory with the
name /src which is the hacker's Hebraic abbreviation of "source." Source
files are useless to your computer, and of little interest to most
users, but they are of gigantic cultural and political significance,
because Microsoft and Apple keep them secret while Linux makes them
public. They are the family jewels. They are the sort of thing that in
Hollywood thrillers is used as a McGuffin: the plutonium bomb core, the
top-secret blueprints, the suitcase of bearer bonds, the reel of
microfilm. If the source files for Windows or MacOS were made public on
the Net, then those OSes would become free, like Linux--only not as
good, because no one would be around to fix bugs and answer questions.
Linux is "open source" software meaning, simply, that anyone can get
copies of its source code files. Your computer doesn't want source code
any more than you do; it wants object code. Object code files typically
have the suffix .o and are unreadable all but a few, highly strange
humans, because they consist of ones and zeroes. Accordingly, this sort
of file commonly shows up in a directory with the name /bin, for
"binary." Source files are simply ASCII text files. ASCII denotes a
particular way of encoding letters into bit patterns. In an ASCII file,
each character has eight bits all to itself. This creates a potential
"alphabet" of 256 distinct characters, in that eight binary digits can
form that many unique patterns. In practice, of course, we tend to limit
ourselves to the familiar letters and digits. The bit-patterns used to
represent those letters and digits are the same ones that were
physically punched into the paper tape by my high school teletype, which
in turn were the same one used by the telegraph industry for decades
previously. ASCII text files, in other words, are telegrams, and as such
they have no typographical frills. But for the same reason they are
eternal, because the code never changes, and universal, because every
text editing and word processing software ever written knows about this
code. Therefore just about any software can be used to create, edit, and
read source code files. Object code files, then, are created from these
source files by a piece of software called a compiler, and forged into a
working application by another piece of software called a linker. The
triad of editor, compiler, and linker, taken together, form the core of
a software development system. Now, it is possible to spend a lot of
money on shrink-wrapped development systems with lovely graphical user
interfaces and various ergonomic enhancements. In some cases it might
even be a good and reasonable way to spend money. But on this side of
the road, as it were, the very best software is usually the free stuff.
Editor, compiler and linker are to hackers what ponies, stirrups, and
archery sets were to the Mongols. Hackers live in the saddle, and hack
on their own tools even while they are using them to create new
applications. It is quite inconceivable that superior hacking tools
could have been created from a blank sheet of paper by product
engineers. Even if they are the brightest engineers in the world they
are simply outnumbered. In the GNU/Linux world there are two major text
editing programs: the minimalist vi (known in some implementations as
elvis) and the maximalist emacs. I use emacs, which might be thought of
as a thermonuclear word processor. It was created by Richard Stallman;
enough said. It is written in Lisp, which is the only computer language
that is beautiful. It is colossal, and yet it only edits straight ASCII
text files, which is to say, no fonts, no boldface, no underlining. In
other words, the engineer-hours that, in the case of Microsoft Word,
were devoted to features like mail merge, and the ability to embed
feature-length motion pictures in corporate memoranda, were, in the case
of emacs, focused with maniacal intensity on the deceptively
simple-seeming problem of editing text. If you are a professional
writer--i.e., if someone else is getting paid to worry about how your
words are formatted and printed--emacs outshines all other editing
software in approximately the same way that the noonday sun does the
stars. It is not just bigger and brighter; it simply makes everything
else vanish. For page layout and printing you can use TeX: a vast corpus
of typesetting lore written in C and also available on the Net for free.
I could say a lot about emacs and TeX, but right now I am trying to tell
a story about how to actually install Linux on your machine. The
hard-core survivalist approach would be to download an editor like
emacs, and the GNU Tools--the compiler and linker--which are polished
and excellent to the same degree as emacs. Equipped with these, one
would be able to start downloading ASCII source code files (/src) and
compiling them into binary object code files (/bin) that would run on
the machine. But in order to even arrive at this point--to get emacs
running, for example--you have to have Linux actually up and running on
your machine. And even a minimal Linux operating system requires
thousands of binary files all acting in concert, and arranged and linked
together just so. Several entities have therefore taken it upon
themselves to create "distributions" of Linux. If I may extend the Egypt
analogy slightly, these entities are a bit like tour guides who meet you
at the airport, who speak your language, and who help guide you through
the initial culture shock. If you are an Egyptian, of course, you see it
the other way; tour guides exist to keep brutish outlanders from
traipsing through your mosques and asking you the same questions over
and over and over again. Some of these tour guides are commercial
organizations, such as Red Hat Software, which makes a Linux
distribution called Red Hat that has a relatively commercial sheen to
it. In most cases you put a Red Hat CD-ROM into your PC and reboot and
it handles the rest. Just as a tour guide in Egypt will expect some sort
of compensation for his services, commercial distributions need to be
paid for. In most cases they cost almost nothing and are well worth it.
I use a distribution called Debian (the word is a contraction of
"Deborah" and "Ian") which is non-commercial. It is organized (or
perhaps I should say "it has organized itself") along the same lines as
Linux in general, which is to say that it consists of volunteers who
collaborate over the Net, each responsible for looking after a different
chunk of the system. These people have broken Linux down into a number
of packages, which are compressed files that can be downloaded to an
already functioning Debian Linux system, then opened up and unpacked
using a free installer application. Of course, as such, Debian has no
commercial arm--no distribution mechanism. You can download all Debian
packages over the Net, but most people will want to have them on a
CD-ROM. Several different companies have taken it upon themselves to
decoct all of the current Debian packages onto CD-ROMs and then sell
them. I buy mine from Linux Systems Labs. The cost for a three-disc set,
containing Debian in its entirety, is less than three dollars. But (and
this is an important distinction) not a single penny of that three
dollars is going to any of the coders who created Linux, nor to the
Debian packagers. It goes to Linux Systems Labs and it pays, not for the
software, or the packages, but for the cost of stamping out the CD-ROMs.
Every Linux distribution embodies some more or less clever hack for
circumventing the normal boot process and causing your computer, when it
is turned on, to organize itself, not as a PC running Windows, but as a
"host" running Unix. This is slightly alarming the first time you see
it, but completely harmless. When a PC boots up, it goes through a
little self-test routine, taking an inventory of available disks and
memory, and then begins looking around for a disk to boot up from. In
any normal Windows computer that disk will be a hard drive. But if you
have your system configured right, it will look first for a floppy or
CD-ROM disk, and boot from that if one is available. Linux exploits this
chink in the defenses. Your computer notices a bootable disk in the
floppy or CD-ROM drive, loads in some object code from that disk, and
blindly begins to execute it. But this is not Microsoft or Apple code,
this is Linux code, and so at this point your computer begins to behave
very differently from what you are accustomed to. Cryptic messages began
to scroll up the screen. If you had booted a commercial OS, you would,
at this point, be seeing a "Welcome to MacOS" cartoon, or a screen
filled with clouds in a blue sky, and a Windows logo. But under Linux
you get a long telegram printed in stark white letters on a black
screen. There is no "welcome!" message. Most of the telegram has the
semi-inscrutable menace of graffiti tags. Dec 14 15:04:15 theRev syslogd
1.3-3#17: restart. Dec 14 15:04:15 theRev kernel: klogd 1.3-3, log
source = /proc/kmsg started. Dec 14 15:04:15 theRev kernel: Loaded 3535
symbols from /System.map. Dec 14 15:04:15 theRev kernel: Symbols match
kernel version 2.0.30. Dec 14 15:04:15 theRev kernel: No module symbols
loaded. Dec 14 15:04:15 theRev kernel: Intel MultiProcessor
Specification v1.4 Dec 14 15:04:15 theRev kernel: Virtual Wire
compatibility mode. Dec 14 15:04:15 theRev kernel: OEM ID: INTEL Product
ID: 440FX APIC at: 0xFEE00000 Dec 14 15:04:15 theRev kernel: Processor
#0 Pentium(tm) Pro APIC version 17 Dec 14 15:04:15 theRev kernel:
Processor #1 Pentium(tm) Pro APIC version 17 Dec 14 15:04:15 theRev
kernel: I/O APIC #2 Version 17 at 0xFEC00000. Dec 14 15:04:15 theRev
kernel: Processors: 2 Dec 14 15:04:15 theRev kernel: Console: 16 point
font, 400 scans Dec 14 15:04:15 theRev kernel: Console: colour VGA+
80x25, 1 virtual console (max 63) Dec 14 15:04:15 theRev kernel:
pcibios_init : BIOS32 Service Directory structure at 0x000fdb70 Dec 14
15:04:15 theRev kernel: pcibios_init : BIOS32 Service Directory entry at
0xfdb80 Dec 14 15:04:15 theRev kernel: pcibios_init : PCI BIOS revision
2.10 entry at 0xfdba1 Dec 14 15:04:15 theRev kernel: Probing PCI
hardware. Dec 14 15:04:15 theRev kernel: Warning : Unknown PCI device
(10b7:9001). Please read include/linux/pci.h Dec 14 15:04:15 theRev
kernel: Calibrating delay loop.. ok - 179.40 BogoMIPS Dec 14 15:04:15
theRev kernel: Memory: 64268k/66556k available (700k kernel code, 384k
reserved, 1204k data) Dec 14 15:04:15 theRev kernel: Swansea University
Computer Society NET3.035 for Linux 2.0 Dec 14 15:04:15 theRev kernel:
NET3: Unix domain sockets 0.13 for Linux NET3.035. Dec 14 15:04:15
theRev kernel: Swansea University Computer Society TCP/IP for NET3.034
Dec 14 15:04:15 theRev kernel: IP Protocols: ICMP, UDP, TCP Dec 14
15:04:15 theRev kernel: Checking 386/387 coupling... Ok, fpu using
exception 16 error reporting. Dec 14 15:04:15 theRev kernel: Checking
'hlt' instruction... Ok. Dec 14 15:04:15 theRev kernel: Linux version
2.0.30 (root@theRev) (gcc version 2.7.2.1) #15 Fri Mar 27 16:37:24 PST
1998 Dec 14 15:04:15 theRev kernel: Booting processor 1 stack 00002000:
Calibrating delay loop.. ok - 179.40 BogoMIPS Dec 14 15:04:15 theRev
kernel: Total of 2 processors activated (358.81 BogoMIPS). Dec 14
15:04:15 theRev kernel: Serial driver version 4.13 with no serial
options enabled Dec 14 15:04:15 theRev kernel: tty00 at 0x03f8 (irq = 4)
is a 16550A Dec 14 15:04:15 theRev kernel: tty01 at 0x02f8 (irq = 3) is
a 16550A Dec 14 15:04:15 theRev kernel: lp1 at 0x0378, (polling) Dec 14
15:04:15 theRev kernel: PS/2 auxiliary pointing device detected --
driver installed. Dec 14 15:04:15 theRev kernel: Real Time Clock Driver
v1.07 Dec 14 15:04:15 theRev kernel: loop: registered device at major 7
Dec 14 15:04:15 theRev kernel: ide: i82371 PIIX (Triton) on PCI bus 0
function 57 Dec 14 15:04:15 theRev kernel: ide0: BM-DMA at 0xffa0-0xffa7
Dec 14 15:04:15 theRev kernel: ide1: BM-DMA at 0xffa8-0xffaf Dec 14
15:04:15 theRev kernel: hda: Conner Peripherals 1275MB - CFS1275A,
1219MB w/64kB Cache, LBA, CHS=619/64/63 Dec 14 15:04:15 theRev kernel:
hdb: Maxtor 84320A5, 4119MB w/256kB Cache, LBA, CHS=8928/15/63, DMA Dec
14 15:04:15 theRev kernel: hdc: , ATAPI CDROM drive Dec 15 11:58:06
theRev kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Dec 15 11:58:06
theRev kernel: ide1 at 0x170-0x177,0x376 on irq 15 Dec 15 11:58:06
theRev kernel: Floppy drive(s): fd0 is 1.44M Dec 15 11:58:06 theRev
kernel: Started kswapd v 1.4.2.2 Dec 15 11:58:06 theRev kernel: FDC 0 is
a National Semiconductor PC87306 Dec 15 11:58:06 theRev kernel: md
driver 0.35 MAX_MD_DEV=4, MAX_REAL=8 Dec 15 11:58:06 theRev kernel: PPP:
version 2.2.0 (dynamic channel allocation) Dec 15 11:58:06 theRev
kernel: TCP compression code copyright 1989 Regents of the University of
California Dec 15 11:58:06 theRev kernel: PPP Dynamic channel allocation
code copyright 1995 Caldera, Inc. Dec 15 11:58:06 theRev kernel: PPP
line discipline registered. Dec 15 11:58:06 theRev kernel: SLIP: version
0.8.4-NET3.019-NEWTTY (dynamic channels, max=256). Dec 15 11:58:06
theRev kernel: eth0: 3Com 3c900 Boomerang 10Mbps/Combo at 0xef00,
00:60:08:a4:3c:db, IRQ 10 Dec 15 11:58:06 theRev kernel: 8K word-wide
RAM 3:5 Rx:Tx split, 10base2 interface. Dec 15 11:58:06 theRev kernel:
Enabling bus-master transmits and whole-frame receives. Dec 15 11:58:06
theRev kernel: 3c59x.c:v0.49 1/2/98 Donald Becker
http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html Dec 15 11:58:06
theRev kernel: Partition check: Dec 15 11:58:06 theRev kernel: hda: hda1
hda2 hda3 Dec 15 11:58:06 theRev kernel: hdb: hdb1 hdb2 Dec 15 11:58:06
theRev kernel: VFS: Mounted root (ext2 filesystem) readonly. Dec 15
11:58:06 theRev kernel: Adding Swap: 16124k swap-space (priority -1) Dec
15 11:58:06 theRev kernel: EXT2-fs warning: maximal mount count reached,
running e2fsck is recommended Dec 15 11:58:06 theRev kernel: hdc: media
changed Dec 15 11:58:06 theRev kernel: ISO9660 Extensions: RRIP_1991A
Dec 15 11:58:07 theRev syslogd 1.3-3#17: restart. Dec 15 11:58:09 theRev
diald[87]: Unable to open options file /etc/diald/diald.options: No such
file or directory Dec 15 11:58:09 theRev diald[87]: No device specified.
You must have at least one device! Dec 15 11:58:09 theRev diald[87]: You
must define a connector script (option 'connect'). Dec 15 11:58:09
theRev diald[87]: You must define the remote ip address. Dec 15 11:58:09
theRev diald[87]: You must define the local ip address. Dec 15 11:58:09
theRev diald[87]: Terminating due to damaged reconfigure. The only parts
of this that are readable, for normal people, are the error messages and
warnings. And yet it's noteworthy that Linux doesn't stop, or crash,
when it encounters an error; it spits out a pithy complaint, gives up on
whatever processes were damaged, and keeps on rolling. This was
decidedly not true of the early versions of Apple and Microsoft OSes,
for the simple reason that an OS that is not capable of walking and
chewing gum at the same time cannot possibly recover from errors.
Looking for, and dealing with, errors requires a separate process
running in parallel with the one that has erred. A kind of superego, if
you will, that keeps an eye on all of the others, and jumps in when one
goes astray. Now that MacOS and Windows can do more than one thing at a
time they are much better at dealing with errors than they used to be,
but they are not even close to Linux or other Unices in this respect;
and their greater complexity has made them vulnerable to new types of
errors.

FALLIBILITY, ATONEMENT, REDEMPTION, TRUST, AND OTHER ARCANE TECHNICAL
CONCEPTS Linux is not capable of having any centrally organized policies
dictating how to write error messages and documentation, and so each
programmer writes his own. Usually they are in English even though tons
of Linux programmers are Europeans. Frequently they are funny. Always
they are honest. If something bad has happened because the software
simply isn't finished yet, or because the user screwed something up,
this will be stated forthrightly. The command line interface makes it
easy for programs to dribble out little comments, warnings, and messages
here and there. Even if the application is imploding like a damaged
submarine, it can still usually eke out a little S.O.S. message.
Sometimes when you finish working with a program and shut it down, you
find that it has left behind a series of mild warnings and low-grade
error messages in the command-line interface window from which you
launched it. As if the software were chatting to you about how it was
doing the whole time you were working with it. Documentation, under
Linux, comes in the form of man (short for manual) pages. You can access
these either through a GUI (xman) or from the command line (man). Here
is a sample from the man page for a program called rsh: "Stop signals
stop the local rsh process only; this is arguably wrong, but currently
hard to fix for reasons too complicated to explain here." The man pages
contain a lot of such material, which reads like the terse mutterings of
pilots wrestling with the controls of damaged airplanes. The general
feel is of a thousand monumental but obscure struggles seen in the
stop-action light of a strobe. Each programmer is dealing with his own
obstacles and bugs; he is too busy fixing them, and improving the
software, to explain things at great length or to maintain elaborate
pretensions. In practice you hardly ever encounter a serious bug while
running Linux. When you do, it is almost always with commercial software
(several vendors sell software that runs under Linux). The operating
system and its fundamental utility programs are too important to contain
serious bugs. I have been running Linux every day since late 1995 and
have seen many application programs go down in flames, but I have never
seen the operating system crash. Never. Not once. There are quite a few
Linux systems that have been running continuously and working hard for
months or years without needing to be rebooted. Commercial OSes have to
adopt the same official stance towards errors as Communist countries had
towards poverty. For doctrinal reasons it was not possible to admit that
poverty was a serious problem in Communist countries, because the whole
point of Communism was to eradicate poverty. Likewise, commercial OS
companies like Apple and Microsoft can't go around admitting that their
software has bugs and that it crashes all the time, any more than Disney
can issue press releases stating that Mickey Mouse is an actor in a
suit. This is a problem, because errors do exist and bugs do happen.
Every few months Bill Gates tries to demo a new Microsoft product in
front of a large audience only to have it blow up in his face.
Commercial OS vendors, as a direct consequence of being commercial, are
forced to adopt the grossly disingenuous position that bugs are rare
aberrations, usually someone else's fault, and therefore not really
worth talking about in any detail. This posture, which everyone knows to
be absurd, is not limited to press releases and ad campaigns. It informs
the whole way these companies do business and relate to their customers.
If the documentation were properly written, it would mention bugs,
errors, and crashes on every single page. If the on-line help systems
that come with these OSes reflected the experiences and concerns of
their users, they would largely be devoted to instructions on how to
cope with crashes and errors. But this does not happen. Joint stock
corporations are wonderful inventions that have given us many excellent
goods and services. They are good at many things. Admitting failure is
not one of them. Hell, they can't even admit minor shortcomings. Of
course, this behavior is not as pathological in a corporation as it
would be in a human being. Most people, nowadays, understand that
corporate press releases are issued for the benefit of the corporation's
shareholders and not for the enlightenment of the public. Sometimes the
results of this institutional dishonesty can be dreadful, as with
tobacco and asbestos. In the case of commercial OS vendors it is nothing
of the kind, of course; it is merely annoying. Some might argue that
consumer annoyance, over time, builds up into a kind of hardened plaque
that can conceal serious decay, and that honesty might therefore be the
best policy in the long run; the jury is still out on this in the
operating system market. The business is expanding fast enough that it's
still much better to have billions of chronically annoyed customers than
millions of happy ones. Most system administrators I know who work with
Windows NT all the time agree that when it hits a snag, it has to be
re-booted, and when it gets seriously messed up, the only way to fix it
is to re-install the operating system from scratch. Or at least this is
the only way that they know of to fix it, which amounts to the same
thing. It is quite possible that the engineers at Microsoft have all
sorts of insider knowledge on how to fix the system when it goes awry,
but if they do, they do not seem to be getting the message out to any of
the actual system administrators I know. Because Linux is not
commercial--because it is, in fact, free, as well as rather difficult to
obtain, install, and operate--it does not have to maintain any
pretensions as to its reliability. Consequently, it is much more
reliable. When something goes wrong with Linux, the error is noticed and
loudly discussed right away. Anyone with the requisite technical
knowledge can go straight to the source code and point out the source of
the error, which is then rapidly fixed by whichever hacker has carved
out responsibility for that particular program. As far as I know, Debian
is the only Linux distribution that has its own constitution
(http://www.debian.org/devel/constitution), but what really sold me on
it was its phenomenal bug database (http://www.debian.org/Bugs), which
is a sort of interactive Doomsday Book of error, fallibility, and
redemption. It is simplicity itself. When had a problem with Debian in
early January of 1997, I sent in a message describing the problem to
sub...@bugs.debian.org. My problem was promptly assigned a bug report
number (#6518) and a severity level (the available choices being
critical, grave, important, normal, fixed, and wishlist) and forwarded
to mailing lists where Debian people hang out. Within twenty-four hours
I had received five e-mails telling me how to fix the problem: two from
North America, two from Europe, and one from Australia. All of these
e-mails gave me the same suggestion, which worked, and made my problem
go away. But at the same time, a transcript of this exchange was posted
to Debian's bug database, so that if other users had the same problem
later, they would be able to search through and find the solution
without having to enter a new, redundant bug report. Contrast this with
the experience that I had when I tried to install Windows NT 4.0 on the
very same machine about ten months later, in late 1997. The installation
program simply stopped in the middle with no error messages. I went to
the Microsoft Support website and tried to perform a search for existing
help documents that would address my problem. The search engine was
completely nonfunctional; it did nothing at all. It did not even give me
a message telling me that it was not working. Eventually I decided that
my motherboard must be at fault; it was of a slightly unusual make and
model, and NT did not support as many different motherboards as Linux. I
am always looking for excuses, no matter how feeble, to buy new
hardware, so I bought a new motherboard that was Windows NT
logo-compatible, meaning that the Windows NT logo was printed right on
the box. I installed this into my computer and got Linux running right
away, then attempted to install Windows NT again. Again, the
installation died without any error message or explanation. By this time
a couple of weeks had gone by and I thought that perhaps the search
engine on the Microsoft Support website might be up and running. I gave
that a try but it still didn't work. So I created a new Microsoft
support account, then logged on to submit the incident. I supplied my
product ID number when asked, and then began to follow the instructions
on a series of help screens. In other words, I was submitting a bug
report just as with the Debian bug tracking system. It's just that the
interface was slicker--I was typing my complaint into little
text-editing boxes on Web forms, doing it all through the GUI, whereas
with Debian you send in an e-mail telegram. I knew that when I was
finished submitting the bug report, it would become proprietary
Microsoft information, and other users wouldn't be able to see it. Many
Linux users would refuse to participate in such a scheme on ethical
grounds, but I was willing to give it a shot as an experiment. In the
end, though I was never able to submit my bug report, because the series
of linked web pages that I was filling out eventually led me to a
completely blank page: a dead end. So I went back and clicked on the
buttons for "phone support" and eventually was given a Microsoft
telephone number. When I dialed this number I got a series of piercing
beeps and a recorded message from the phone company saying "We're sorry,
your call cannot be completed as dialed." I tried the search page
again--it was still completely nonfunctional. Then I tried PPI (Pay Per
Incident) again. This led me through another series of Web pages until I
dead-ended at one reading: "Notice-there is no Web page matching your
request." I tried it again, and eventually got to a Pay Per Incident
screen reading: "OUT OF INCIDENTS. There are no unused incidents left in
your account. If you would like to purchase a support incident, click
OK-you will then be able to prepay for an incident...." The cost per
incident was $95. The experiment was beginning to seem rather expensive,
so I gave up on the PPI approach and decided to have a go at the FAQs
posted on Microsoft's website. None of the available FAQs had anything
to do with my problem except for one entitled "I am having some problems
installing NT" which appeared to have been written by flacks, not
engineers. So I gave up and still, to this day, have never gotten
Windows NT installed on that particular machine. For me, the path of
least resistance was simply to use Debian Linux. In the world of open
source software, bug reports are useful information. Making them public
is a service to other users, and improves the OS. Making them public
systematically is so important that highly intelligent people
voluntarily put time and money into running bug databases. In the
commercial OS world, however, reporting a bug is a privilege that you
have to pay lots of money for. But if you pay for it, it follows that
the bug report must be kept confidential--otherwise anyone could get the
benefit of your ninety-five bucks! And yet nothing prevents NT users
from setting up their own public bug database. This is, in other words,
another feature of the OS market that simply makes no sense unless you
view it in the context of culture. What Microsoft is selling through Pay
Per Incident isn't technical support so much as the continued illusion
that its customers are engaging in some kind of rational business
transaction. It is a sort of routine maintenance fee for the upkeep of
the fantasy. If people really wanted a solid OS they would use Linux,
and if they really wanted tech support they would find a way to get it;
Microsoft's customers want something else. As of this writing (Jan.
1999), something like 32,000 bugs have been reported to the Debian Linux
bug database. Almost all of them have been fixed a long time ago. There
are twelve "critical" bugs still outstanding, of which the oldest was
posted 79 days ago. There are 20 outstanding "grave" bugs of which the
oldest is 1166 days old. There are 48 "important" bugs and hundreds of
"normal" and less important ones. Likewise, BeOS (which I'll get to in a
minute) has its own bug database
(http://www.be.com/developers/bugs/index.html) with its own
classification system, including such categories as "Not a Bug,"
"Acknowledged Feature," and "Will Not Fix." Some of the "bugs" here are
nothing more than Be hackers blowing off steam, and are classified as
"Input Acknowledged." For example, I found one that was posted on
December 30th, 1998. It's in the middle of a long list of bugs, wedged
between one entitled "Mouse working in very strange fashion" and another
called "Change of BView frame does not affect, if BView not attached to
a BWindow." This one is entitled R4: BeOS missing megalomaniacal
figurehead to harness and focus developer rage and it goes like this:
---------------------------- Be Status: Input Acknowledged BeOS Version:
R3.2 Component: unknown Full Description: The BeOS needs a
megalomaniacal egomaniac sitting on its throne to give it a human
character which everyone loves to hate. Without this, the BeOS will
languish in the impersonifiable realm of OSs that people can never quite
get a handle on. You can judge the success of an OS not by the quality
of its features, but by how infamous and disliked the leaders behind
them are. I believe this is a side-effect of developer comraderie under
miserable conditions. After all, misery loves company. I believe that
making the BeOS less conceptually accessible and far less reliable will
require developers to band together, thus developing the kind of
community where strangers talk to one- another, kind of like at a
grocery store before a huge snowstorm. Following this same program, it
will likely be necessary to move the BeOS headquarters to a
far-less-comfortable climate. General environmental discomfort will
breed this attitude within and there truly is no greater recipe for
success. I would suggest Seattle, but I think it's already taken. You
might try Washington, DC, but definitely not somewhere like San Diego or
Tucson. ---------------------------- Unfortunately, the Be bug reporting
system strips off the names of the people who report the bugs (to
protect them from retribution!?) and so I don't know who wrote this. So
it would appear that I'm in the middle of crowing about the technical
and moral superiority of Debian Linux. But as almost always happens in
the OS world, it's more complicated than that. I have Windows NT running
on another machine, and the other day (Jan. 1999), when I had a problem
with it, I decided to have another go at Microsoft Support. This time
the search engine actually worked (though in order to reach it I had to
identify myself as "advanced"). And instead of coughing up some useless
FAQ, it located about two hundred documents (I was using very vague
search criteria) that were obviously bug reports--though they were
called something else. Microsoft, in other words, has got a system up
and running that is functionally equivalent to Debian's bug database. It
looks and feels different, of course, but it contains technical
nitty-gritty and makes no bones about the existence of errors. As I've
explained, selling OSes for money is a basically untenable position, and
the only way Apple and Microsoft can get away with it is by pursuing
technological advancements as aggressively as they can, and by getting
people to believe in, and to pay for, a particular image: in the case of
Apple, that of the creative free thinker, and in the case of Microsoft,
that of the respectable techno-bourgeois. Just like Disney, they're
making money from selling an interface, a magic mirror. It has to be
polished and seamless or else the whole illusion is ruined and the
business plan vanishes like a mirage. Accordingly, it was the case until
recently that the people who wrote manuals and created customer support
websites for commercial OSes seemed to have been barred, by their
employers' legal or PR departments, from admitting, even obliquely, that
the software might contain bugs or that the interface might be suffering
from the blinking twelve problem. They couldn't address users' actual
difficulties. The manuals and websites were therefore useless, and
caused even technically self-assured users to wonder whether they were
going subtly insane. When Apple engages in this sort of corporate
behavior, one wants to believe that they are really trying their best.
We all want to give Apple the benefit of the doubt, because mean old
Bill Gates kicked the crap out of them, and because they have good PR.
But when Microsoft does it, one almost cannot help becoming a paranoid
conspiracist. Obviously they are hiding something from us! And yet they
are so powerful! They are trying to drive us crazy! This approach to
dealing with one's customers was straight out of the Central European
totalitarianism of the mid-Twentieth Century. The adjectives
"Kafkaesque" and "Orwellian" come to mind. It couldn't last, any more
than the Berlin Wall could, and so now Microsoft has a publicly
available bug database. It's called something else, and it takes a while
to find it, but it's there. They have, in other words, adapted to the
two-tiered Eloi/Morlock structure of technological society. If you're an
Eloi you install Windows, follow the instructions, hope for the best,
and dumbly suffer when it breaks. If you're a Morlock you go to the
website, tell it that you are "advanced," find the bug database, and get
the truth straight from some anonymous Microsoft engineer. But once
Microsoft has taken this step, it raises the question, once again, of
whether there is any point to being in the OS business at all. Customers
might be willing to pay $95 to report a problem to Microsoft if, in
return, they get some advice that no other user is getting. This has the
useful side effect of keeping the users alienated from one another,
which helps maintain the illusion that bugs are rare aberrations. But
once the results of those bug reports become openly available on the
Microsoft website, everything changes. No one is going to cough up $95
to report a problem when chances are good that some other sucker will do
it first, and that instructions on how to fix the bug will then show up,
for free, on a public website. And as the size of the bug database
grows, it eventually becomes an open admission, on Microsoft's part,
that their OSes have just as many bugs as their competitors'. There is
no shame in that; as I mentioned, Debian's bug database has logged
32,000 reports so far. But it puts Microsoft on an equal footing with
the others and makes it a lot harder for their customers--who want to
believe--to believe. &nbsp;

MEMENTO MORI

Once the Linux machine has finished spitting out its jargonic opening
telegram, it prompts me to log in with a user name and a password. At
this point the machine is still running the command line interface, with
white letters on a black screen. There are no windows, menus, or
buttons. It does not respond to the mouse; it doesn't even know that the
mouse is there. It is still possible to run a lot of software at this
point. Emacs, for example, exists in both a CLI and a GUI version
(actually there are two GUI versions, reflecting some sort of doctrinal
schism between Richard Stallman and some hackers who got fed up with
him). The same is true of many other Unix programs. Many don't have a
GUI at all, and many that do are capable of running from the command
line. Of course, since my computer only has one monitor screen, I can
only see one command line, and so you might think that I could only
interact with one program at a time. But if I hold down the Alt key and
then hit the F2 function button at the top of my keyboard, I am
presented with a fresh, blank, black screen with a login prompt at the
top of it. I can log in here and start some other program, then hit
Alt-F1 and go back to the first screen, which is still doing whatever it
was when I left it. Or I can do Alt-F3 and log in to a third screen, or
a fourth, or a fifth. On one of these screens I might be logged in as
myself, on another as root (the system administrator), on yet another I
might be logged on to some other computer over the Internet. Each of
these screens is called, in Unix-speak, a tty, which is an abbreviation
for teletype. So when I use my Linux system in this way I am going right
back to that small room at Ames High School where I first wrote code
twenty-five years ago, except that a tty is quieter and faster than a
teletype, and capable of running vastly superior software, such as emacs
or the GNU development tools. It is easy (easy by Unix, not
Apple/Microsoft standards) to configure a Linux machine so that it will
go directly into a GUI when you boot it up. This way, you never see a
tty screen at all. I still have mine boot into the white-on-black
teletype screen however, as a computational memento mori. It used to be
fashionable for a writer to keep a human skull on his desk as a reminder
that he was mortal, that all about him was vanity. The tty screen
reminds me that the same thing is true of slick user interfaces. The X
Windows System, which is the GUI of Unix, has to be capable of running
on hundreds of different video cards with different chipsets, amounts of
onboard memory, and motherboard buses. Likewise, there are hundreds of
different types of monitors on the new and used market, each with
different specifications, and so there are probably upwards of a million
different possible combinations of card and monitor. The only thing they
all have in common is that they all work in VGA mode, which is the old
command-line screen that you see for a few seconds when you launch
Windows. So Linux always starts in VGA, with a teletype interface,
because at first it has no idea what sort of hardware is attached to
your computer. In order to get beyond the glass teletype and into the
GUI, you have to tell Linux exactly what kinds of hardware you have. If
you get it wrong, you'll get a blank screen at best, and at worst you
might actually destroy your monitor by feeding it signals it can't
handle. When I started using Linux this had to be done by hand. I once
spent the better part of a month trying to get an oddball monitor to
work for me, and filled the better part of a composition book with
increasingly desperate scrawled notes. Nowadays, most Linux
distributions ship with a program that automatically scans the video
card and self-configures the system, so getting X Windows up and running
is nearly as easy as installing an Apple/Microsoft GUI. The crucial
information goes into a file (an ASCII text file, naturally) called
XF86Config, which is worth looking at even if your distribution creates
it for you automatically. For most people it looks like meaningless
cryptic incantations, which is the whole point of looking at it. An
Apple/Microsoft system needs to have the same information in order to
launch its GUI, but it's apt to be deeply hidden somewhere, and it's
probably in a file that can't even be opened and read by a text editor.
All of the important files that make Linux systems work are right out in
the open. They are always ASCII text files, so you don't need special
tools to read them. You can look at them any time you want, which is
good, and you can mess them up and render your system totally
dysfunctional, which is not so good. At any rate, assuming that my
XF86Config file is just so, I enter the command "startx" to launch the X
Windows System. The screen blanks out for a minute, the monitor makes
strange twitching noises, then reconstitutes itself as a blank gray
desktop with a mouse cursor in the middle. At the same time it is
launching a window manager. X Windows is pretty low-level software; it
provides the infrastructure for a GUI, and it's a heavy industrial
infrastructure. But it doesn't do windows. That's handled by another
category of application that sits atop X Windows, called a window
manager. Several of these are available, all free of course. The classic
is twm (Tom's Window Manager) but there is a smaller and supposedly more
efficient variant of it called fvwm, which is what I use. I have my eye
on a completely different window manager called Enlightenment, which may
be the hippest single technology product I have ever seen, in that (a)
it is for Linux, (b) it is freeware, (c) it is being developed by a very
small number of obsessed hackers, and (d) it looks amazingly cool; it is
the sort of window manager that might show up in the backdrop of an
Aliens movie. Anyway, the window manager acts as an intermediary between
X Windows and whatever software you want to use. It draws the window
frames, menus, and so on, while the applications themselves draw the
actual content in the windows. The applications might be of any sort:
text editors, Web browsers, graphics packages, or utility programs, such
as a clock or calculator. In other words, from this point on, you feel
as if you have been shunted into a parallel universe that is quite
similar to the familiar Apple or Microsoft one, but slightly and
pervasively different. The premier graphics program under
Apple/Microsoft is Adobe Photoshop, but under Linux it's something
called The GIMP. Instead of the Microsoft Office Suite, you can buy
something called ApplixWare. Many commercial software packages, such as
Mathematica, Netscape Communicator, and Adobe Acrobat, are available in
Linux versions, and depending on how you set up your window manager you
can make them look and behave just as they would under MacOS or Windows.
But there is one type of window you'll see on Linux GUI that is rare or
nonexistent under other OSes. These windows are called "xterm" and
contain nothing but lines of text--this time, black text on a white
background, though you can make them be different colors if you choose.
Each xterm window is a separate command line interface--a tty in a
window. So even when you are in full GUI mode, you can still talk to
your Linux machine through a command-line interface. There are many good
pieces of Unix software that do not have GUIs at all. This might be
because they were developed before X Windows was available, or because
the people who wrote them did not want to suffer through all the hassle
of creating a GUI, or because they simply do not need one. In any event,
those programs can be invoked by typing their names into the command
line of an xterm window. The whoami command, mentioned earlier, is a
good example. There is another called wc ("word count") which simply
returns the number of lines, words, and characters in a text file. The
ability to run these little utility programs on the command line is a
great virtue of Unix, and one that is unlikely to be duplicated by pure
GUI operating systems. The wc command, for example, is the sort of thing
that is easy to write with a command line interface. It probably does
not consist of more than a few lines of code, and a clever programmer
could probably write it in a single line. In compiled form it takes up
just a few bytes of disk space. But the code required to give the same
program a graphical user interface would probably run into hundreds or
even thousands of lines, depending on how fancy the programmer wanted to
make it. Compiled into a runnable piece of software, it would have a
large overhead of GUI code. It would be slow to launch and it would use
up a lot of memory. This would simply not be worth the effort, and so
"wc" would never be written as an independent program at all. Instead
users would have to wait for a word count feature to appear in a
commercial software package. GUIs tend to impose a large overhead on
every single piece of software, even the smallest, and this overhead
completely changes the programming environment. Small utility programs
are no longer worth writing. Their functions, instead, tend to get
swallowed up into omnibus software packages. As GUIs get more complex,
and impose more and more overhead, this tendency becomes more pervasive,
and the software packages grow ever more colossal; after a point they
begin to merge with each other, as Microsoft Word and Excel and
PowerPoint have merged into Microsoft Office: a stupendous software
Wal-Mart sitting on the edge of a town filled with tiny shops that are
all boarded up. It is an unfair analogy, because when a tiny shop gets
boarded up it means that some small shopkeeper has lost his business. Of
course nothing of the kind happens when "wc" becomes subsumed into one
of Microsoft Word's countless menu items. The only real drawback is a
loss of flexibility for the user, but it is a loss that most customers
obviously do not notice or care about. The most serious drawback to the
Wal-Mart approach is that most users only want or need a tiny fraction
of what is contained in these giant software packages. The remainder is
clutter, dead weight. And yet the user in the next cubicle over will
have completely different opinions as to what is useful and what isn't.
The other important thing to mention, here, is that Microsoft has
included a genuinely cool feature in the Office package: a Basic
programming package. Basic is the first computer language that I
learned, back when I was using the paper tape and the teletype. By using
the version of Basic that comes with Office you can write your own
little utility programs that know how to interact with all of the little
doohickeys, gewgaws, bells, and whistles in Office. Basic is easier to
use than the languages typically employed in Unix command-line
programming, and Office has reached many, many more people than the GNU
tools. And so it is quite possible that this feature of Office will, in
the end, spawn more hacking than GNU. But now I'm talking about
application software, not operating systems. And as I've said,
Microsoft's application software tends to be very good stuff. I don't
use it very much, because I am nowhere near their target market. If
Microsoft ever makes a software package that I use and like, then it
really will be time to dump their stock, because I am a market segment
of one.

GEEK FATIGUE Over the years that I've been working with Linux I have
filled three and a half notebooks logging my experiences. I only begin
writing things down when I'm doing something complicated, like setting
up X Windows or fooling around with my Internet connection, and so these
notebooks contain only the record of my struggles and frustrations. When
things are going well for me, I'll work along happily for many months
without jotting down a single note. So these notebooks make for pretty
bleak reading. Changing anything under Linux is a matter of opening up
various of those little ASCII text files and changing a word here and a
character there, in ways that are extremely significant to how the
system operates. Many of the files that control how Linux operates are
nothing more than command lines that became so long and complicated that
not even Linux hackers could type them correctly. When working with
something as powerful as Linux, you can easily devote a full half-hour
to engineering a single command line. For example, the "find" command,
which searches your file system for files that match certain criteria,
is fantastically powerful and general. Its "man" is eleven pages long,
and these are pithy pages; you could easily expand them into a whole
book. And if that is not complicated enough in and of itself, you can
always pipe the output of one Unix command to the input of another,
equally complicated one. The "pon" command, which is used to fire up a
PPP connection to the Internet, requires so much detailed information
that it is basically impossible to launch it entirely from the command
line. Instead you abstract big chunks of its input into three or four
different files. You need a dialing script, which is effectively a
little program telling it how to dial the phone and respond to various
events; an options file, which lists up to about sixty different options
on how the PPP connection is to be set up; and a secrets file, giving
information about your password. Presumably there are godlike Unix
hackers somewhere in the world who don't need to use these little
scripts and options files as crutches, and who can simply pound out
fantastically complex command lines without making typographical errors
and without having to spend hours flipping through documentation. But
I'm not one of them. Like almost all Linux users, I depend on having all
of those details hidden away in thousands of little ASCII text files,
which are in turn wedged into the recesses of the Unix filesystem. When
I want to change something about the way my system works, I edit those
files. I know that if I don't keep track of every little change I've
made, I won't be able to get your system back in working order after
I've gotten it all messed up. Keeping hand-written logs is tedious, not
to mention kind of anachronistic. But it's necessary. I probably could
have saved myself a lot of headaches by doing business with a company
called Cygnus Support, which exists to provide assistance to users of
free software. But I didn't, because I wanted to see if I could do it
myself. The answer turned out to be yes, but just barely. And there are
many tweaks and optimizations that I could probably make in my system
that I have never gotten around to attempting, partly because I get
tired of being a Morlock some days, and partly because I am afraid of
fouling up a system that generally works well. Though Linux works for me
and many other users, its sheer power and generality is its Achilles'
heel. If you know what you are doing, you can buy a cheap PC from any
computer store, throw away the Windows discs that come with it, turn it
into a Linux system of mind-boggling complexity and power. You can hook
it up to twelve other Linux boxes and make it into part of a parallel
computer. You can configure it so that a hundred different people can be
logged onto it at once over the Internet, via as many modem lines,
Ethernet cards, TCP/IP sockets, and packet radio links. You can hang
half a dozen different monitors off of it and play DOOM with someone in
Australia while tracking communications satellites in orbit and
controlling your house's lights and thermostats and streaming live video
from your web-cam and surfing the Net and designing circuit boards on
the other screens. But the sheer power and complexity of the system--the
qualities that make it so vastly technically superior to other
OSes--sometimes make it seem too formidable for routine day-to-day use.
Sometimes, in other words, I just want to go to Disneyland. The ideal OS
for me would be one that had a well-designed GUI that was easy to set up
and use, but that included terminal windows where I could revert to the
command line interface, and run GNU software, when it made sense. A few
years ago, Be Inc. invented exactly that OS. It is called the BeOS.
&nbsp;

ETRE

Many people in the computer business have had a difficult time grappling
with Be, Incorporated, for the simple reason that nothing about it seems
to make any sense whatsoever. It was launched in late 1990, which makes
it roughly contemporary with Linux. From the beginning it has been
devoted to creating a new operating system that is, by design,
incompatible with all the others (though, as we shall see, it is
compatible with Unix in some very important ways). If a definition of
"celebrity" is someone who is famous for being famous, then Be is an
anti-celebrity. It is famous for not being famous; it is famous for
being doomed. But it has been doomed for an awfully long time. Be's
mission might make more sense to hackers than to other people. In order
to explain why I need to explain the concept of cruft, which, to people
who write code, is nearly as abhorrent as unnecessary repetition. If
you've been to San Francisco you may have seen older buildings that have
undergone "seismic upgrades," which frequently means that grotesque
superstructures of modern steelwork are erected around buildings made
in, say, a Classical style. When new threats arrive--if we have an Ice
Age, for example--additional layers of even more high-tech stuff may be
constructed, in turn, around these, until the original building is like
a holy relic in a cathedral--a shard of yellowed bone enshrined in half
a ton of fancy protective junk. Analogous measures can be taken to keep
creaky old operating systems working. It happens all the time. Ditching
an worn-out old OS ought to be simplified by the fact that, unlike old
buildings, OSes have no aesthetic or cultural merit that makes them
intrinsically worth saving. But it doesn't work that way in practice. If
you work with a computer, you have probably customized your "desktop,"
the environment in which you sit down to work every day, and spent a lot
of money on software that works in that environment, and devoted much
time to familiarizing yourself with how it all works. This takes a lot
of time, and time is money. As already mentioned, the desire to have
one's interactions with complex technologies simplified through the
interface, and to surround yourself with virtual tchotchkes and lawn
ornaments, is natural and pervasive--presumably a reaction against the
complexity and formidable abstraction of the computer world. Computers
give us more choices than we really want. We prefer to make those
choices once, or accept the defaults handed to us by software companies,
and let sleeping dogs lie. But when an OS gets changed, all the dogs
jump up and start barking. The average computer user is a technological
antiquarian who doesn't really like things to change. He or she is like
an urban professional who has just bought a charming fixer-upper and is
now moving the furniture and knicknacks around, and reorganizing the
kitchen cupboards, so that everything's just right. If it is necessary
for a bunch of engineers to scurry around in the basement shoring up the
foundation so that it can support the new cast-iron claw-foot bathtub,
and snaking new wires and pipes through the walls to supply modern
appliances, why, so be it--engineers are cheap, at least when millions
of OS users split the cost of their services. Likewise, computer users
want to have the latest Pentium in their machines, and to be able to
surf the web, without messing up all the stuff that makes them feel as
if they know what the hell is going on. Sometimes this is actually
possible. Adding more RAM to your system is a good example of an upgrade
that is not likely to screw anything up. Alas, very few upgrades are
this clean and simple. Lawrence Lessig, the whilom Special Master in the
Justice Department's antitrust suit against Microsoft, complained that
he had installed Internet Explorer on his computer, and in so doing,
lost all of his bookmarks--his personal list of signposts that he used
to navigate through the maze of the Internet. It was as if he'd bought a
new set of tires for his car, and then, when pulling away from the
garage, discovered that, owing to some inscrutable side-effect, every
signpost and road map in the world had been destroyed. If he's like most
of us, he had put a lot of work into compiling that list of bookmarks.
This is only a small taste of the sort of trouble that upgrades can
cause. Crappy old OSes have value in the basically negative sense that
changing to new ones makes us wish we'd never been born. All of the
fixing and patching that engineers must do in order to give us the
benefits of new technology without forcing us to think about it, or to
change our ways, produces a lot of code that, over time, turns into a
giant clot of bubble gum, spackle, baling wire and duct tape surrounding
every operating system. In the jargon of hackers, it is called "cruft."
An operating system that has many, many layers of it is described as
"crufty." Hackers hate to do things twice, but when they see something
crufty, their first impulse is to rip it out, throw it away, and start
anew. If Mark Twain were brought back to San Francisco today and dropped
into one of these old seismically upgraded buildings, it would look just
the same to him, with all the doors and windows in the same places--but
if he stepped outside, he wouldn't recognize it. And--if he'd been
brought back with his wits intact--he might question whether the
building had been worth going to so much trouble to save. At some point,
one must ask the question: is this really worth it, or should we maybe
just tear it down and put up a good one? Should we throw another human
wave of structural engineers at stabilizing the Leaning Tower of Pisa,
or should we just let the damn thing fall over and build a tower that
doesn't suck? Like an upgrade to an old building, cruft always seems
like a good idea when the first layers of it go on--just routine
maintenance, sound prudent management. This is especially true if (as it
were) you never look into the cellar, or behind the drywall. But if you
are a hacker who spends all his time looking at it from that point of
view, cruft is fundamentally disgusting, and you can't avoid wanting to
go after it with a crowbar. Or, better yet, simply walk out of the
building--let the Leaning Tower of Pisa fall over--and go make a new one
THAT DOESN'T LEAN. For a long time it was obvious to Apple, Microsoft,
and their customers that the first generation of GUI operating systems
was doomed, and that they would eventually need to be ditched and
replaced with completely fresh ones. During the late Eighties and early
Nineties, Apple launched a few abortive efforts to make fundamentally
new post-Mac OSes such as Pink and Taligent. When those efforts failed
they launched a new project called Copland which also failed. In 1997
they flirted with the idea of acquiring Be, but instead they acquired
Next, which has an OS called NextStep that is, in effect, a variant of
Unix. As these efforts went on, and on, and on, and failed and failed
and failed, Apple's engineers, who were among the best in the business,
kept layering on the cruft. They were gamely trying to turn the little
toaster into a multi-tasking, Internet-savvy machine, and did an
amazingly good job of it for a while--sort of like a movie hero running
across a jungle river by hopping across crocodiles' backs. But in the
real world you eventually run out of crocodiles, or step on a really
smart one. Speaking of which, Microsoft tackled the same problem in a
considerably more orderly way by creating a new OS called Windows NT,
which is explicitly intended to be a direct competitor of Unix. NT
stands for "New Technology" which might be read as an explicit rejection
of cruft. And indeed, NT is reputed to be a lot less crufty than what
MacOS eventually turned into; at one point the documentation needed to
write code on the Mac filled something like 24 binders. Windows 95 was,
and Windows 98 is, crufty because they have to be backward-compatible
with older Microsoft OSes. Linux deals with the cruft problem in the
same way that Eskimos supposedly dealt with senior citizens: if you
insist on using old versions of Linux software, you will sooner or later
find yourself drifting through the Bering Straits on a dwindling ice
floe. They can get away with this because most of the software is free,
so it costs nothing to download up-to-date versions, and because most
Linux users are Morlocks. The great idea behind BeOS was to start from a
clean sheet of paper and design an OS the right way. And that is exactly
what they did. This was obviously a good idea from an aesthetic
standpoint, but does not a sound business plan make. Some people I know
in the GNU/Linux world are annoyed with Be for going off on this
quixotic adventure when their formidable skills could have been put to
work helping to promulgate Linux. Indeed, none of it makes sense until
you remember that the founder of the company, Jean-Louis Gassee, is from
France--a country that for many years maintained its own separate and
independent version of the English monarchy at a court in St. Germaines,
complete with courtiers, coronation ceremonies, a state religion and a
foreign policy. Now, the same annoying yet admirable stiff-neckedness
that gave us the Jacobites, the force de frappe, Airbus, and ARRET signs
in Quebec, has brought us a really cool operating system. I fart in your
general direction, Anglo-Saxon pig-dogs! To create an entirely new OS
from scratch, just because none of the existing ones was exactly right,
struck me as an act of such colossal nerve that I felt compelled to
support it. I bought a BeBox as soon as I could. The BeBox was a
dual-processor machine, powered by Motorola chips, made specifically to
run the BeOS; it could not run any other operating system. That's why I
bought it. I felt it was a way to burn my bridges. Its most distinctive
feature is two columns of LEDs on the front panel that zip up and down
like tachometers to convey a sense of how hard each processor is
working. I thought it looked cool, and besides, I reckoned that when the
company went out of business in a few months, my BeBox would be a
valuable collector's item. Now it is about two years later and I am
typing this on my BeBox. The LEDs (Das Blinkenlights, as they are called
in the Be community) flash merrily next to my right elbow as I hit the
keys. Be, Inc. is still in business, though they stopped making BeBoxes
almost immediately after I bought mine. They made the sad, but probably
quite wise decision that hardware was a sucker's game, and ported the
BeOS to Macintoshes and Mac clones. Since these used the same sort of
Motorola chips that powered the BeBox, this wasn't especially hard. Very
soon afterwards, Apple strangled the Mac-clone makers and restored its
hardware monopoly. So, for a while, the only new machines that could run
BeOS were made by Apple. By this point Be, like Spiderman with his
Spider-sense, had developed a keen sense of when they were about to get
crushed like a bug. Even if they hadn't, the notion of being dependent
on Apple--so frail and yet so vicious--for their continued existence
should have put a fright into anyone. Now engaged in their own
crocodile-hopping adventure, they ported the BeOS to Intel chips--the
same chips used in Windows machines. And not a moment too soon, for when
Apple came out with its new top-of-the-line hardware, based on the
Motorola G3 chip, they withheld the technical data that Be's engineers
would need to make the BeOS run on those machines. This would have
killed Be, just like a slug between the eyes, if they hadn't made the
jump to Intel. So now BeOS runs on an assortment of hardware that is
almost incredibly motley: BeBoxes, aging Macs and Mac orphan-clones, and
Intel machines that are intended to be used for Windows. Of course the
latter type are ubiquitous and shockingly cheap nowadays, so it would
appear that Be's hardware troubles are finally over. Some German hackers
have even come up with a Das Blinkenlights replacement: it's a circuit
board kit that you can plug into PC-compatible machines running BeOS. It
gives you the zooming LED tachometers that were such a popular feature
of the BeBox. My BeBox is already showing its age, as all computers do
after a couple of years, and sooner or later I'll probably have to
replace it with an Intel machine. Even after that, though, I will still
be able to use it. Because, inevitably, someone has now ported Linux to
the BeBox. At any rate, BeOS has an extremely well-thought-out GUI built
on a technological framework that is solid. It is based from the ground
up on modern object-oriented software principles. BeOS software consists
of quasi-independent software entities called objects, which communicate
by sending messages to each other. The OS itself is made up of such
objects, and serves as a kind of post office or Internet that routes
messages to and fro, from object to object. The OS is multi-threaded,
which means that like all other modern OSes it can walk and chew gum at
the same time; but it gives programmers a lot of power over spawning and
terminating threads, or independent sub-processes. It is also a
multi-processing OS, which means that it is inherently good at running
on computers that have more than one CPU (Linux and Windows NT can also
do this proficiently). For this user, a big selling point of BeOS is the
built-in Terminal application, which enables you to open up windows that
are equivalent to the xterm windows in Linux. In other words, the
command line interface is available if you want it. And because BeOS
hews to a certain standard called POSIX, it is capable of running most
of the GNU software. That is to say that the vast array of command-line
software developed by the GNU crowd will work in BeOS terminal windows
without complaint. This includes the GNU development tools-the compiler
and linker. And it includes all of the handy little utility programs.
I'm writing this using a modern sort of user-friendly text editor called
Pe, written by a Dutchman named Maarten Hekkelman, but when I want to
find out how long it is, I jump to a terminal window and run "wc." As is
suggested by the sample bug report I quoted earlier, people who work for
Be, and developers who write code for BeOS, seem to be enjoying
themselves more than their counterparts in other OSes. They also seem to
be a more diverse lot in general. A couple of years ago I went to an
auditorium at a local university to see some representatives of Be put
on a dog-and-pony show. I went because I assumed that the place would be
empty and echoing, and I felt that they deserved an audience of at least
one. In fact, I ended up standing in an aisle, for hundreds of students
had packed the place. It was like a rock concert. One of the two Be
engineers on the stage was a black man, which unfortunately is a very
odd thing in the high-tech world. The other made a ringing denunciation
of cruft, and extolled BeOS for its cruft-free qualities, and actually
came out and said that in ten or fifteen years, when BeOS had become all
crufty like MacOS and Windows 95, it would be time to simply throw it
away and create a new OS from scratch. I doubt that this is an official
Be, Inc. policy, but it sure made a big impression on everyone in the
room! During the late Eighties, the MacOS was, for a time, the OS of
cool people-artists and creative-minded hackers-and BeOS seems to have
the potential to attract the same crowd now. Be mailing lists are
crowded with hackers with names like Vladimir and Olaf and Pierre,
sending flames to each other in fractured techno-English. The only real
question about BeOS is whether or not it is doomed. Of late, Be has
responded to the tiresome accusation that they are doomed with the
assertion that BeOS is "a media operating system" made for media content
creators, and hence is not really in competition with Windows at all.
This is a little bit disingenuous. To go back to the car dealership
analogy, it is like the Batmobile dealer claiming that he is not really
in competition with the others because his car can go three times as
fast as theirs and is also capable of flying. Be has an office in Paris,
and, as mentioned, the conversation on Be mailing lists has a strongly
European flavor. At the same time they have made strenuous efforts to
find a niche in Japan, and Hitachi has recently begun bundling BeOS with
their PCs. So if I had to make wild guess I'd say that they are playing
Go while Microsoft is playing chess. They are staying clear, for now, of
Microsoft's overwhelmingly strong position in North America. They are
trying to get themselves established around the edges of the board, as
it were, in Europe and Japan, where people may be more open to
alternative OSes, or at least more hostile to Microsoft, than they are
in the United States. What holds Be back in this country is that the
smart people are afraid to look like suckers. You run the risk of
looking naive when you say "I've tried the BeOS and here's what I think
of it." It seems much more sophisticated to say "Be's chances of carving
out a new niche in the highly competitive OS market are close to nil."
It is, in techno-speak, a problem of mindshare. And in the OS business,
mindshare is more than just a PR issue; it has direct effects on the
technology itself. All of the peripheral gizmos that can be hung off of
a personal computer--the printers, scanners, PalmPilot interfaces, and
Lego Mindstorms--require pieces of software called drivers. Likewise,
video cards and (to a lesser extent) monitors need drivers. Even the
different types of motherboards on the market relate to the OS in
different ways, and separate code is required for each one. All of this
hardware-specific code must not only written but also tested, debugged,
upgraded, maintained, and supported. Because the hardware market has
become so vast and complicated, what really determines an OS's fate is
not how good the OS is technically, or how much it costs, but rather the
availability of hardware-specific code. Linux hackers have to write that
code themselves, and they have done an amazingly good job of keeping up
to speed. Be, Inc. has to write all their own drivers, though as BeOS
has begun gathering momentum, third-party developers have begun to
contribute drivers, which are available on Be's web site. But Microsoft
owns the high ground at the moment, because it doesn't have to write its
own drivers. Any hardware maker bringing a new video card or peripheral
device to market today knows that it will be unsalable unless it comes
with the hardware-specific code that will make it work under Windows,
and so each hardware maker has accepted the burden of creating and
maintaining its own library of drivers. &nbsp;

MINDSHARE

The U.S. Government's assertion that Microsoft has a monopoly in the OS
market might be the most patently absurd claim ever advanced by the
legal mind. Linux, a technically superior operating system, is being
given away for free, and BeOS is available at a nominal price. This is
simply a fact, which has to be accepted whether or not you like
Microsoft. Microsoft is really big and rich, and if some of the
government's witnesses are to be believed, they are not nice guys. But
the accusation of a monopoly simply does not make any sense. What is
really going on is that Microsoft has seized, for the time being, a
certain type of high ground: they dominate in the competition for
mindshare, and so any hardware or software maker who wants to be taken
seriously feels compelled to make a product that is compatible with
their operating systems. Since Windows-compatible drivers get written by
the hardware makers, Microsoft doesn't have to write them; in effect,
the hardware makers are adding new components to Windows, making it a
more capable OS, without charging Microsoft for the service. It is a
very good position to be in. The only way to fight such an opponent is
to have an army of highly competetent coders who write equivalent
drivers for free, which Linux does. But possession of this psychological
high ground is different from a monopoly in any normal sense of that
word, because here the dominance has nothing to do with technical
performance or price. The old robber-baron monopolies were monopolies
because they physically controlled means of production and/or
distribution. But in the software business, the means of production is
hackers typing code, and the means of distribution is the Internet, and
no one is claiming that Microsoft controls those. Here, instead, the
dominance is inside the minds of people who buy software. Microsoft has
power because people believe it does. This power is very real. It makes
lots of money. Judging from recent legal proceedings in both
Washingtons, it would appear that this power and this money have
inspired some very peculiar executives to come out and work for
Microsoft, and that Bill Gates should have administered saliva tests to
some of them before issuing them Microsoft ID cards. But this is not the
sort of power that fits any normal definition of the word "monopoly,"
and it's not amenable to a legal fix. The courts may order Microsoft to
do things differently. They might even split the company up. But they
can't really do anything about a mindshare monopoly, short of taking
every man, woman, and child in the developed world and subjecting them
to a lengthy brainwashing procedure. Mindshare dominance is, in other
words, a really odd sort of beast, something that the framers of our
antitrust laws couldn't possibly have imagined. It looks like one of
these modern, wacky chaos-theory phenomena, a complexity thing, in which
a whole lot of independent but connected entities (the world's computer
users), making decisions on their own, according to a few simple rules
of thumb, generate a large phenomenon (total domination of the market by
one company) that cannot be made sense of through any kind of rational
analysis. Such phenomena are fraught with concealed tipping-points and
all a-tangle with bizarre feedback loops, and cannot be understood;
people who try, end up (a) going crazy, (b) giving up, (c) forming
crackpot theories, or (d) becoming high-paid chaos theory consultants.
Now, there might be one or two people at Microsoft who are dense enough
to believe that mindshare dominance is some kind of stable and enduring
position. Maybe that even accounts for some of the weirdos they've hired
in the pure-business end of the operation, the zealots who keep getting
hauled into court by enraged judges. But most of them must have the wit
to understand that phenomena like these are maddeningly unstable, and
that there's no telling what weird, seemingly inconsequential event
might cause the system to shift into a radically different
configuration. To put it another way, Microsoft can be confident that
Thomas Penfield Jackson will not hand down an order that the brains of
everyone in the developed world are to be summarily re-programmed. But
there's no way to predict when people will decide, en masse, to
re-program their own brains. This might explain some of Microsoft's
behavior, such as their policy of keeping eerily large reserves of cash
sitting around, and the extreme anxiety that they display whenever
something like Java comes along.

I have never seen the inside of the building at Microsoft where the top
executives hang out, but I have this fantasy that in the hallways, at
regular intervals, big red alarm boxes are bolted to the wall. Each
contains a large red button protected by a windowpane. A metal hammer
dangles on a chain next to it. Above is a big sign reading: IN THE EVENT
OF A CRASH IN MARKET SHARE, BREAK GLASS.

What happens when someone shatters the glass and hits the button, I
don't know, but it sure would be interesting to find out. One imagines
banks collapsing all over the world as Microsoft withdraws its cash
reserves, and shrink-wrapped pallet-loads of hundred-dollar bills
dropping from the skies. No doubt, Microsoft has a plan. But what I
would really like to know is whether, at some level, their programmers
might heave a big sigh of relief if the burden of writing the One
Universal Interface to Everything were suddenly lifted from their
shoulders.


&nbsp;

THE RIGHT PINKY OF GOD

In his book The Life of the Cosmos, which everyone should read, Lee
Smolin gives the best description I've ever read of how our universe
emerged from an uncannily precise balancing of different fundamental
constants. The mass of the proton, the strength of gravity, the range of
the weak nuclear force, and a few dozen other fundamental constants
completely determine what sort of universe will emerge from a Big Bang.
If these values had been even slightly different, the universe would
have been a vast ocean of tepid gas or a hot knot of plasma or some
other basically uninteresting thing--a dud, in other words. The only way
to get a universe that's not a dud--that has stars, heavy elements,
planets, and life--is to get the basic numbers just right. If there were
some machine, somewhere, that could spit out universes with randomly
chosen values for their fundamental constants, then for every universe
like ours it would produce 10^229 duds. Though I haven't sat down and
run the numbers on it, to me this seems comparable to the probability of
making a Unix computer do something useful by logging into a tty and
typing in command lines when you have forgotten all of the little
options and keywords. Every time your right pinky slams that ENTER key,
you are making another try. In some cases the operating system does
nothing. In other cases it wipes out all of your files. In most cases it
just gives you an error message. In other words, you get many duds. But
sometimes, if you have it all just right, the computer grinds away for a
while and then produces something like emacs. It actually generates
complexity, which is Smolin's criterion for interestingness. Not only
that, but it's beginning to look as if, once you get below a certain
size--way below the level of quarks, down into the realm of string
theory--the universe can't be described very well by physics as it has
been practiced since the days of Newton. If you look at a small enough
scale, you see processes that look almost computational in nature. I
think that the message is very clear here: somewhere outside of and
beyond our universe is an operating system, coded up over incalculable
spans of time by some kind of hacker-demiurge. The cosmic operating
system uses a command-line interface. It runs on something like a
teletype, with lots of noise and heat; punched-out bits flutter down
into its hopper like drifting stars. The demiurge sits at his teletype,
pounding out one command line after another, specifying the values of
fundamental constants of physics: universe -G 6.672e-11 -e 1.602e-19 -h
6.626e-34 -protonmass 1.673e-27.... and when he's finished typing out
the command line, his right pinky hesitates above the ENTER key for an
aeon or two, wondering what's going to happen; then down it comes--and
the WHACK you hear is another Big Bang.

Now THAT is a cool operating system, and if such a thing were actually
made available on the Internet (for free, of course) every hacker in the
world would download it right away and then stay up all night long
messing with it, spitting out universes right and left. Most of them
would be pretty dull universes but some of them would be simply amazing.
Because what those hackers would be aiming for would be much more
ambitious than a universe that had a few stars and galaxies in it. Any
run-of-the-mill hacker would be able to do that. No, the way to gain a
towering reputation on the Internet would be to get so good at tweaking
your command line that your universes would spontaneously develop life.
And once the way to do that became common knowledge, those hackers would
move on, trying to make their universes develop the right kind of life,
trying to find the one change in the Nth decimal place of some physical
constant that would give us an Earth in which, say, Hitler had been
accepted into art school after all, and had ended up his days as a
street artist with cranky political opinions.

Even if that fantasy came true, though, most users (including myself, on
certain days) wouldn't want to bother learning to use all of those
arcane commands, and struggling with all of the failures; a few dud
universes can really clutter up your basement. After we'd spent a while
pounding out command lines and hitting that ENTER key and spawning dull,
failed universes, we would start to long for an OS that would go all the
way to the opposite extreme: an OS that had the power to do
everything--to live our life for us. In this OS, all of the possible
decisions we could ever want to make would have been anticipated by
clever programmers, and condensed into a series of dialog boxes. By
clicking on radio buttons we could choose from among mutually exclusive
choices (HETEROSEXUAL/HOMOSEXUAL). Columns of check boxes would enable
us to select the things that we wanted in our life (GET MARRIED/WRITE
GREAT AMERICAN NOVEL) and for more complicated options we could fill in
little text boxes (NUMBER OF DAUGHTERS: NUMBER OF SONS:).

Even this user interface would begin to look awfully complicated after a
while, with so many choices, and so many hidden interactions between
choices. It could become damn near unmanageable--the blinking twelve
problem all over again. The people who brought us this operating system
would have to provide templates and wizards, giving us a few default
lives that we could use as starting places for designing our own.
Chances are that these default lives would actually look pretty damn
good to most people, good enough, anyway, that they'd be reluctant to
tear them open and mess around with them for fear of making them worse.
So after a few releases the software would begin to look even simpler:
you would boot it up and it would present you with a dialog box with a
single large button in the middle labeled: LIVE. Once you had clicked
that button, your life would begin. If anything got out of whack, or
failed to meet your expectations, you could complain about it to
Microsoft's Customer Support Department. If you got a flack on the line,
he or she would tell you that your life was actually fine, that there
was not a thing wrong with it, and in any event it would be a lot better
after the next upgrade was rolled out. But if you persisted, and
identified yourself as Advanced, you might get through to an actual
engineer.

What would the engineer say, after you had explained your problem, and
enumerated all of the dissatisfactions in your life? He would probably
tell you that life is a very hard and complicated thing; that no
interface can change that; that anyone who believes otherwise is a
sucker; and that if you don't like having choices made for you, you
should start making your own.

Copyright 1999 by Neal Stephenson

&#169; 1999 The Hearst Corporation


Riho Kirss

unread,
May 20, 1999, 3:00:00 AM5/20/99
to
See on ju niiiiiiiiii pikkkkkkk.
Oleks võinud URLi anda.
Aga muidu päris lahe jah

Tr.

unread,
May 20, 1999, 3:00:00 AM5/20/99
to
Thu, 20 May 1999 19:21:44 +0300, "Riho Kirss" <kir...@online.ee>
kirjutas:

>See on ju niiiiiiiiii pikkkkkkk.
>Oleks võinud URLi anda.
>Aga muidu päris lahe jah
>

Url is pidi selle zip failina alla to~mbaba. vaevalt eriti paljud oleks
seda viitsind teha...
Aga palun:
http://www.cryptonomicon.com/beginning.html

Tr

0 new messages