C R Y P T O N O M I C O N
In the Beginning was the Command Line
by Neal Stephenson
About twenty years ago Jobs and Wozniak, the founders of Apple, came
up with the very strange idea of selling information processing
machines for use in the home. The business took off, and its founders
made a lot of money and received the credit they deserved for being
daring visionaries. But around the same time, Bill Gates and Paul
Allen came up with an idea even stranger and more fantastical: selling
computer operating systems. This was much weirder than the idea of
Jobs and Wozniak. A computer at least had some sort of physical
reality to it. It came in a box, you could open it up and plug it in
and watch lights blink. An operating system had no tangible
incarnation at all. It arrived on a disk, of course, but the disk was,
in effect, nothing more than the box that the OS came in. The product
itself was a very long string of ones and zeroes that, when properly
installed and coddled, gave you the ability to manipulate other very
long strings of ones and zeroes. Even those few who actually
understood what a computer operating system was were apt to think of
it as a fantastically arcane engineering prodigy, like a breeder
reactor or a U-2 spy plane, and not something that could ever be (in
the parlance of high-tech) "productized." Yet now the company that
Gates and Allen founded is selling operating systems like Gillette
sells razor blades. New releases of operating systems are launched as
if they were Hollywood blockbusters, with celebrity endorsements, talk
show appearances, and world tours. The market for them is vast enough
that people worry about whether it has been monopolized by one
company. Even the least technically-minded people in our society now
have at least a hazy idea of what operating systems do; what is more,
they have strong opinions about their relative merits. It is commonly
understood, even by technically unsophisticated computer users, that
if you have a piece of software that works on your Macintosh, and you
move it over onto a Windows machine, it will not run. That this would,
in fact, be a laughable and idiotic mistake, like nailing horseshoes
to the tires of a Buick. A person who went into a coma before
Microsoft was founded, and woke up now, could pick up this morning's
New York Times and understand everything in it--almost:
Item: the richest man in the world made his fortune from-what?
Railways? Shipping? Oil? No, operating systems.
Item: the Department of Justice is tackling Microsoft's supposed OS
monopoly with legal tools that were invented to restrain the power of
Nineteenth-Century robber barons.
Item: a woman friend of mine recently told me that she'd broken off a
(hitherto) stimulating exchange of e-mail with a young man. At first
he had seemed like such an intelligent and interesting guy, she said,
but then "he started going all PC-versus-Mac on me."
What the hell is going on here? And does the operating system business
have a future, or only a past? Here is my view, which is entirely
subjective; but since I have spent a fair amount of time not only
using, but programming, Macintoshes, Windows machines, Linux boxes and
the BeOS, perhaps it is not so ill-informed as to be completely
worthless. This is a subjective essay, more review than research
paper, and so it might seem unfair or biased compared to the technical
reviews you can find in PC magazines. But ever since the Mac came out,
our operating systems have been based on metaphors, and anything with
metaphors in it is fair game as far as I'm concerned.
MGBs, TANKS, AND BATMOBILES Around the time that Jobs, Wozniak, Gates,
and Allen were dreaming up these unlikely schemes, I was a teenager
living in Ames, Iowa. One of my friends' dads had an old MGB sports
car rusting away in his garage. Sometimes he would actually manage to
get it running and then he would take us for a spin around the block,
with a memorable look of wild youthful exhiliration on his face; to
his worried passengers, he was a madman, stalling and backfiring
around Ames, Iowa and eating the dust of rusty Gremlins and Pintos,
but in his own mind he was Dustin Hoffman tooling across the Bay
Bridge with the wind in his hair. In retrospect, this was telling me
two things about people's relationship to technology. One was that
romance and image go a long way towards shaping their opinions. If you
doubt it (and if you have a lot of spare time on your hands) just ask
anyone who owns a Macintosh and who, on those grounds, imagines him-
or herself to be a member of an oppressed minority group. The other,
somewhat subtler point, was that interface is very important. Sure,
the MGB was a lousy car in almost every way that counted: balky,
unreliable, underpowered. But it was fun to drive. It was
responsive. Every pebble on the road was felt in the bones, every
nuance in the pavement transmitted instantly to the driver's hands. He
could listen to the engine and tell what was wrong with it. The
steering responded immediately to commands from his hands. To us
passengers it was a pointless exercise in going nowhere--about as
interesting as peering over someone's shoulder while he punches
numbers into a spreadsheet. But to the driver it was an
experience. For a short time he was extending his body and his senses
into a larger realm, and doing things that he couldn't do
unassisted. The analogy between cars and operating systems is not half
bad, and so let me run with it for a moment, as a way of giving an
executive summary of our situation today. Imagine a crossroads where
four competing auto dealerships are situated. One of them (Microsoft)
is much, much bigger than the others. It started out years ago selling
three-speed bicycles (MS-DOS); these were not perfect, but they
worked, and when they broke you could easily fix them. There was a
competing bicycle dealership next door (Apple) that one day began
selling motorized vehicles--expensive but attractively styled cars
with their innards hermetically sealed, so that how they worked was
something of a mystery. The big dealership responded by rushing a
moped upgrade kit (the original Windows) onto the market. This was a
Rube Goldberg contraption that, when bolted onto a three-speed
bicycle, enabled it to keep up, just barely, with Apple-cars. The
users had to wear goggles and were always picking bugs out of their
teeth while Apple owners sped along in hermetically sealed comfort,
sneering out the windows. But the Micro-mopeds were cheap, and easy to
fix compared with the Apple-cars, and their market share
waxed. Eventually the big dealership came out with a full-fledged car:
a colossal station wagon (Windows 95). It had all the aesthetic appeal
of a Soviet worker housing block, it leaked oil and blew gaskets, and
it was an enormous success. A little later, they also came out with a
hulking off-road vehicle intended for industrial users (Windows NT)
which was no more beautiful than the station wagon, and only a little
more reliable. Since then there has been a lot of noise and shouting,
but little has changed. The smaller dealership continues to sell sleek
Euro-styled sedans and to spend a lot of money on advertising
campaigns. They have had GOING OUT OF BUSINESS! signs taped up in
their windows for so long that they have gotten all yellow and
curly. The big one keeps making bigger and bigger station wagons and
ORVs. On the other side of the road are two competitors that have come
along more recently. One of them (Be, Inc.) is selling fully
operational Batmobiles (the BeOS). They are more beautiful and stylish
even than the Euro-sedans, better designed, more technologically
advanced, and at least as reliable as anything else on the market--and
yet cheaper than the others. With one exception, that is: Linux, which
is right next door, and which is not a business at all. It's a bunch
of RVs, yurts, tepees, and geodesic domes set up in a field and
organized by consensus. The people who live there are making
tanks. These are not old-fashioned, cast-iron Soviet tanks; these are
more like the M1 tanks of the U.S. Army, made of space-age materials
and jammed with sophisticated technology from one end to the
other. But they are better than Army tanks. They've been modified in
such a way that they never, ever break down, are light and
maneuverable enough to use on ordinary streets, and use no more fuel
than a subcompact car. These tanks are being cranked out, on the spot,
at a terrific pace, and a vast number of them are lined up along the
edge of the road with keys in the ignition. Anyone who wants can
simply climb into one and drive it away for free. Customers come to
this crossroads in throngs, day and night. Ninety percent of them go
straight to the biggest dealership and buy station wagons or off-road
vehicles. They do not even look at the other dealerships. Of the
remaining ten percent, most go and buy a sleek Euro-sedan, pausing
only to turn up their noses at the philistines going to buy the
station wagons and ORVs. If they even notice the people on the
opposite side of the road, selling the cheaper, technically superior
vehicles, these customers deride them cranks and half-wits. The
Batmobile outlet sells a few vehicles to the occasional car nut who
wants a second vehicle to go with his station wagon, but seems to
accept, at least for now, that it's a fringe player. The group giving
away the free tanks only stays alive because it is staffed by
volunteers, who are lined up at the edge of the street with bullhorns,
trying to draw customers' attention to this incredible situation. A
typical conversation goes something like this: Hacker with bullhorn:
"Save your money! Accept one of our free tanks! It is invulnerable,
and can drive across rocks and swamps at ninety miles an hour while
getting a hundred miles to the gallon!" Prospective station wagon
buyer: "I know what you say is true...but...er...I don't know how to
maintain a tank!" Bullhorn: "You don't know how to maintain a station
wagon either!" Buyer: "But this dealership has mechanics on staff. If
something goes wrong with my station wagon, I can take a day off work,
bring it here, and pay them to work on it while I sit in the waiting
room for hours, listening to elevator music." Bullhorn: "But if you
accept one of our free tanks we will send volunteers to your house to
fix it for free while you sleep!" Buyer: "Stay away from my house, you
freak!" Bullhorn: "But..." Buyer: "Can't you see that everyone is
buying station wagons?"
BIT-FLINGER
The connection between cars, and ways of interacting with computers,
wouldn't have occurred to me at the time I was being taken for rides
in that MGB. I had signed up to take a computer programming class at
Ames High School. After a few introductory lectures, we students were
granted admission into a tiny room containing a teletype, a telephone,
and an old-fashioned modem consisting of a metal box with a pair of
rubber cups on the top (note: many readers, making their way through
that last sentence, probably felt an initial pang of dread that this
essay was about to turn into a tedious, codgerly reminiscence about
how tough we had it back in the old days; rest assured that I am
actually positioning my pieces on the chessboard, as it were, in
preparation to make a point about truly hip and up-to-the minute
topics like Open Source Software). The teletype was exactly the same
sort of machine that had been used, for decades, to send and receive
telegrams. It was basically a loud typewriter that could only produce
UPPERCASE LETTERS. Mounted to one side of it was a smaller machine
with a long reel of paper tape on it, and a clear plastic hopper
underneath. In order to connect this device (which was not a computer
at all) to the Iowa State University mainframe across town, you would
pick up the phone, dial the computer's number, listen for strange
noises, and then slam the handset down into the rubber cups. If your
aim was true, one would wrap its neoprene lips around the earpiece and
the other around the mouthpiece, consummating a kind of informational
soixante-neuf. The teletype would shudder as it was possessed by
the spirit of the distant mainframe, and begin to hammer out cryptic
messages. Since computer time was a scarce resource, we used a sort of
batch processing technique. Before dialing the phone, we would turn on
the tape puncher (a subsidiary machine bolted to the side of the
teletype) and type in our programs. Each time we depressed a key, the
teletype would bash out a letter on the paper in front of us, so we
could read what we'd typed; but at the same time it would convert the
letter into a set of eight binary digits, or bits, and punch a
corresponding pattern of holes across the width of a paper tape. The
tiny disks of paper knocked out of the tape would flutter down into
the clear plastic hopper, which would slowly fill up what can only be
described as actual bits. On the last day of the school year, the
smartest kid in the class (not me) jumped out from behind his desk and
flung several quarts of these bits over the head of our teacher, like
confetti, as a sort of semi-affectionate practical joke. The image of
this man sitting there, gripped in the opening stages of an atavistic
fight-or-flight reaction, with millions of bits (megabytes) sifting
down out of his hair and into his nostrils and mouth, his face
gradually turning purple as he built up to an explosion, is the single
most memorable scene from my formal education. Anyway, it will have
been obvious that my interaction with the computer was of an extremely
formal nature, being sharply divided up into different phases, viz.:
(1) sitting at home with paper and pencil, miles and miles from any
computer, I would think very, very hard about what I wanted the
computer to do, and translate my intentions into a computer
language--a series of alphanumeric symbols on a page. (2) I would
carry this across a sort of informational cordon sanitaire (three
miles of snowdrifts) to school and type those letters into a
machine--not a computer--which would convert the symbols into binary
numbers and record them visibly on a tape. (3) Then, through the
rubber-cup modem, I would cause those numbers to be sent to the
university mainframe, which would (4) do arithmetic on them and send
different numbers back to the teletype. (5) The teletype would convert
these numbers back into letters and hammer them out on a page and (6)
I, watching, would construe the letters as meaningful symbols. The
division of responsibilities implied by all of this is admirably
clean: computers do arithmetic on bits of information. Humans construe
the bits as meaningful symbols. But this distinction is now being
blurred, or at least complicated, by the advent of modern operating
systems that use, and frequently abuse, the power of metaphor to make
computers accessible to a larger audience. Along the way--possibly
because of those metaphors, which make an operating system a sort of
work of art--people start to get emotional, and grow attached to
pieces of software in the way that my friend's dad did to his
MGB. People who have only interacted with computers through graphical
user interfaces like the MacOS or Windows--which is to say, almost
everyone who has ever used a computer--may have been startled, or at
least bemused, to hear about the telegraph machine that I used to
communicate with a computer in 1973. But there was, and is, a good
reason for using this particular kind of technology. Human beings have
various ways of communicating to each other, such as music, art,
dance, and facial expressions, but some of these are more amenable
than others to being expressed as strings of symbols. Written language
is the easiest of all, because, of course, it consists of strings of
symbols to begin with. If the symbols happen to belong to a phonetic
alphabet (as opposed to, say, ideograms), converting them into bits is
a trivial procedure, and one that was nailed, technologically, in the
early nineteenth century, with the introduction of Morse code and
other forms of telegraphy. We had a human/computer interface a hundred
years before we had computers. When computers came into being around
the time of the Second World War, humans, quite naturally,
communicated with them by simply grafting them on to the
already-existing technologies for translating letters into bits and
vice versa: teletypes and punch card machines. These embodied two
fundamentally different approaches to computing. When you were using
cards, you'd punch a whole stack of them and run them through the
reader all at once, which was called batch processing. You could also
do batch processing with a teletype, as I have already described, by
using the paper tape reader, and we were certainly encouraged to use
this approach when I was in high school. But--though efforts were made
to keep us unaware of this--the teletype could do something that the
card reader could not. On the teletype, once the modem link was
established, you could just type in a line and hit the return key. The
teletype would send that line to the computer, which might or might
not respond with some lines of its own, which the teletype would
hammer out--producing, over time, a transcript of your exchange with
the machine. This way of doing it did not even have a name at the
time, but when, much later, an alternative became available, it was
retroactively dubbed the Command Line Interface. When I moved on to
college, I did my computing in large, stifling rooms where scores of
students would sit in front of slightly updated versions of the same
machines and write computer programs: these used dot-matrix printing
mechanisms, but were (from the computer's point of view) identical to
the old teletypes. By that point, computers were better at
time-sharing--that is, mainframes were still mainframes, but they were
better at communicating with a large number of terminals at
once. Consequently, it was no longer necessary to use batch
processing. Card readers were shoved out into hallways and boiler
rooms, and batch processing became a nerds-only kind of thing, and
consequently took on a certain eldritch flavor among those of us who
even knew it existed. We were all off the Batch, and on the Command
Line, interface now--my very first shift in operating system
paradigms, if only I'd known it. A huge stack of accordion-fold paper
sat on the floor underneath each one of these glorified teletypes, and
miles of paper shuddered through their platens. Almost all of this
paper was thrown away or recycled without ever having been touched by
ink--an ecological atrocity so glaring that those machines soon
replaced by video terminals--so-called "glass teletypes"--which were
quieter and didn't waste paper. Again, though, from the computer's
point of view these were indistinguishable from World War II-era
teletype machines. In effect we still used Victorian technology to
communicate with computers until about 1984, when the Macintosh was
introduced with its Graphical User Interface. Even after that, the
Command Line continued to exist as an underlying stratum--a sort of
brainstem reflex--of many modern computer systems all through the
heyday of Graphical User Interfaces, or GUIs as I will call them from
now on.
GUIs
Now the first job that any coder needs to do when writing a new piece
of software is to figure out how to take the information that is being
worked with (in a graphics program, an image; in a spreadsheet, a grid
of numbers) and turn it into a linear string of bytes. These strings
of bytes are commonly called files or (somewhat more hiply)
streams. They are to telegrams what modern humans are to Cro-Magnon
man, which is to say the same thing under a different name. All that
you see on your computer screen--your Tomb Raider, your digitized
voice mail messages, faxes, and word processing documents written in
thirty-seven different typefaces--is still, from the computer's point
of view, just like telegrams, except much longer, and demanding of
more arithmetic. The quickest way to get a taste of this is to fire up
your web browser, visit a site, and then select the View/Document
Source menu item. You will get a bunch of computer code that looks
something like this:
Welcome to the Avon Books Homepage
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, once 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
submit@bugs.debian.org. My problem was promptly assigned a bug report
number (#6518) and a severity level (the available choices being
critical, grave, important, normal, fixed, and wishlist) and forwarded
to mailing lists where Debian people hang out. Within twenty-four
hours I had received five e-mails telling me how to fix the problem:
two from North America, two from Europe, and one from Australia. All
of these e-mails gave me the same suggestion, which worked, and made
my problem go away. But at the same time, a transcript of this
exchange was posted to Debian's bug database, so that if other users
had the same problem later, they would be able to search through and
find the solution without having to enter a new, redundant bug
report. Contrast this with the experience that I had when I tried to
install Windows NT 4.0 on the very same machine about ten months
later, in late 1997. The installation program simply stopped in the
middle with no error messages. I went to the Microsoft Support website
and tried to perform a search for existing help documents that would
address my problem. The search engine was completely nonfunctional; it
did nothing at all. It did not even give me a message telling me that
it was not working. Eventually I
Decided that my motherboard must be
at fault; it was of a slightly unusual make and model, and NT did not
support as many different motherboards as Linux. I am always looking
for excuses, no matter how feeble, to buy new hardware, so I bought a
new motherboard that was Windows NT logo-compatible, meaning that the
Windows NT logo was printed right on the box. I installed this into my
computer and got Linux running right away, then attempted to install
Windows NT again. Again, the installation died without any error
message or explanation. By this time a couple of weeks had gone by and
I thought that perhaps the search engine on the Microsoft Support
website might be up and running. I gave that a try but it still didn't
work. So I created a new Microsoft support account, then logged on to
submit the incident. I supplied my product ID number when asked, and
then began to follow the instructions on a series of help screens. In
other words, I was submitting a bug report just as with the Debian bug
tracking system. It's just that the interface was slicker--I was
typing my complaint into little text-editing boxes on Web forms, doing
it all through the GUI, whereas with Debian you send in an e-mail
telegram. I knew that when I was finished submitting the bug report,
it would become proprietary Microsoft information, and other users
wouldn't be able to see it. Many Linux users would refuse to
participate in such a scheme on ethical grounds, but I was willing to
give it a shot as an experiment. In the end, though I was never able
to submit my bug report, because the series of linked web pages that I
was filling out eventually led me to a completely blank page: a dead
end. So I went back and clicked on the buttons for "phone support" and
eventually was given a Microsoft telephone number. When I dialed this
number I got a series of piercing beeps and a recorded message from
the phone company saying "We're sorry, your call cannot be completed
as dialed." I tried the search page again--it was still completely
nonfunctional. Then I tried PPI (Pay Per Incident) again. This led me
through another series of Web pages until I dead-ended at one reading:
"Notice-there is no Web page matching your request." I tried it again,
and eventually got to a Pay Per Incident screen reading: "OUT OF
INCIDENTS. There are no unused incidents left in your account. If you
would like to purchase a support incident, click OK-you will then be
able to prepay for an incident...." The cost per incident was $95. The
experiment was beginning to seem rather expensive, so I gave up on the
PPI approach and decided to have a go at the FAQs posted on
Microsoft's website. None of the available FAQs had anything to do
with my problem except for one entitled "I am having some problems
installing NT" which appeared to have been written by flacks, not
engineers. So I gave up and still, to this day, have never gotten
Windows NT installed on that particular machine. For me, the path of
least resistance was simply to use Debian Linux. In the world of open
source software, bug reports are useful information. Making them
public is a service to other users, and improves the OS. Making them
public systematically is so important that highly intelligent people
voluntarily put time and money into running bug databases. In the
commercial OS world, however, reporting a bug is a privilege that you
have to pay lots of money for. But if you pay for it, it follows that
the bug report must be kept confidential--otherwise anyone could get
the benefit of your ninety-five bucks! And yet nothing prevents NT
users from setting up their own public bug database. This is, in other
words, another feature of the OS market that simply makes no sense
unless you view it in the context of culture. What Microsoft is
selling through Pay Per Incident isn't technical support so much as
the continued illusion that its customers are engaging in some kind of
rational business transaction. It is a sort of routine maintenance fee
for the upkeep of the fantasy. If people really wanted a solid OS they
would use Linux, and if they really wanted tech support they would
find a way to get it; Microsoft's customers want something else. As of
this writing (Jan. 1999), something like 32,000 bugs have been
reported to the Debian Linux bug database. Almost all of them have
been fixed a long time ago. There are twelve "critical" bugs still
outstanding, of which the oldest was posted 79 days ago. There are 20
outstanding "grave" bugs of which the oldest is 1166 days old. There
are 48 "important" bugs and hundreds of "normal" and less important
ones. Likewise, BeOS (which I'll get to in a minute) has its own bug
database (http://www.be.com/developers/bugs/index.html) with its own
classification system, including such categories as "Not a Bug,"
"Acknowledged Feature," and "Will Not Fix." Some of the "bugs" here
are nothing more than Be hackers blowing off steam, and are classified
as "Input Acknowledged." For example, I found one that was posted on
December 30th, 1998. It's in the middle of a long list of bugs, wedged
between one entitled "Mouse working in very strange fashion" and
another called "Change of BView frame does not affect, if BView not
attached to a BWindow." This one is entitled R4: BeOS missing
megalomaniacal figurehead to harness and focus developer rage and it
goes like this:
----------------------------
Be Status: Input Acknowledged
BeOS Version: R3.2
Component: unknown
Full Description:
The BeOS needs a megalomaniacal egomaniac sitting on its throne to
give it a human character which everyone loves to hate. Without this,
the BeOS will languish in the impersonifiable realm of OSs that people
can never quite get a handle on. You can judge the success of an OS
not by the quality of its features, but by how infamous and disliked
the leaders behind them are. I believe this is a side-effect of
developer comraderie under miserable conditions. After all, misery
loves company. I believe that making the BeOS less conceptually
accessible and far less reliable will require developers to band
together, thus developing the kind of community where strangers talk
to one-another, kind of like at a grocery store before a huge
snowstorm. Following this same program, it will likely be necessary to
move the BeOS headquarters to a far-less-comfortable climate. General
environmental discomfort will breed this attitude within and there
truly is no greater recipe for success. I would suggest Seattle, but I
think it's already taken. You might try Washington, DC, but definitely
not somewhere like San Diego or Tucson.
----------------------------
Unfortunately, the Be bug reporting system strips off the names of the
people who report the bugs (to protect them from retribution!?) and so
I don't know who wrote this. So it would appear that I'm in the middle
of crowing about the technical and moral superiority of Debian
Linux. But as almost always happens in the OS world, it's more
complicated than that. I have Windows NT running on another machine,
and the other day (Jan. 1999), when I had a problem with it, I decided
to have another go at Microsoft Support. This time the search engine
actually worked (though in order to reach it I had to identify myself
as "advanced"). And instead of coughing up some useless FAQ, it
located about two hundred documents (I was using very vague search
criteria) that were obviously bug reports--though they were called
something else. Microsoft, in other words, has got a system up and
running that is functionally equivalent to Debian's bug database. It
looks and feels different, of course, but it contains technical
nitty-gritty and makes no bones about the existence of errors. As I've
explained, selling OSes for money is a basically untenable position,
and the only way Apple and Microsoft can get away with it is by
pursuing technological advancements as aggressively as they can, and
by getting people to believe in, and to pay for, a particular image:
in the case of Apple, that of the creative free thinker, and in the
case of Microsoft, that of the respectable techno-bourgeois. Just like
Disney, they're making money from selling an interface, a magic
mirror. It has to be polished and seamless or else the whole illusion
is ruined and the business plan vanishes like a mirage. Accordingly,
it was the case until recently that the people who wrote manuals and
created customer support websites for commercial OSes seemed to have
been barred, by their employers' legal or PR departments, from
admitting, even obliquely, that the software might contain bugs or
that the interface might be suffering from the blinking twelve
problem. They couldn't address users' actual difficulties. The manuals
and websites were therefore useless, and caused even technically
self-assured users to wonder whether they were going subtly
insane. When Apple engages in this sort of corporate behavior, one
wants to believe that they are really trying their best. We all want
to give Apple the benefit of the doubt, because mean old Bill Gates
kicked the crap out of them, and because they have good PR. But when
Microsoft does it, one almost cannot help becoming a paranoid
conspiracist. Obviously they are hiding something from us! And yet
they are so powerful! They are trying to drive us crazy! This approach
to dealing with one's customers was straight out of the Central
European totalitarianism of the mid-Twentieth Century. The adjectives
"Kafkaesque" and "Orwellian" come to mind. It couldn't last, any more
than the Berlin Wall could, and so now Microsoft has a publicly
available bug database. It's called something else, and it takes a
while to find it, but it's there. They have, in other words, adapted
to the two-tiered Eloi/Morlock structure of technological society. If
you're an Eloi you install Windows, follow the instructions, hope for
the best, and dumbly suffer when it breaks. If you're a Morlock you go
to the website, tell it that you are "advanced," find the bug
database, and get the truth straight from some anonymous Microsoft
engineer. But once Microsoft has taken this step, it raises the
question, once again, of whether there is any point to being in the OS
business at all. Customers might be willing to pay $95 to report a
problem to Microsoft if, in return, they get some advice that no other
user is getting. This has the useful side effect of keeping the users
alienated from one another, which helps maintain the illusion that
bugs are rare aberrations. But once the results of those bug reports
become openly available on the Microsoft website, everything
changes. No one is going to cough up $95 to report a problem when
chances are good that some other sucker will do it first, and that
instructions on how to fix the bug will then show up, for free, on a
public website. And as the size of the bug database grows, it
eventually becomes an open admission, on Microsoft's part, that their
OSes have just as many bugs as their competitors'. There is no shame
in that; as I mentioned, Debian's bug database has logged 32,000
reports so far. But it puts Microsoft on an equal footing with the
others and makes it a lot harder for their customers--who want to
believe--to believe.
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.
Copyright 1999 by Neal Stephenson
Copyright © 1999 The Hearst Corporation