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> C R Y P T O N O M I C O N</TITLE>

</HEAD> <BODY BGCOLOR="#000000" LINK="#996600" ALINK="#FFFFFF" VLINK="#663300">

<MAP NAME="navtext"> <AREA SHAPE=RECT HREF="praise.html" COORDS="0,37,84,55">
       <AREA SHAPE=RECT HREF="author.html" COORDS="0,59,137,75"> <AREA
       SHAPE=RECT HREF="text.html" COORDS="0,81,101,96"> <AREA SHAPE=RECT
       HREF="tour.html" COORDS="0,100,121,117"> <AREA SHAPE=RECT
       HREF="order.html" COORDS="0,122,143,138"> <AREA SHAPE=RECT
       HREF="beginning.html" COORDS="0,140,213,157"> </MAP>


<CENTER> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="520"> <TR>

       <TD VALIGN=TOP ROWSPAN="5"> <IMG SRC="images/spacer.gif" WIDTH="30"
       HEIGHT="1" BORDER="0"> </TD>

       <TD VALIGN=TOP COLSPAN="2"> <IMG SRC="images/main_banner.gif"
       ALT="Cryptonomincon by Neal Stephenson" WIDTH="479" HEIGHT="122"
       BORDER="0"> </TD>

</TR>

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.


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.


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&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&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:


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:


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.


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.


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.


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


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.


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 [email protected]. 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.


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.


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.


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.


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.