"In the Beginning
was the Command Line"
By Neal Stephenson
(1999)
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 exhilaration 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, one he'd thought of the idea. The hard part was
selling it--reassuring customers that they were actually getting
something in return for their money.
Anyone who has ever bought a piece of software in a store has had
the curiously deflating experience of taking the bright
shrink-wrapped box home, tearing it open, finding that it's 95
percent air, throwing away all the little cards, party favors, and
bits of trash, and loading the disk into the computer. The end
result (after you've lost the disk) is nothing except some images on
a computer screen, and some capabilities that weren't there before.
Sometimes you don't even have that--you have a string of error
messages instead. But your money is definitely gone. Now we are
almost accustomed to this, but twenty years ago it was a very dicey
business proposition. Bill Gates made it work anyway. He didn't make
it work by selling the best software or offering the cheapest price.
Instead he somehow got people to believe that they were receiving
something in exchange for their money.
The streets of every city in the world are filled with those
hulking, rattling station wagons. Anyone who doesn't own one feels a
little weird, and wonders, in spite of himself, whether it might not
be time to cease resistance and buy one; anyone who does, feels
confident that he has acquired some meaningful possession, even on
those days when the vehicle is up on a lift in an auto repair shop.
All of this is perfectly congruent with membership in the
bourgeoisie, which is as much a mental, as a material state. And it
explains why Microsoft is regularly attacked, on the Net, from both
sides. People who are inclined to feel poor and oppressed construe
everything Microsoft does as some sinister Orwellian plot. People
who like to think of themselves as intelligent and informed
technology users are driven crazy by the clunkiness of Windows.
Nothing is more annoying to sophisticated people to see someone who
is rich enough to know better being tacky--unless it is to realize,
a moment later, that they probably know they are tacky and they
simply don't care and they are going to go on being tacky, and rich,
and happy, forever. Microsoft therefore bears the same relationship
to the Silicon Valley elite as the Beverly Hillbillies did to their
fussy banker, Mr. Drysdale--who is irritated not so much by the fact
that the Clampetts moved to his neighborhood as by the knowledge
that, when Jethro is seventy years old, he's still going to be
talking like a hillbilly and wearing bib overalls, and he's still
going to be a lot richer than Mr. Drysdale.
Even the hardware that Windows ran on, when compared to the machines
put out by Apple, looked like white-trash stuff, and still mostly
does. The reason was that Apple was and is a hardware company, while
Microsoft was and is a software company. Apple therefore had a
monopoly on hardware that could run MacOS, whereas
Windows-compatible hardware came out of a free market. The free
market seems to have decided that people will not pay for
cool-looking computers; PC hardware makers who hire designers to
make their stuff look distinctive get their clocks cleaned by
Taiwanese clone makers punching out boxes that look as if they
belong on cinderblocks in front of someone's trailer. But Apple
could make their hardware as pretty as they wanted to and simply
pass the higher prices on to their besotted consumers, like me. Only
last week (I am writing this sentence in early Jan. 1999) the
technology sections of all the newspapers were filled with adulatory
press coverage of how Apple had released the iMac in several
happenin' new colors like Blueberry and Tangerine.
Apple has always insisted on having a hardware monopoly, except for
a brief period in the mid-1990s when they allowed clone-makers to
compete with them, before subsequently putting them out of business.
Macintosh hardware was, consequently, expensive. You didn't open it
up and fool around with it because doing so would void the warranty.
In fact the first Mac was specifically designed to be difficult to
open--you needed a kit of exotic tools, which you could buy through
little ads that began to appear in the back pages of magazines a few
months after the Mac came out on the market. These ads always had a
certain disreputable air about them, like pitches for lock-picking
tools in the backs of lurid detective magazines.
This monopolistic policy can be explained in at least three
different ways.
THE CHARITABLE EXPLANATION is that the hardware monopoly policy
reflected a drive on Apple's part to provide a seamless, unified
blending of hardware, operating system, and software. There is
something to this. It is hard enough to make an OS that works well
on one specific piece of hardware, designed and tested by engineers
who work down the hallway from you, in the same company. Making an
OS to work on arbitrary pieces of hardware, cranked out by rabidly
entrepeneurial clonemakers on the other side of the International
Date Line, is very difficult, and accounts for much of the troubles
people have using Windows.
THE FINANCIAL EXPLANATION is that Apple, unlike Microsoft, is and
always has been a hardware company. It simply depends on revenue
from selling hardware, and cannot exist without it.
THE NOT-SO-CHARITABLE EXPLANATION has to do with Apple's corporate
culture, which is rooted in Bay Area Baby Boomdom.
Now, since I'm going to talk for a moment about culture, full
disclosure is probably in order, to protect myself against
allegations of conflict of interest and ethical turpitude: (1)
Geographically I am a Seattleite, of a Saturnine temperament, and
inclined to take a sour view of the Dionysian Bay Area, just as they
tend to be annoyed and appalled by us. (2) Chronologically I am a
post-Baby Boomer. I feel that way, at least, because I never
experienced the fun and exciting parts of the whole Boomer
scene--just spent a lot of time dutifully chuckling at Boomers'
maddeningly pointless anecdotes about just how stoned they got on
various occasions, and politely fielding their assertions about how
great their music was. But even from this remove it was possible to
glean certain patterns, and one that recurred as regularly as an
urban legend was the one about how someone would move into a commune
populated by sandal-wearing, peace-sign flashing flower children,
and eventually discover that, underneath this facade, the guys who
ran it were actually control freaks; and that, as living in a
commune, where much lip service was paid to ideals of peace, love
and harmony, had deprived them of normal, socially approved outlets
for their control-freakdom, it tended to come out in other,
invariably more sinister, ways.
Applying this to the case of Apple Computer will be left as an
exercise for the reader, and not a very difficult exercise.
It is a bit unsettling, at first, to think of Apple as a control
freak, because it is completely at odds with their corporate image.
Weren't these the guys who aired the famous Super Bowl ads showing
suited, blindfolded executives marching like lemmings off a cliff?
Isn't this the company that even now runs ads picturing the Dalai
Lama (except in Hong Kong) and Einstein and other offbeat rebels?
It is indeed the same company, and the fact that they have been able
to plant this image of themselves as creative and rebellious
free-thinkers in the minds of so many intelligent and media-hardened
skeptics really gives one pause. It is testimony to the insidious
power of expensive slick ad campaigns and, perhaps, to a certain
amount of wishful thinking in the minds of people who fall for them.
It also raises the question of why Microsoft is so bad at PR, when
the history of Apple demonstrates that, by writing large checks to
good ad agencies, you can plant a corporate image in the minds of
intelligent people that is completely at odds with reality. (The
answer, for people who don't like Damoclean questions, is that since
Microsoft has won the hearts and minds of the silent majority--the
bourgeoisie--they don't give a damn about having a slick image, any
more then Dick Nixon did. "I want to believe,"--the mantra that Fox
Mulder has pinned to his office wall in The X-Files--applies in
different ways to these two companies; Mac partisans want to believe
in the image of Apple purveyed in those ads, and in the notion that
Macs are somehow fundamentally different from other computers, while
Windows people want to believe that they are getting something for
their money, engaging in a respectable business transaction).
In any event, as of 1987, both MacOS and Windows were out on the
market, running on hardware platforms that were radically different
from each other--not only in the sense that MacOS used Motorola CPU
chips while Windows used Intel, but in the sense--then overlooked,
but in the long run, vastly more significant--that the Apple
hardware business was a rigid monopoly and the Windows side was a
churning free-for-all.
But the full ramifications of this did not become clear until very
recently--in fact, they are still unfolding, in remarkably strange
ways, as I'll explain when we get to Linux. The upshot is that
millions of people got accustomed to using GUIs in one form or
another. By doing so, they made Apple/Microsoft a lot of money. The
fortunes of many people have become bound up with the ability of
these companies to continue selling products whose salability is
very much open to question.
HONEY-POT, TAR-PIT, WHATEVER
When Gates and Allen invented the idea of selling software, they ran
into criticism from both hackers and sober-sided businesspeople.
Hackers understood that software was just information, and objected
to the idea of selling it. These objections were partly moral. The
hackers were coming out of the scientific and academic world where
it is imperative to make the results of one's work freely available
to the public. They were also partly practical; how can you sell
something that can be easily copied? Businesspeople, who are polar
opposites of hackers in so many ways, had objections of their own.
Accustomed to selling toasters and insurance policies, they
naturally had a difficult time understanding how a long collection
of ones and zeroes could constitute a salable product.
Obviously Microsoft prevailed over these objections, and so did
Apple. But the objections still exist. The most hackerish of all the
hackers, the Ur-hacker as it were, was and is Richard Stallman, who
became so annoyed with the evil practice of selling software that,
in 1984 (the same year that the Macintosh went on sale) he went off
and founded something called the Free Software Foundation, which
commenced work on something called GNU. Gnu is an acronym for Gnu's
Not Unix, but this is a joke in more ways than one, because GNU most
certainly IS Unix,. Because of trademark concerns ("Unix" is
trademarked by AT&T) they simply could not claim that it was Unix,
and so, just to be extra safe, they claimed that it wasn't.
Notwithstanding the incomparable talent and drive possessed by Mr.
Stallman and other GNU adherents, their project to build a free Unix
to compete against Microsoft and Apple's OSes was a little bit like
trying to dig a subway system with a teaspoon. Until, that is, the
advent of Linux, which I will get to later.
But the basic idea of re-creating an operating system from scratch
was perfectly sound and completely doable. It has been done many
times. It is inherent in the very nature of operating systems.
Operating systems are not strictly necessary. There is no reason why
a sufficiently dedicated coder could not start from nothing with
every project and write fresh code to handle such basic, low-level
operations as controlling the read/write heads on the disk drives
and lighting up pixels on the screen. The very first computers had
to be programmed in this way. But since nearly every program needs
to carry out those same basic operations, this approach would lead
to vast duplication of effort.
Nothing is more disagreeable to the hacker than duplication of
effort. The first and most important mental habit that people
develop when they learn how to write computer programs is to
generalize, generalize, generalize. To make their code as modular
and flexible as possible, breaking large problems down into small
subroutines that can be used over and over again in different
contexts. Consequently, the development of operating systems,
despite being technically unnecessary, was inevitable. Because at
its heart, an operating system is nothing more than a library
containing the most commonly used code, written once (and hopefully
written well) and then made available to every coder who needs it.
So a proprietary, closed, secret operating system is a contradiction
in terms. It goes against the whole point of having an operating
system. And it is impossible to keep them secret anyway. The source
code--the original lines of text written by the programmers--can be
kept secret. But an OS as a whole is a collection of small
subroutines that do very specific, very clearly defined jobs.
Exactly what those subroutines do has to be made public, quite
explicitly and exactly, or else the OS is completely useless to
programmers; they can't make use of those subroutines if they don't
have a complete and perfect understanding of what the subroutines
do.
The only thing that isn't made public is exactly how the subroutines
do what they do. But once you know what a subroutine does, it's
generally quite easy (if you are a hacker) to write one of your own
that does exactly the same thing. It might take a while, and it is
tedious and unrewarding, but in most cases it's not really hard.
What's hard, in hacking as in fiction, is not writing; it's deciding
what to write. And the vendors of commercial OSes have already
decided, and published their decisions.
This has been generally understood for a long time. MS-DOS was
duplicated, functionally, by a rival product, written from scratch,
called ProDOS, that did all of the same things in pretty much the
same way. In other words, another company was able to write code
that did all of the same things as MS-DOS and sell it at a profit.
If you are using the Linux OS, you can get a free program called
WINE which is a windows emulator; that is, you can open up a window
on your desktop that runs windows programs. It means that a
completely functional Windows OS has been recreated inside of Unix,
like a ship in a bottle. And Unix itself, which is vastly more
sophisticated than MS-DOS, has been built up from scratch many times
over. Versions of it are sold by Sun, Hewlett-Packard, AT&T, Silicon
Graphics, IBM, and others.
People have, in other words, been re-writing basic OS code for so
long that all of the technology that constituted an "operating
system" in the traditional (pre-GUI) sense of that phrase is now so
cheap and common that it's literally free. Not only could Gates and
Allen not sell MS-DOS today, they could not even give it away,
because much more powerful OSes are already being given away. Even
the original Windows (which was the only windows until 1995) has
become worthless, in that there is no point in owning something that
can be emulated inside of Linux--which is, itself, free.
In this way the OS business is very different from, say, the car
business. Even an old rundown car has some value. You can use it for
making runs to the dump, or strip it for parts. It is the fate of
manufactured goods to slowly and gently depreciate as they get old
and have to compete against more modern products.
But it is the fate of operating systems to become free.
Microsoft is a great software applications company.
Applications--such as Microsoft Word--are an area where innovation
brings real, direct, tangible benefits to users. The innovations
might be new technology straight from the research department, or
they might be in the category of bells and whistles, but in any
event they are frequently useful and they seem to make users happy.
And Microsoft is in the process of becoming a great research
company. But Microsoft is not such a great operating systems
company. And this is not necessarily because their operating systems
are all that bad from a purely technological standpoint. Microsoft's
OSes do have their problems, sure, but they are vastly better than
they used to be, and they are adequate for most people.
Why, then, do I say that Microsoft is not such a great operating
systems company? Because the very nature of operating systems is
such that it is senseless for them to be developed and owned by a
specific company. It's a thankless job to begin with. Applications
create possibilities for millions of credulous users, whereas OSes
impose limitations on thousands of grumpy coders, and so OS-makers
will forever be on the shit-list of anyone who counts for anything
in the high-tech world. Applications get used by people whose big
problem is understanding all of their features, whereas OSes get
hacked by coders who are annoyed by their limitations. The OS
business has been good to Microsoft only insofar as it has given
them the money they needed to launch a really good applications
software business and to hire a lot of smart researchers. Now it
really ought to be jettisoned, like a spent booster stage from a
rocket. The big question is whether Microsoft is capable of doing
this. Or is it addicted to OS sales in the same way as Apple is to
selling hardware?
Keep in mind that Apple's ability to monopolize its own hardware
supply was once cited, by learned observers, as a great advantage
over Microsoft. At the time, it seemed to place them in a much
stronger position. In the end, it nearly killed them, and may kill
them yet. The problem, for Apple, was that most of the world's
computer users ended up owning cheaper hardware. But cheap hardware
couldn't run MacOS, and so these people switched to Windows.
Replace "hardware" with "operating systems," and "Apple" with
"Microsoft" and you can see the same thing about to happen all over
again. Microsoft dominates the OS market, which makes them money and
seems like a great idea for now. But cheaper and better OSes are
available, and they are growingly popular in parts of the world that
are not so saturated with computers as the US. Ten years from now,
most of the world's computer users may end up owning these cheaper
OSes. But these OSes do not, for the time being, run any Microsoft
applications, and so these people will use something else.
To put it more directly: every time someone decides to use a
non-Microsoft OS, Microsoft's OS division, obviously, loses a
customer. But, as things stand now, Microsoft's applications
division loses a customer too. This is not such a big deal as long
as almost everyone uses Microsoft OSes. But as soon as Windows'
market share begins to slip, the math starts to look pretty dismal
for the people in Redmond.
This argument could be countered by saying that Microsoft could
simply re-compile its applications to run under other OSes. But this
strategy goes against most normal corporate instincts. Again the
case of Apple is instructive. When things started to go south for
Apple, they should have ported their OS to cheap PC hardware. But
they didn't. Instead, they tried to make the most of their brilliant
hardware, adding new features and expanding the product line. But
this only had the effect of making their OS more dependent on these
special hardware features, which made it worse for them in the end.
Likewise, when Microsoft's position in the OS world is threatened,
their corporate instincts will tell them to pile more new features
into their operating systems, and then re-jigger their software
applications to exploit those special features. But this will only
have the effect of making their applications dependent on an OS with
declining market share, and make it worse for them in the end.
The operating system market is a death-trap, a tar-pit, a slough of
despond. There are only two reasons to invest in Apple and
Microsoft. (1) each of these companies is in what we would call a
co-dependency relationship with their customers. The customers Want
To Believe, and Apple and Microsoft know how to give them what they
want. (2) each company works very hard to add new features to their
OSes, which works to secure customer loyalty, at least for a little
while.
Accordingly, most of the remainder of this essay will be about those
two topics.
THE TECHNOSPHERE
Unix is the only OS remaining whose GUI (a vast suite of code called
the X Windows System) is separate from the OS in the old sense of
the phrase. This is to say that you can run Unix in pure
command-line mode if you want to, with no windows, icons, mouses,
etc. whatsoever, and it will still be Unix and capable of doing
everything Unix is supposed to do. But the other OSes: MacOS, the
Windows family, and BeOS, have their GUIs tangled up with the
old-fashioned OS functions to the extent that they have to run in
GUI mode, or else they are not really running. So it's no longer
really possible to think of GUIs as being distinct from the OS;
they're now an inextricable part of the OSes that they belong
to--and they are by far the largest part, and by far the most
expensive and difficult part to create.
There are only two ways to sell a product: price and features. When
OSes are free, OS companies cannot compete on price, and so they
compete on features. This means that they are always trying to outdo
each other writing code that, until recently, was not considered to
be part of an OS at all: stuff like GUIs. This explains a lot about
how these companies behave.
It explains why Microsoft added a browser to their OS, for example.
It is easy to get free browsers, just as to get free OSes. If
browsers are free, and OSes are free, it would seem that there is no
way to make money from browsers or OSes. But if you can integrate a
browser into the OS and thereby imbue both of them with new
features, you have a salable product.
Setting aside, for the moment, the fact that this makes government
anti-trust lawyers really mad, this strategy makes sense. At least,
it makes sense if you assume (as Microsoft's management appears to)
that the OS has to be protected at all costs. The real question is
whether every new technological trend that comes down the pike ought
to be used as a crutch to maintain the OS's dominant position.
Confronted with the Web phenomenon, Microsoft had to develop a
really good web browser, and they did. But then they had a choice:
they could have made that browser work on many different OSes, which
would give Microsoft a strong position in the Internet world no
matter what happened to their OS market share. Or they could make
the browser one with the OS, gambling that this would make the OS
look so modern and sexy that it would help to preserve their
dominance in that market. The problem is that when Microsoft's OS
position begins to erode (and since it is currently at something
like ninety percent, it can't go anywhere but down) it will drag
everything else down with it.
In your high school geology class you probably were taught that all
life on earth exists in a paper-thin shell called the biosphere,
which is trapped between thousands of miles of dead rock underfoot,
and cold dead radioactive empty space above. Companies that sell
OSes exist in a sort of technosphere. Underneath is technology that
has already become free. Above is technology that has yet to be
developed, or that is too crazy and speculative to be productized
just yet. Like the Earth's biosphere, the technosphere is very thin
compared to what is above and what is below.
But it moves a lot faster. In various parts of our world, it is
possible to go and visit rich fossil beds where skeleton lies piled
upon skeleton, recent ones on top and more ancient ones below. In
theory they go all the way back to the first single-celled
organisms. And if you use your imagination a bit, you can understand
that, if you hang around long enough, you'll become fossilized there
too, and in time some more advanced organism will become fossilized
on top of you.
The fossil record--the La Brea Tar Pit--of software technology is
the Internet. Anything that shows up there is free for the taking
(possibly illegal, but free). Executives at companies like Microsoft
must get used to the experience--unthinkable in other industries--of
throwing millions of dollars into the development of new
technologies, such as Web browsers, and then seeing the same or
equivalent software show up on the Internet two years, or a year, or
even just a few months, later.
By continuing to develop new technologies and add features onto
their products they can keep one step ahead of the fossilization
process, but on certain days they must feel like mammoths caught at
La Brea, using all their energies to pull their feet, over and over
again, out of the sucking hot tar that wants to cover and envelop
them.
Survival in this biosphere demands sharp tusks and heavy, stomping
feet at one end of the organization, and Microsoft famously has
those. But trampling the other mammoths into the tar can only keep
you alive for so long. The danger is that in their obsession with
staying out of the fossil beds, these companies will forget about
what lies above the biosphere: the realm of new technology. In other
words, they must hang onto their primitive weapons and crude
competitive instincts, but also evolve powerful brains. This appears
to be what Microsoft is doing with its research division, which has
been hiring smart people right and left (Here I should mention that
although I know, and socialize with, several people in that
company's research division, we never talk about business issues and
I have little to no idea what the hell they are up to. I have
learned much more about Microsoft by using the Linux operating
system than I ever would have done by using Windows).
Never mind how Microsoft used to make money; today, it is making its
money on a kind of temporal arbitrage. "Arbitrage," in the usual
sense, means to make money by taking advantage of differences in the
price of something between different markets. It is spatial, in
other words, and hinges on the arbitrageur knowing what is going on
simultaneously in different places. Microsoft is making money by
taking advantage of differences in the price of technology in
different times. Temporal arbitrage, if I may coin a phrase, hinges
on the arbitrageur knowing what technologies people will pay money
for next year, and how soon afterwards those same technologies will
become free. What spatial and temporal arbitrage have in common is
that both hinge on the arbitrageur's being extremely well-informed;
one about price gradients across space at a given time, and the
other about price gradients over time in a given place.
So Apple/Microsoft shower new features upon their users almost
daily, in the hopes that a steady stream of genuine technical
innovations, combined with the "I want to believe" phenomenon, will
prevent their customers from looking across the road towards the
cheaper and better OSes that are available to them. The question is
whether this makes sense in the long run. If Microsoft is addicted
to OSes as Apple is to hardware, then they will bet the whole farm
on their OSes, and tie all of their new applications and
technologies to them. Their continued survival will then depend on
these two things: adding more features to their OSes so that
customers will not switch to the cheaper alternatives, and
maintaining the image that, in some mysterious way, gives those
customers the feeling that they are getting something for their
money.
The latter is a truly strange and interesting cultural phenomenon.
THE INTERFACE CULTURE
A few years ago I walked into a grocery store somewhere and was
presented with the following tableau vivant: near the entrance a
young couple were standing in front of a large cosmetics display.
The man was stolidly holding a shopping basket between his hands
while his mate raked blister-packs of makeup off the display and
piled them in. Since then I've always thought of that man as the
personification of an interesting human tendency: not only are we
not offended to be dazzled by manufactured images, but we like it.
We practically insist on it. We are eager to be complicit in our own
dazzlement: to pay money for a theme park ride, vote for a guy who's
obviously lying to us, or stand there holding the basket as it's
filled up with cosmetics.
I was in Disney World recently, specifically the part of it called
the Magic Kingdom, walking up Main Street USA. This is a perfect
gingerbready Victorian small town that culminates in a Disney
castle. It was very crowded; we shuffled rather than walked.
Directly in front of me was a man with a camcorder. It was one of
the new breed of camcorders where instead of peering through a
viewfinder you gaze at a flat-panel color screen about the size of a
playing card, which televises live coverage of whatever the
camcorder is seeing. He was holding the appliance close to his face,
so that it obstructed his view. Rather than go see a real small town
for free, he had paid money to see a pretend one, and rather than
see it with the naked eye he was watching it on television.
And rather than stay home and read a book, I was watching him.
Americans' preference for mediated experiences is obvious enough,
and I'm not going to keep pounding it into the ground. I'm not even
going to make snotty comments about it--after all, I was at Disney
World as a paying customer. But it clearly relates to the colossal
success of GUIs and so I have to talk about it some. Disney does
mediated experiences better than anyone. If they understood what
OSes are, and why people use them, they could crush Microsoft in a
year or two.
In the part of Disney World called the Animal Kingdom there is a new
attraction, slated to open in March 1999, called the Maharajah
Jungle Trek. It was open for sneak previews when I was there. This
is a complete stone-by-stone reproduction of a hypothetical ruin in
the jungles of India. According to its backstory, it was built by a
local rajah in the 16th Century as a game reserve. He would go there
with his princely guests to hunt Bengal tigers. As time went on it
fell into disrepair and the tigers and monkeys took it over;
eventually, around the time of India's independence, it became a
government wildlife reserve, now open to visitors.
The place looks more like what I have just described than any actual
building you might find in India. All the stones in the broken walls
are weathered as if monsoon rains had been trickling down them for
centuries, the paint on the gorgeous murals is flaked and faded just
so, and Bengal tigers loll amid stumps of broken columns. Where
modern repairs have been made to the ancient structure, they've been
done, not as Disney's engineers would do them, but as thrifty Indian
janitors would--with hunks of bamboo and rust-spotted hunks of
rebar. The rust is painted on, or course, and protected from real
rust by a plastic clear-coat, but you can't tell unless you get down
on your knees.
In one place you walk along a stone wall with a series of old pitted
friezes carved into it. One end of the wall has broken off and
settled into the earth, perhaps because of some long-forgotten
earthquake, and so a broad jagged crack runs across a panel or two,
but the story is still readable: first, primordial chaos leads to a
flourishing of many animal species. Next, we see the Tree of Life
surrounded by diverse animals. This is an obvious allusion (or, in
showbiz lingo, a tie-in) to the gigantic Tree of Life that dominates
the center of Disney's Animal Kingdom just as the Castle dominates
the Magic Kingdom or the Sphere does Epcot. But it's rendered in
historically correct style and could probably fool anyone who didn't
have a Ph.D. in Indian art history.
The next panel shows a mustachioed H. sapiens chopping down the Tree
of Life with a scimitar, and the animals fleeing every which way.
The one after that shows the misguided human getting walloped by a
tidal wave, part of a latter-day Deluge presumably brought on by his
stupidity.
The final panel, then, portrays the Sapling of Life beginning to
grow back, but now Man has ditched the edged weapon and joined the
other animals in standing around to adore and praise it.
It is, in other words, a prophecy of the Bottleneck: the scenario,
commonly espoused among modern-day environmentalists, that the world
faces an upcoming period of grave ecological tribulations that will
last for a few decades or centuries and end when we find a new
harmonious modus vivendi with Nature.
Taken as a whole the frieze is a pretty brilliant piece of work.
Obviously it's not an ancient Indian ruin, and some person or people
now living deserve credit for it. But there are no signatures on the
Maharajah's game reserve at Disney World. There are no signatures on
anything, because it would ruin the whole effect to have long
strings of production credits dangling from every custom-worn brick,
as they do from Hollywood movies.
Among Hollywood writers, Disney has the reputation of being a real
wicked stepmother. It's not hard to see why. Disney is in the
business of putting out a product of seamless illusion--a magic
mirror that reflects the world back better than it really is. But a
writer is literally talking to his or her readers, not just creating
an ambience or presenting them with something to look at; and just
as the command-line interface opens a much more direct and explicit
channel from user to machine than the GUI, so it is with words,
writer, and reader.
The word, in the end, is the only system of encoding thoughts--the
only medium--that is not fungible, that refuses to dissolve in the
devouring torrent of electronic media (the richer tourists at Disney
World wear t-shirts printed with the names of famous designers,
because designs themselves can be bootlegged easily and with
impunity. The only way to make clothing that cannot be legally
bootlegged is to print copyrighted and trademarked words on it; once
you have taken that step, the clothing itself doesn't really matter,
and so a t-shirt is as good as anything else. T-shirts with
expensive words on them are now the insignia of the upper class.
T-shirts with cheap words, or no words at all, are for the
commoners).
But this special quality of words and of written communication would
have the same effect on Disney's product as spray-painted graffiti
on a magic mirror. So Disney does most of its communication without
resorting to words, and for the most part, the words aren't missed.
Some of Disney's older properties, such as Peter Pan, Winnie the
Pooh, and Alice in Wonderland, came out of books. But the authors'
names are rarely if ever mentioned, and you can't buy the original
books at the Disney store. If you could, they would all seem old and
queer, like very bad knockoffs of the purer, more authentic Disney
versions. Compared to more recent productions like Beauty and the
Beast and Mulan, the Disney movies based on these books
(particularly Alice in Wonderland and Peter Pan) seem deeply
bizarre, and not wholly appropriate for children. That stands to
reason, because Lewis Carroll and J.M. Barrie were very strange men,
and such is the nature of the written word that their personal
strangeness shines straight through all the layers of Disneyfication
like x-rays through a wall. Probably for this very reason, Disney
seems to have stopped buying books altogether, and now finds its
themes and characters in folk tales, which have the lapidary,
time-worn quality of the ancient bricks in the Maharajah's ruins.
If I can risk a broad generalization, most of the people who go to
Disney World have zero interest in absorbing new ideas from books.
Which sounds snide, but listen: they have no qualms about being
presented with ideas in other forms. Disney World is stuffed with
environmental messages now, and the guides at Animal Kingdom can
talk your ear off about biology.
If you followed those tourists home, you might find art, but it
would be the sort of unsigned folk art that's for sale in Disney
World's African- and Asian-themed stores. In general they only seem
comfortable with media that have been ratified by great age, massive
popular acceptance, or both.
In this world, artists are like the anonymous, illiterate stone
carvers who built the great cathedrals of Europe and then faded away
into unmarked graves in the churchyard. The cathedral as a whole is
awesome and stirring in spite, and possibly because, of the fact
that we have no idea who built it. When we walk through it we are
communing not with individual stone carvers but with an entire
culture.
Disney World works the same way. If you are an intellectual type, a
reader or writer of books, the nicest thing you can say about this
is that the execution is superb. But it's easy to find the whole
environment a little creepy, because something is missing: the
translation of all its content into clear explicit written words,
the attribution of the ideas to specific people. You can't argue
with it. It seems as if a hell of a lot might be being glossed over,
as if Disney World might be putting one over on us, and possibly
getting away with all kinds of buried assumptions and muddled
thinking.
But this is precisely the same as what is lost in the transition
from the command-line interface to the GUI.
Disney and Apple/Microsoft are in the same business:
short-circuiting laborious, explicit verbal communication with
expensively designed interfaces. Disney is a sort of user interface
unto itself--and more than just graphical. Let's call it a Sensorial
Interface. It can be applied to anything in the world, real or
imagined, albeit at staggering expense.
Why are we rejecting explicit word-based interfaces, and embracing
graphical or sensorial ones--a trend that accounts for the success
of both Microsoft and Disney?
Part of it is simply that the world is very complicated now--much
more complicated than the hunter-gatherer world that our brains
evolved to cope with--and we simply can't handle all of the details.
We have to delegate. We have no choice but to trust some nameless
artist at Disney or programmer at Apple or Microsoft to make a few
choices for us, close off some options, and give us a conveniently
packaged executive summary.
But more importantly, it comes out of the fact that, during this
century, intellectualism failed, and everyone knows it. In places
like Russia and Germany, the common people agreed to loosen their
grip on traditional folkways, mores, and religion, and let the
intellectuals run with the ball, and they screwed everything up and
turned the century into an abbatoir. Those wordy intellectuals used
to be merely tedious; now they seem kind of dangerous as well.
We Americans are the only ones who didn't get creamed at some point
during all of this. We are free and prosperous because we have
inherited political and values systems fabricated by a particular
set of eighteenth-century intellectuals who happened to get it
right. But we have lost touch with those intellectuals, and with
anything like intellectualism, even to the point of not reading
books any more, though we are literate. We seem much more
comfortable with propagating those values to future generations
nonverbally, through a process of being steeped in media. Apparently
this actually works to some degree, for police in many lands are now
complaining that local arrestees are insisting on having their
Miranda rights read to them, just like perps in American TV cop
shows. When it's explained to them that they are in a different
country, where those rights do not exist, they become outraged.
Starsky and Hutch reruns, dubbed into diverse languages, may turn
out, in the long run, to be a greater force for human rights than
the Declaration of Independence.
A huge, rich, nuclear-tipped culture that propagates its core values
through media steepage seems like a bad idea. There is an obvious
risk of running astray here. Words are the only immutable medium we
have, which is why they are the vehicle of choice for extremely
important concepts like the Ten Commandments, the Koran, and the
Bill of Rights. Unless the messages conveyed by our media are
somehow pegged to a fixed, written set of precepts, they can wander
all over the place and possibly dump loads of crap into people's
minds.
Orlando used to have a military installation called McCoy Air Force
Base, with long runways from which B-52s could take off and reach
Cuba, or just about anywhere else, with loads of nukes. But now
McCoy has been scrapped and repurposed. It has been absorbed into
Orlando's civilian airport. The long runways are being used to land
747-loads of tourists from Brazil, Italy, Russia and Japan, so that
they can come to Disney World and steep in our media for a while.
To traditional cultures, especially word-based ones such as Islam,
this is infinitely more threatening than the B-52s ever were. It is
obvious, to everyone outside of the United States, that our
arch-buzzwords, multiculturalism and diversity, are false fronts
that are being used (in many cases unwittingly) to conceal a global
trend to eradicate cultural differences. The basic tenet of
multiculturalism (or "honoring diversity" or whatever you want to
call it) is that people need to stop judging each other-to stop
asserting (and, eventually, to stop believing) that this is right
and that is wrong, this true and that false, one thing ugly and
another thing beautiful, that God exists and has this or that set of
qualities.
The lesson most people are taking home from the Twentieth Century is
that, in order for a large number of different cultures to coexist
peacefully on the globe (or even in a neighborhood) it is necessary
for people to suspend judgment in this way. Hence (I would argue)
our suspicion of, and hostility towards, all authority figures in
modern culture. As David Foster Wallace has explained in his essay
"E Unibus Pluram," this is the fundamental message of television; it
is the message that people take home, anyway, after they have
steeped in our media long enough. It's not expressed in these
highfalutin terms, of course. It comes through as the presumption
that all authority figures--teachers, generals, cops, ministers,
politicians--are hypocritical buffoons, and that hip jaded coolness
is the only way to be.
The problem is that once you have done away with the ability to make
judgments as to right and wrong, true and false, etc., there's no
real culture left. All that remains is clog dancing and macrame. The
ability to make judgments, to believe things, is the entire it point
of having a culture. I think this is why guys with machine guns
sometimes pop up in places like Luxor, and begin pumping bullets
into Westerners. They perfectly understand the lesson of McCoy Air
Force Base. When their sons come home wearing Chicago Bulls caps
with the bills turned sideways, the dads go out of their minds.
The global anti-culture that has been conveyed into every cranny of
the world by television is a culture unto itself, and by the
standards of great and ancient cultures like Islam and France, it
seems grossly inferior, at least at first. The only good thing you
can say about it is that it makes world wars and Holocausts less
likely--and that is actually a pretty good thing!
The only real problem is that anyone who has no culture, other than
this global monoculture, is completely screwed. Anyone who grows up
watching TV, never sees any religion or philosophy, is raised in an
atmosphere of moral relativism, learns about civics from watching
bimbo eruptions on network TV news, and attends a university where
postmodernists vie to outdo each other in demolishing traditional
notions of truth and quality, is going to come out into the world as
one pretty feckless human being. And--again--perhaps the goal of all
this is to make us feckless so we won't nuke each other.
On the other hand, if you are raised within some specific culture,
you end up with a basic set of tools that you can use to think about
and understand the world. You might use those tools to reject the
culture you were raised in, but at least you've got some tools.
In this country, the people who run things--who populate major law
firms and corporate boards--understand all of this at some level.
They pay lip service to multiculturalism and diversity and
non-judgmentalness, but they don't raise their own children that
way. I have highly educated, technically sophisticated friends who
have moved to small towns in Iowa to live and raise their children,
and there are Hasidic Jewish enclaves in New York where large
numbers of kids are being brought up according to traditional
beliefs. Any suburban community might be thought of as a place where
people who hold certain (mostly implicit) beliefs go to live among
others who think the same way.
And not only do these people feel some responsibility to their own
children, but to the country as a whole. Some of the upper class are
vile and cynical, of course, but many spend at least part of their
time fretting about what direction the country is going in, and what
responsibilities they have. And so issues that are important to
book-reading intellectuals, such as global environmental collapse,
eventually percolate through the porous buffer of mass culture and
show up as ancient Hindu ruins in Orlando.
You may be asking: what the hell does all this have to do with
operating systems? As I've explained, there is no way to explain the
domination of the OS market by Apple/Microsoft without looking to
cultural explanations, and so I can't get anywhere, in this essay,
without first letting you know where I'm coming from vis-a-vis
contemporary culture.
Contemporary culture is a two-tiered system, like the Morlocks and
the Eloi in H.G. Wells's The Time Machine, except that it's been
turned upside down. In The Time Machine the Eloi were an effete
upper class, supported by lots of subterranean Morlocks who kept the
technological wheels turning. But in our world it's the other way
round. The Morlocks are in the minority, and they are running the
show, because they understand how everything works. The much more
numerous Eloi learn everything they know from being steeped from
birth in electronic media directed and controlled by book-reading
Morlocks. So many ignorant people could be dangerous if they got
pointed in the wrong direction, and so we've evolved a popular
culture that is (a) almost unbelievably infectious and (b) neuters
every person who gets infected by it, by rendering them unwilling to
make judgments and incapable of taking stands.
Morlocks, who have the energy and intelligence to comprehend
details, go out and master complex subjects and produce Disney-like
Sensorial Interfaces so that Eloi can get the gist without having to
strain their minds or endure boredom. Those Morlocks will go to
India and tediously explore a hundred ruins, then come home and
built sanitary bug-free versions: highlight films, as it were. This
costs a lot, because Morlocks insist on good coffee and first-class
airline tickets, but that's no problem because Eloi like to be
dazzled and will gladly pay for it all.
Now I realize that most of this probably sounds snide and bitter to
the point of absurdity: your basic snotty intellectual throwing a
tantrum about those unlettered philistines. As if I were a
self-styled Moses, coming down from the mountain all alone, carrying
the stone tablets bearing the Ten Commandments carved in immutable
stone--the original command-line interface--and blowing his stack at
the weak, unenlightened Hebrews worshipping images. Not only that,
but it sounds like I'm pumping some sort of conspiracy theory.
But that is not where I'm going with this. The situation I describe,
here, could be bad, but doesn't have to be bad and isn't necessarily
bad now:
* It simply is the case that we are way too busy, nowadays, to
comprehend everything in detail. And it's better to comprehend it
dimly, through an interface, than not at all. Better for ten
million Eloi to go on the Kilimanjaro Safari at Disney World than
for a thousand cardiovascular surgeons and mutual fund managers to
go on "real" ones in Kenya.
* The boundary between these two classes is more porous than I've
made it sound. I'm always running into regular dudes--construction
workers, auto mechanics, taxi drivers, galoots in general--who were
largely aliterate until something made it necessary for them to
become readers and start actually thinking about things. Perhaps
they had to come to grips with alcoholism, perhaps they got sent to
jail, or came down with a disease, or suffered a crisis in
religious faith, or simply got bored. Such people can get up to
speed on particular subjects quite rapidly. Sometimes their lack of
a broad education makes them over-apt to go off on intellectual
wild goose chases, but, hey, at least a wild goose chase gives you
some exercise.
* The spectre of a polity controlled by the fads and whims of voters
who actually believe that there are significant differences between
Bud Lite and Miller Lite, and who think that professional wrestling
is for real, is naturally alarming to people who don't. But then
countries controlled via the command-line interface, as it were, by
double-domed intellectuals, be they religious or secular, are
generally miserable places to live.
* Sophisticated people deride Disneyesque entertainments as pat and
saccharine, but, hey, if the result of that is to instill basically
warm and sympathetic reflexes, at a preverbal level, into hundreds
of millions of unlettered media-steepers, then how bad can it be?
We killed a lobster in our kitchen last night and my daughter cried
for an hour. The Japanese, who used to be just about the fiercest
people on earth, have become infatuated with cuddly adorable
cartoon characters.
* My own family--the people I know best--is divided about evenly
between people who will probably read this essay and people who
almost certainly won't, and I can't say for sure that one group is
necessarily warmer, happier, or better-adjusted than the other.
MORLOCKS AND ELOI AT THE KEYBOARD
Back in the days of the command-line interface, users were all
Morlocks who had to convert their thoughts into alphanumeric symbols
and type them in, a grindingly tedious process that stripped away
all ambiguity, laid bare all hidden assumptions, and cruelly
punished laziness and imprecision. Then the interface-makers went to
work on their GUIs, and introduced a new semiotic layer between
people and machines. People who use such systems have abdicated the
responsibility, and surrendered the power, of sending bits directly
to the chip that's doing the arithmetic, and handed that
responsibility and power over to the OS. This is tempting because
giving clear instructions, to anyone or anything, is difficult. We
cannot do it without thinking, and depending on the complexity of
the situation, we may have to think hard about abstract things, and
consider any number of ramifications, in order to do a good job of
it. For most of us, this is hard work. We want things to be easier.
How badly we want it can be measured by the size of Bill Gates's
fortune.
The OS has (therefore) become a sort of intellectual labor-saving
device that tries to translate humans' vaguely expressed intentions
into bits. In effect we are asking our computers to shoulder
responsibilities that have always been considered the province of
human beings--we want them to understand our desires, to anticipate
our needs, to foresee consequences, to make connections, to handle
routine chores without being asked, to remind us of what we ought to
be reminded of while filtering out noise.
At the upper (which is to say, closer to the user) levels, this is
done through a set of conventions--menus, buttons, and so on. These
work in the sense that analogies work: they help Eloi understand
abstract or unfamiliar concepts by likening them to something known.
But the loftier word "metaphor" is used.
The overarching concept of the MacOS was the "desktop metaphor" and
it subsumed any number of lesser (and frequently conflicting, or at
least mixed) metaphors. Under a GUI, a file (frequently called
"document") is metaphrased as a window on the screen (which is
called a "desktop"). The window is almost always too small to
contain the document and so you "move around," or, more
pretentiously, "navigate" in the document by "clicking and dragging"
the "thumb" on the "scroll bar." When you "type" (using a keyboard)
or "draw" (using a "mouse") into the "window" or use pull-down
"menus" and "dialog boxes" to manipulate its contents, the results
of your labors get stored (at least in theory) in a "file," and
later you can pull the same information back up into another
"window." When you don't want it anymore, you "drag" it into the
"trash."
There is massively promiscuous metaphor-mixing going on here, and I
could deconstruct it 'til the cows come home, but I won't. Consider
only one word: "document." When we document something in the real
world, we make fixed, permanent, immutable records of it. But
computer documents are volatile, ephemeral constellations of data.
Sometimes (as when you've just opened or saved them) the document as
portrayed in the window is identical to what is stored, under the
same name, in a file on the disk, but other times (as when you have
made changes without saving them) it is completely different. In any
case, every time you hit "Save" you annihilate the previous version
of the "document" and replace it with whatever happens to be in the
window at the moment. So even the word "save" is being used in a
sense that is grotesquely misleading---"destroy one version, save
another" would be more accurate.
Anyone who uses a word processor for very long inevitably has the
experience of putting hours of work into a long document and then
losing it because the computer crashes or the power goes out. Until
the moment that it disappears from the screen, the document seems
every bit as solid and real as if it had been typed out in ink on
paper. But in the next moment, without warning, it is completely and
irretrievably gone, as if it had never existed. The user is left
with a feeling of disorientation (to say nothing of annoyance)
stemming from a kind of metaphor shear--you realize that you've been
living and thinking inside of a metaphor that is essentially bogus.
So GUIs use metaphors to make computing easier, but they are bad
metaphors. Learning to use them is essentially a word game, a
process of learning new definitions of words like "window" and
"document" and "save" that are different from, and in many cases
almost diametrically opposed to, the old. Somewhat improbably, this
has worked very well, at least from a commercial standpoint, which
is to say that Apple/Microsoft have made a lot of money off of it.
All of the other modern operating systems have learned that in order
to be accepted by users they must conceal their underlying gutwork
beneath the same sort of spackle. This has some advantages: if you
know how to use one GUI operating system, you can probably work out
how to use any other in a few minutes. Everything works a little
differently, like European plumbing--but with some fiddling around,
you can type a memo or surf the web.
Most people who shop for OSes (if they bother to shop at all) are
comparing not the underlying functions but the superficial look and
feel. The average buyer of an OS is not really paying for, and is
not especially interested in, the low-level code that allocates
memory or writes bytes onto the disk. What we're really buying is a
system of metaphors. And--much more important--what we're buying
into is the underlying assumption that metaphors are a good way to
deal with the world.
Recently a lot of new hardware has become available that gives
computers numerous interesting ways of affecting the real world:
making paper spew out of printers, causing words to appear on
screens thousands of miles away, shooting beams of radiation through
cancer patients, creating realistic moving pictures of the Titanic.
Windows is now used as an OS for cash registers and bank tellers'
terminals. My satellite TV system uses a sort of GUI to change
channels and show program guides. Modern cellular telephones have a
crude GUI built into a tiny LCD screen. Even Legos now have a GUI:
you can buy a Lego set called Mindstorms that enables you to build
little Lego robots and program them through a GUI on your computer.
So we are now asking the GUI to do a lot more than serve as a
glorified typewriter. Now we want to become a generalized tool for
dealing with reality. This has become a bonanza for companies that
make a living out of bringing new technology to the mass market.
Obviously you cannot sell a complicated technological system to
people without some sort of interface that enables them to use it.
The internal combustion engine was a technological marvel in its
day, but useless as a consumer good until a clutch, transmission,
steering wheel and throttle were connected to it. That odd
collection of gizmos, which survives to this day in every car on the
road, made up what we would today call a user interface. But if cars
had been invented after Macintoshes, carmakers would not have
bothered to gin up all of these arcane devices. We would have a
computer screen instead of a dashboard, and a mouse (or at best a
joystick) instead of a steering wheel, and we'd shift gears by
pulling down a menu:
PARK
---
REVERSE
---
NEUTRAL
----
3
2
1
---
Help...
A few lines of computer code can thus be made to substitute for any
imaginable mechanical interface. The problem is that in many cases
the substitute is a poor one. Driving a car through a GUI would be a
miserable experience. Even if the GUI were perfectly bug-free, it
would be incredibly dangerous, because menus and buttons simply
can't be as responsive as direct mechanical controls. My friend's
dad, the gentleman who was restoring the MGB, never would have
bothered with it if it had been equipped with a GUI. It wouldn't
have been any fun.
The steering wheel and gearshift lever were invented during an era
when the most complicated technology in most homes was a butter
churn. Those early carmakers were simply lucky, in that they could
dream up whatever interface was best suited to the task of driving
an automobile, and people would learn it. Likewise with the dial
telephone and the AM radio. By the time of the Second World War,
most people knew several interfaces: they could not only churn
butter but also drive a car, dial a telephone, turn on a radio,
summon flame from a cigarette lighter, and change a light bulb.
But now every little thing--wristwatches, VCRs, stoves--is jammed
with features, and every feature is useless without an interface. If
you are like me, and like most other consumers, you have never used
ninety percent of the available features on your microwave oven,
VCR, or cellphone. You don't even know that these features exist.
The small benefit they might bring you is outweighed by the sheer
hassle of having to learn about them. This has got to be a big
problem for makers of consumer goods, because they can't compete
without offering features.
It's no longer acceptable for engineers to invent a wholly novel
user interface for every new product, as they did in the case of the
automobile, partly because it's too expensive and partly because
ordinary people can only learn so much. If the VCR had been invented
a hundred years ago, it would have come with a thumbwheel to adjust
the tracking and a gearshift to change between forward and reverse
and a big cast-iron handle to load or to eject the cassettes. It
would have had a big analog clock on the front of it, and you would
have set the time by moving the hands around on the dial. But
because the VCR was invented when it was--during a sort of awkward
transitional period between the era of mechanical interfaces and
GUIs--it just had a bunch of pushbuttons on the front, and in order
to set the time you had to push the buttons in just the right way.
This must have seemed reasonable enough to the engineers responsible
for it, but to many users it was simply impossible. Thus the famous
blinking 12:00 that appears on so many VCRs. Computer people call
this "the blinking twelve problem". When they talk about it, though,
they usually aren't talking about VCRs.
Modern VCRs usually have some kind of on-screen programming, which
means that you can set the time and control other features through a
sort of primitive GUI. GUIs have virtual pushbuttons too, of course,
but they also have other types of virtual controls, like radio
buttons, checkboxes, text entry boxes, dials, and scrollbars.
Interfaces made out of these components seem to be a lot easier, for
many people, than pushing those little buttons on the front of the
machine, and so the blinking 12:00 itself is slowly disappearing
from America's living rooms. The blinking twelve problem has moved
on to plague other technologies.
So the GUI has gone beyond being an interface to personal computers,
and become a sort of meta-interface that is pressed into service for
every new piece of consumer technology. It is rarely an ideal fit,
but having an ideal, or even a good interface is no longer the
priority; the important thing now is having some kind of interface
that customers will actually use, so that manufacturers can claim,
with a straight face, that they are offering new features.
We want GUIs largely because they are convenient and because they
are easy-- or at least the GUI makes it seem that way. Of course,
nothing is really easy and simple, and putting a nice interface on
top of it does not change that fact. A car controlled through a GUI
would be easier to drive than one controlled through pedals and
steering wheel, but it would be incredibly dangerous.
By using GUIs all the time we have insensibly bought into a premise
that few people would have accepted if it were presented to them
bluntly: namely, that hard things can be made easy, and complicated
things simple, by putting the right interface on them. In order to
understand how bizarre this is, imagine that book reviews were
written according to the same values system that we apply to user
interfaces: "The writing in this book is marvelously simple-minded
and glib; the author glosses over complicated subjects and employs
facile generalizations in almost every sentence. Readers rarely have
to think, and are spared all of the difficulty and tedium typically
involved in reading old-fashioned books." As long as we stick to
simple operations like setting the clocks on our VCRs, this is not
so bad. But as we try to do more ambitious things with our
technologies, we inevitably run into the problem of:
METAPHOR SHEAR
I began using Microsoft Word as soon as the first version was
released around 1985. After some initial hassles I found it to be a
better tool than MacWrite, which was its only competition at the
time. I wrote a lot of stuff in early versions of Word, storing it
all on floppies, and transferred the contents of all my floppies to
my first hard drive, which I acquired around 1987. As new versions
of Word came out I faithfully upgraded, reasoning that as a writer
it made sense for me to spend a certain amount of money on tools.
Sometime in the mid-1980's I attempted to open one of my old,
circa-1985 Word documents using the version of Word then current:
6.0 It didn't work. Word 6.0 did not recognize a document created by
an earlier version of itself. By opening it as a text file, I was
able to recover the sequences of letters that made up the text of
the document. My words were still there. But the formatting had been
run through a log chipper--the words I'd written were interrupted by
spates of empty rectangular boxes and gibberish.
Now, in the context of a business (the chief market for Word) this
sort of thing is only an annoyance--one of the routine hassles that
go along with using computers. It's easy to buy little file
converter programs that will take care of this problem. But if you
are a writer whose career is words, whose professional identity is a
corpus of written documents, this kind of thing is extremely
disquieting. There are very few fixed assumptions in my line of
work, but one of them is that once you have written a word, it is
written, and cannot be unwritten. The ink stains the paper, the
chisel cuts the stone, the stylus marks the clay, and something has
irrevocably happened (my brother-in-law is a theologian who reads
3250-year-old cuneiform tablets--he can recognize the handwriting of
particular scribes, and identify them by name). But word-processing
software--particularly the sort that employs special, complex file
formats--has the eldritch power to unwrite things. A small change in
file formats, or a few twiddled bits, and months' or years' literary
output can cease to exist.
Now this was technically a fault in the application (Word 6.0 for
the Macintosh) not the operating system (MacOS 7 point something)
and so the initial target of my annoyance was the people who were
responsible for Word. But. On the other hand, I could have chosen
the "save as text" option in Word and saved all of my documents as
simple telegrams, and this problem would not have arisen. Instead I
had allowed myself to be seduced by all of those flashy formatting
options that hadn't even existed until GUIs had come along to make
them practicable. I had gotten into the habit of using them to make
my documents look pretty (perhaps prettier than they deserved to
look; all of the old documents on those floppies turned out to be
more or less crap). Now I was paying the price for that
self-indulgence. Technology had moved on and found ways to make my
documents look even prettier, and the consequence of it was that all
old ugly documents had ceased to exist.
It was--if you'll pardon me for a moment's strange little
fantasy--as if I'd gone to stay at some resort, some exquisitely
designed and art-directed hotel, placing myself in the hands of past
masters of the Sensorial Interface, and had sat down in my room and
written a story in ballpoint pen on a yellow legal pad, and when I
returned from dinner, discovered that the maid had taken my work
away and left behind in its place a quill pen and a stack of fine
parchment--explaining that the room looked ever so much finer this
way, and it was all part of a routine upgrade. But written on these
sheets of paper, in flawless penmanship, were long sequences of
words chosen at random from the dictionary. Appalling, sure, but I
couldn't really lodge a complaint with the management, because by
staying at this resort I had given my consent to it. I had
surrendered my Morlock credentials and become an Eloi.
LINUX
During the late 1980's and early 1990's I spent a lot of time
programming Macintoshes, and eventually decided for fork over
several hundred dollars for an Apple product called the Macintosh
Programmer's Workshop, or MPW. MPW had competitors, but it was
unquestionably the premier software development system for the Mac.
It was what Apple's own engineers used to write Macintosh code.
Given that MacOS was far more technologically advanced, at the time,
than its competition, and that Linux did not even exist yet, and
given that this was the actual program used by Apple's world-class
team of creative engineers, I had high expectations. It arrived on a
stack of floppy disks about a foot high, and so there was plenty of
time for my excitement to build during the endless installation
process. The first time I launched MPW, I was probably expecting
some kind of touch-feely multimedia showcase. Instead it was
austere, almost to the point of being intimidating. It was a
scrolling window into which you could type simple, unformatted text.
The system would then interpret these lines of text as commands, and
try to execute them.
It was, in other words, a glass teletype running a command line
interface. It came with all sorts of cryptic but powerful commands,
which could be invoked by typing their names, and which I learned to
use only gradually. It was not until a few years later, when I began
messing around with Unix, that I understood that the command line
interface embodied in MPW was a re-creation of Unix.
In other words, the first thing that Apple's hackers had done when
they'd got the MacOS up and running--probably even before they'd
gotten it up and running--was to re-create the Unix interface, so
that they would be able to get some useful work done. At the time, I
simply couldn't get my mind around this, but: as far as Apple's
hackers were concerned, the Mac's vaunted Graphical User Interface
was an impediment, something to be circumvented before the little
toaster even came out onto the market.
Even before my Powerbook crashed and obliterated my big file in July
1995, there had been danger signs. An old college buddy of mine, who
starts and runs high-tech companies in Boston, had developed a
commercial product using Macintoshes as the front end. Basically the
Macs were high-performance graphics terminals, chosen for their
sweet user interface, giving users access to a large database of
graphical information stored on a network of much more powerful, but
less user-friendly, computers. This fellow was the second person who
turned me on to Macintoshes, by the way, and through the mid-1980's
we had shared the thrill of being high-tech cognoscenti, using
superior Apple technology in a world of DOS-using knuckleheads.
Early versions of my friend's system had worked well, he told me,
but when several machines joined the network, mysterious crashes
began to occur; sometimes the whole network would just freeze. It
was one of those bugs that could not be reproduced easily. Finally
they figured out that these network crashes were triggered whenever
a user, scanning the menus for a particular item, held down the
mouse button for more than a couple of seconds.
Fundamentally, the MacOS could only do one thing at a time. Drawing
a menu on the screen is one thing. So when a menu was pulled down,
the Macintosh was not capable of doing anything else until that
indecisive user released the button.
This is not such a bad thing in a single-user, single-process
machine (although it's a fairly bad thing), but it's no good in a
machine that is on a network, because being on a network implies
some kind of continual low-level interaction with other machines. By
failing to respond to the network, the Mac caused a network-wide
crash.
In order to work with other computers, and with networks, and with
various different types of hardware, an OS must be incomparably more
complicated and powerful than either MS-DOS or the original MacOS.
The only way of connecting to the Internet that's worth taking
seriously is PPP, the Point-to-Point Protocol, which (never mind the
details) makes your computer--temporarily--a full-fledged member of
the Global Internet, with its own unique address, and various
privileges, powers, and responsibilities appertaining thereunto.
Technically it means your machine is running the TCP/IP protocol,
which, to make a long story short, revolves around sending packets
of data back and forth, in no particular order, and at unpredictable
times, according to a clever and elegant set of rules. But sending a
packet of data is one thing, and so an OS that can only do one thing
at a time cannot simultaneously be part of the Internet and do
anything else. When TCP/IP was invented, running it was an honor
reserved for Serious Computers--mainframes and high-powered
minicomputers used in technical and commercial settings--and so the
protocol is engineered around the assumption that every computer
using it is a serious machine, capable of doing many things at once.
Not to put too fine a point on it, a Unix machine. Neither MacOS nor
MS-DOS was originally built with that in mind, and so when the
Internet got hot, radical changes had to be made.
When my Powerbook broke my heart, and when Word stopped recognizing
my old files, I jumped to Unix. The obvious alternative to MacOS
would have been Windows. I didn't really have anything against
Microsoft, or Windows. But it was pretty obvious, now, that old PC
operating systems were overreaching, and showing the strain, and,
perhaps, were best avoided until they had learned to walk and chew
gum at the same time.
The changeover took place on a particular day in the summer of 1995.
I had been San Francisco for a couple of weeks, using my PowerBook
to work on a document. The document was too big to fit onto a single
floppy, and so I hadn't made a backup since leaving home. The
PowerBook crashed and wiped out the entire file.
It happened just as I was on my way out the door to visit a company
called Electric Communities, which in those days was in Los Altos. I
took my PowerBook with me. My friends at Electric Communities were
Mac users who had all sorts of utility software for unerasing files
and recovering from disk crashes, and I was certain I could get most
of the file back.
As it turned out, two different Mac crash recovery utilities were
unable to find any trace that my file had ever existed. It was
completely and systematically wiped out. We went through that hard
disk block by block and found disjointed fragments of countless old,
discarded, forgotten files, but none of what I wanted. The metaphor
shear was especially brutal that day. It was sort of like watching
the girl you've been in love with for ten years get killed in a car
wreck, and then attending her autopsy, and learning that underneath
the clothes and makeup she was just flesh and blood.
I must have been reeling around the offices of Electric Communities
in some kind of primal Jungian fugue, because at this moment three
weirdly synchronistic things happened.
(1) Randy Farmer, a co-founder of the company, came in for a quick
visit along with his family--he was recovering from back surgery at
the time. He had some hot gossip: "Windows 95 mastered today." What
this meant was that Microsoft's new operating system had, on this
day, been placed on a special compact disk known as a golden master,
which would be used to stamp out a jintillion copies in preparation
for its thunderous release a few weeks later. This news was received
peevishly by the staff of Electric Communities, including one whose
office door was plastered with the usual assortment of cartoons and
novelties, e.g.
(2) a copy of a Dilbert cartoon in which Dilbert, the long-suffering
corporate software engineer, encounters a portly, bearded, hairy man
of a certain age--a bit like Santa Claus, but darker, with a certain
edge about him. Dilbert recognizes this man, based upon his
appearance and affect, as a Unix hacker, and reacts with a certain
mixture of nervousness, awe, and hostility. Dilbert jabs weakly at
the disturbing interloper for a couple of frames; the Unix hacker
listens with a kind of infuriating, beatific calm, then, in the last
frame, reaches into his pocket. "Here's a nickel, kid," he says, "go
buy yourself a real computer."
(3) the owner of the door, and the cartoon, was one Doug Barnes.
Barnes was known to harbor certain heretical opinions on the subject
of operating systems. Unlike most Bay Area techies who revered the
Macintosh, considering it to be a true hacker's machine, Barnes was
fond of pointing out that the Mac, with its hermetically sealed
architecture, was actually hostile to hackers, who are prone to
tinkering and dogmatic about openness. By contrast, the
IBM-compatible line of machines, which can easily be taken apart and
plugged back together, was much more hackable.
So when I got home I began messing around with Linux, which is one
of many, many different concrete implementations of the abstract,
Platonic ideal called Unix. I was not looking forward to changing
over to a new OS, because my credit cards were still smoking from
all the money I'd spent on Mac hardware over the years. But Linux's
great virtue was, and is, that it would run on exactly the same sort
of hardware as the Microsoft OSes--which is to say, the cheapest
hardware in existence. As if to demonstrate why this was a great
idea, I was, within a week or two of returning home, able to get my
hand on a then-decent computer (a 33-MHz 486 box) for free, because
I knew a guy who worked in an office where they were simply being
thrown away. Once I got it home, I yanked the hood off, stuck my
hands in, and began switching cards around. If something didn't
work, I went to a used-computer outlet and pawed through a bin full
of components and bought a new card for a few bucks.
The availability of all this cheap but effective hardware was an
unintended consequence of decisions that had been made more than a
decade earlier by IBM and Microsoft. When Windows came out, and
brought the GUI to a much larger market, the hardware regime
changed: the cost of color video cards and high-resolution monitors
began to drop, and is dropping still. This free-for-all approach to
hardware meant that Windows was unavoidably clunky compared to
MacOS. But the GUI brought computing to such a vast audience that
volume went way up and prices collapsed. Meanwhile Apple, which so
badly wanted a clean, integrated OS with video neatly integrated
into processing hardware, had fallen far behind in market share, at
least partly because their beautiful hardware cost so much.
But the price that we Mac owners had to pay for superior aesthetics
and engineering was not merely a financial one. There was a cultural
price too, stemming from the fact that we couldn't open up the hood
and mess around with it. Doug Barnes was right. Apple, in spite of
its reputation as the machine of choice of scruffy, creative hacker
types, had actually created a machine that discouraged hacking,
while Microsoft, viewed as a technological laggard and copycat, had
created a vast, disorderly parts bazaar--a primordial soup that
eventually self-assembled into Linux.
THE HOLE HAWG OF OPERATING SYSTEMS
Unix has always lurked provocatively in the background of the
operating system wars, like the Russian Army. Most people know it
only by reputation, and its reputation, as the Dilbert cartoon
suggests, is mixed. But everyone seems to agree that if it could
only get its act together and stop surrendering vast tracts of rich
agricultural land and hundreds of thousands of prisoners of war to
the onrushing invaders, it could stomp them (and all other
opposition) flat.
It is difficult to explain how Unix has earned this respect without
going into mind-smashing technical detail. Perhaps the gist of it
can be explained by telling a story about drills.
The Hole Hawg is a drill made by the Milwaukee Tool Company. If you
look in a typical hardware store you may find smaller Milwaukee
drills but not the Hole Hawg, which is too powerful and too
expensive for homeowners. The Hole Hawg does not have the
pistol-like design of a cheap homeowner's drill. It is a cube of
solid metal with a handle sticking out of one face and a chuck
mounted in another. The cube contains a disconcertingly potent
electric motor. You can hold the handle and operate the trigger with
your index finger, but unless you are exceptionally strong you
cannot control the weight of the Hole Hawg with one hand; it is a
two-hander all the way. In order to fight off the counter-torque of
the Hole Hawg you use a separate handle (provided), which you screw
into one side of the iron cube or the other depending on whether you
are using your left or right hand to operate the trigger. This
handle is not a sleek, ergonomically designed item as it would be in
a homeowner's drill. It is simply a foot-long chunk of regular
galvanized pipe, threaded on one end, with a black rubber handle on
the other. If you lose it, you just go to the local plumbing supply
store and buy another chunk of pipe.
During the Eighties I did some construction work. One day, another
worker leaned a ladder against the outside of the building that we
were putting up, climbed up to the second-story level, and used the
Hole Hawg to drill a hole through the exterior wall. At some point,
the drill bit caught in the wall. The Hole Hawg, following its one
and only imperative, kept going. It spun the worker's body around
like a rag doll, causing him to knock his own ladder down.
Fortunately he kept his grip on the Hole Hawg, which remained lodged
in the wall, and he simply dangled from it and shouted for help
until someone came along and reinstated the ladder.
I myself used a Hole Hawg to drill many holes through studs, which
it did as a blender chops cabbage. I also used it to cut a few
six-inch-diameter holes through an old lath-and-plaster ceiling. I
chucked in a new hole saw, went up to the second story, reached down
between the newly installed floor joists, and began to cut through
the first-floor ceiling below. Where my homeowner's drill had
labored and whined to spin the huge bit around, and had stalled at
the slightest obstruction, the Hole Hawg rotated with the stupid
consistency of a spinning planet. When the hole saw seized up, the
Hole Hawg spun itself and me around, and crushed one of my hands
between the steel pipe handle and a joist, producing a few
lacerations, each surrounded by a wide corona of deeply bruised
flesh. It also bent the hole saw itself, though not so badly that I
couldn't use it. After a few such run-ins, when I got ready to use
the Hole Hawg my heart actually began to pound with atavistic
terror.
But I never blamed the Hole Hawg; I blamed myself. The Hole Hawg is
dangerous because it does exactly what you tell it to. It is not
bound by the physical limitations that are inherent in a cheap
drill, and neither is it limited by safety interlocks that might be
built into a homeowner's product by a liability-conscious
manufacturer. The danger lies not in the machine itself but in the
user's failure to envision the full consequences of the instructions
he gives to it.
A smaller tool is dangerous too, but for a completely different
reason: it tries to do what you tell it to, and fails in some way
that is unpredictable and almost always undesirable. But the Hole
Hawg is like the genie of the ancient fairy tales, who carries out
his master's instructions literally and precisely and with unlimited
power, often with disastrous, unforeseen consequences.
Pre-Hole Hawg, I used to examine the drill selection in hardware
stores with what I thought was a judicious eye, scorning the smaller
low-end models and hefting the big expensive ones appreciatively,
wishing I could afford one of them babies. Now I view them all with
such contempt that I do not even consider them to be real
drills--merely scaled-up toys designed to exploit the
self-delusional tendencies of soft-handed homeowners who want to
believe that they have purchased an actual tool. Their plastic
casings, carefully designed and focus-group-tested to convey a
feeling of solidity and power, seem disgustingly flimsy and cheap to
me, and I am ashamed that I was ever bamboozled into buying such
knicknacks.
It is not hard to imagine what the world would look like to someone
who had been raised by contractors and who had never used any drill
other than a Hole Hawg. Such a person, presented with the best and
most expensive hardware-store drill, would not even recognize it as
such. He might instead misidentify it as a child's toy, or some kind
of motorized screwdriver. If a salesperson or a deluded homeowner
referred to it as a drill, he would laugh and tell them that they
were mistaken--they simply had their terminology wrong. His
interlocutor would go away irritated, and probably feeling rather
defensive about his basement full of cheap, dangerous, flashy,
colorful tools.
Unix is the Hole Hawg of operating systems, and Unix hackers, like
Doug Barnes and the guy in the Dilbert cartoon and many of the other
people who populate Silicon Valley, are like contractor's sons who
grew up using only Hole Hawgs. They might use Apple/Microsoft OSes
to write letters, play video games, or balance their checkbooks, but
they cannot really bring themselves to take these operating systems
seriously.
THE ORAL TRADITION
Unix is hard to learn. The process of learning it is one of multiple
small epiphanies. Typically you are just on the verge of inventing
some necessary tool or utility when you realize that someone else
has already invented it, and built it in, and this explains some odd
file or directory or command that you have noticed but never really
understood before.
For example there is a command (a small program, part of the OS)
called whoami, which enables you to ask the computer who it thinks
you are. On a Unix machine, you are always logged in under some
name--possibly even your own! What files you may work with, and what
software you may use, depends on your identity. When I started out
using Linux, I was on a non-networked machine in my basement, with
only one user account, and so when I became aware of the whoami
command it struck me as ludicrous. But once you are logged in as one
person, you can temporarily switch over to a pseudonym in order to
access different files. If your machine is on the Internet, you can
log onto other computers, provided you have a user name and a
password. At that point the distant machine becomes no different in
practice from the one right in front of you. These changes in
identity and location can easily become nested inside each other,
many layers deep, even if you aren't doing anything nefarious. Once
you have forgotten who and where you are, the whoami command is
indispensible. I use it all the time.
The file systems of Unix machines all have the same general
structure. On your flimsy operating systems, you can create
directories (folders) and give them names like Frodo or My Stuff and
put them pretty much anywhere you like. But under Unix the highest
level--the root--of the filesystem is always designated with the
single character "/" and it always contains the same set of
top-level directories:
/usr
/etc
/var
/bin
/proc
/boot
/home
/root
/sbin
/dev
/lib
/tmp
and each of these directories typically has its own distinct
structure of subdirectories. Note the obsessive use of abbreviations
and avoidance of capital letters; this is a system invented by
people to whom repetitive stress disorder is what black lung is to
miners. Long names get worn down to three-letter nubbins, like
stones smoothed by a river.
This is not the place to try to explain why each of the above
directories exists, and what is contained in it. At first it all
seems obscure; worse, it seems deliberately obscure. When I started
using Linux I was accustomed to being able to create directories
wherever I wanted and to give them whatever names struck my fancy.
Under Unix you are free to do that, of course (you are free to do
anything) but as you gain experience with the system you come to
understand that the directories listed above were created for the
best of reasons and that your life will be much easier if you follow
along (within /home, by the way, you have pretty much unlimited
freedom).
After this kind of thing has happened several hundred or thousand
times, the hacker understands why Unix is the way it is, and agrees
that it wouldn't be the same any other way. It is this sort of
acculturation that gives Unix hackers their confidence in the
system, and the attitude of calm, unshakable, annoying superiority
captured in the Dilbert cartoon. Windows 95 and MacOS are products,
contrived by engineers in the service of specific companies. Unix,
by contrast, is not so much a product as it is a painstakingly
compiled oral history of the hacker subculture. It is our Gilgamesh
epic.
What made old epics like Gilgamesh so powerful and so long-lived was
that they were living bodies of narrative that many people knew by
heart, and told over and over again--making their own personal
embellishments whenever it struck their fancy. The bad
embellishments were shouted down, the good ones picked up by others,
polished, improved, and, over time, incorporated into the story.
Likewise, Unix is known, loved, and understood by so many hackers
that it can be re-created from scratch whenever someone needs it.
This is very difficult to understand for people who are accustomed
to thinking of OSes as things that absolutely have to be bought.
Many hackers have launched more or less successful
re-implementations of the Unix ideal. Each one brings in new
embellishments. Some of them die out quickly, some are merged with
similar, parallel innovations created by different hackers attacking
the same problem, others still are embraced, and adopted into the
epic. Thus Unix has slowly accreted around a simple kernel and
acquired a kind of complexity and asymmetry about it that is
organic, like the roots of a tree, or the branchings of a coronary
artery. Understanding it is more like anatomy than physics.
For at least a year, prior to my adoption of Linux, I had been
hearing about it. Credible, well-informed people kept telling me
that a bunch of hackers had got together an implentation of Unix
that could be downloaded, free of charge, from the Internet. For a
long time I could not bring myself to take the notion seriously. It
was like hearing rumors that a group of model rocket enthusiasts had
created a completely functional Saturn V by exchanging blueprints on
the Net and mailing valves and flanges to each other.
But it's true. Credit for Linux generally goes to its human
namesake, one Linus Torvalds, a Finn who got the whole thing rolling
in 1991 when he used some of the GNU tools to write the beginnings
of a Unix kernel that could run on PC-compatible hardware. And
indeed Torvalds deserves all the credit he has ever gotten, and a
whole lot more. But he could not have made it happen by himself, any
more than Richard Stallman could have. To write code at all,
Torvalds had to have cheap but powerful development tools, and these
he got from Stallman's GNU project.
And he had to have cheap hardware on which to write that code. Cheap
hardware is a much harder thing to arrange than cheap software; a
single person (Stallman) can write software and put it up on the Net
for free, but in order to make hardware it's necessary to have a
whole industrial infrastructure, which is not cheap by any stretch
of the imagination. Really the only way to make hardware cheap is to
punch out an incredible number of copies of it, so that the unit
cost eventually drops. For reasons already explained, Apple had no
desire to see the cost of hardware drop. The only reason Torvalds
had cheap hardware was Microsoft.
Microsoft refused to go into the hardware business, insisted on
making its software run on hardware that anyone could build, and
thereby created the market conditions that allowed hardware prices
to plummet. In trying to understand the Linux phenomenon, then, we
have to look not to a single innovator but to a sort of bizarre
Trinity: Linus Torvalds, Richard Stallman, and Bill Gates. Take away
any of these three and Linux would not exist.
OS SHOCK
Young Americans who leave their great big homogeneous country and
visit some other part of the world typically go through several
stages of culture shock: first, dumb wide-eyed astonishment. Then a
tentative engagement with the new country's manners, cuisine, public
transit systems and toilets, leading to a brief period of fatuous
confidence that they are instant experts on the new country. As the
visit wears on, homesickness begins to set in, and the traveler
begins to appreciate, for the first time, how much he or she took
for granted at home. At the same time it begins to seem obvious that
many of one's own cultures and traditions are essentially arbitrary,
and could have been different; driving on the right side of the
road, for example. When the traveler returns home and takes stock of
the experience, he or she may have learned a good deal more about
America than about the country they went to visit.
For the same reasons, Linux is worth trying. It is a strange country
indeed, but you don't have to live there; a brief sojourn suffices
to give some flavor of the place and--more importantly--to lay bare
everything that is taken for granted, and all that could have been
done differently, under Windows or MacOS.
You can't try it unless you install it. With any other OS,
installing it would be a straightforward transaction: in exchange
for money, some company would give you a CD-ROM, and you would be on
your way. But a lot is subsumed in that kind of transaction, and has
to be gone through and picked apart.
We like plain dealings and straightforward transactions in America.
If you go to Egypt and, say, take a taxi somewhere, you become a
part of the taxi driver's life; he refuses to take your money
because it would demean your friendship, he follows you around town,
and weeps hot tears when you get in some other guy's taxi. You end
up meeting his kids at some point, and have to devote all sort of
ingenuity to finding some way to compensate him without insulting
his honor. It is exhausting. Sometimes you just want a simple
Manhattan-style taxi ride.
But in order to have an American-style setup, where you can just go
out and hail a taxi and be on your way, there must exist a whole
hidden apparatus of medallions, inspectors, commissions, and so
forth--which is fine as long as taxis are cheap and you can always
get one. When the system fails to work in some way, it is mysterious
and infuriating and turns otherwise reasonable people into
conspiracy theorists. But when the Egyptian system breaks down, it
breaks down transparently. You can't get a taxi, but your driver's
nephew will show up, on foot, to explain the problem and apologize.
Microsoft and Apple do things the Manhattan way, with vast
complexity hidden behind a wall of interface. Linux does things the
Egypt way, with vast complexity strewn about all over the landscape.
If you've just flown in from Manhattan, your first impulse will be
to throw up your hands and say "For crying out loud! Will you people
get a grip on yourselves!?" But this does not make friends in
Linux-land any better than it would in Egypt.
You can suck Linux right out of the air, as it were, by downloading
the right files and putting them in the right places, but there
probably are not more than a few hundred people in the world who
could create a functioning Linux system in that way. What you really
need is a distribution of Linux, which means a prepackaged set of
files. But distributions are a separate thing from Linux per se.
Linux per se is not a specific set of ones and zeroes, but a
self-organizing Net subculture. The end result of its collective
lucubrations is a vast body of source code, almost all written in C
(the dominant computer programming language). "Source code" just
means a computer program as typed in and edited by some hacker. If
it's in C, the file name will probably have .c or .cpp on the end of
it, depending on which dialect was used; if it's in some other
language it will have some other suffix. Frequently these sorts of
files can be found in a directory with the name /src which is the
hacker's Hebraic abbreviation of "source."
Source files are useless to your computer, and of little interest to
most users, but they are of gigantic cultural and political
significance, because Microsoft and Apple keep them secret while
Linux makes them public. They are the family jewels. They are the
sort of thing that in Hollywood thrillers is used as a McGuffin: the
plutonium bomb core, the top-secret blueprints, the suitcase of
bearer bonds, the reel of microfilm. If the source files for Windows
or MacOS were made public on the Net, then those OSes would become
free, like Linux--only not as good, because no one would be around
to fix bugs and answer questions. Linux is "open source" software
meaning, simply, that anyone can get copies of its source code
files.
Your computer doesn't want source code any more than you do; it
wants object code. Object code files typically have the suffix .o
and are unreadable all but a few, highly strange humans, because
they consist of ones and zeroes. Accordingly, this sort of file
commonly shows up in a directory with the name /bin, for "binary."
Source files are simply ASCII text files. ASCII denotes a particular
way of encoding letters into bit patterns. In an ASCII file, each
character has eight bits all to itself. This creates a potential
"alphabet" of 256 distinct characters, in that eight binary digits
can form that many unique patterns. In practice, of course, we tend
to limit ourselves to the familiar letters and digits. The
bit-patterns used to represent those letters and digits are the same
ones that were physically punched into the paper tape by my high
school teletype, which in turn were the same one used by the
telegraph industry for decades previously. ASCII text files, in
other words, are telegrams, and as such they have no typographical
frills. But for the same reason they are eternal, because the code
never changes, and universal, because every text editing and word
processing software ever written knows about this code.
Therefore just about any software can be used to create, edit, and
read source code files. Object code files, then, are created from
these source files by a piece of software called a compiler, and
forged into a working application by another piece of software
called a linker.
The triad of editor, compiler, and linker, taken together, form the
core of a software development system. Now, it is possible to spend
a lot of money on shrink-wrapped development systems with lovely
graphical user interfaces and various ergonomic enhancements. In
some cases it might even be a good and reasonable way to spend
money. But on this side of the road, as it were, the very best
software is usually the free stuff. Editor, compiler and linker are
to hackers what ponies, stirrups, and archery sets were to the
Mongols. Hackers live in the saddle, and hack on their own tools
even while they are using them to create new applications. It is
quite inconceivable that superior hacking tools could have been
created from a blank sheet of paper by product engineers. Even if
they are the brightest engineers in the world they are simply
outnumbered.
In the GNU/Linux world there are two major text editing programs:
the minimalist vi (known in some implementations as elvis) and the
maximalist emacs. I use emacs, which might be thought of as a
thermonuclear word processor. It was created by Richard Stallman;
enough said. It is written in Lisp, which is the only computer
language that is beautiful. It is colossal, and yet it only edits
straight ASCII text files, which is to say, no fonts, no boldface,
no underlining. In other words, the engineer-hours that, in the case
of Microsoft Word, were devoted to features like mail merge, and the
ability to embed feature-length motion pictures in corporate
memoranda, were, in the case of emacs, focused with maniacal
intensity on the deceptively simple-seeming problem of editing text.
If you are a professional writer--i.e., if someone else is getting
paid to worry about how your words are formatted and printed--emacs
outshines all other editing software in approximately the same way
that the noonday sun does the stars. It is not just bigger and
brighter; it simply makes everything else vanish. For page layout
and printing you can use TeX: a vast corpus of typesetting lore
written in C and also available on the Net for free.
I could say a lot about emacs and TeX, but right now I am trying to
tell a story about how to actually install Linux on your machine.
The hard-core survivalist approach would be to download an editor
like emacs, and the GNU Tools--the compiler and linker--which are
polished and excellent to the same degree as emacs. Equipped with
these, one would be able to start downloading ASCII source code
files (/src) and compiling them into binary object code files (/bin)
that would run on the machine. But in order to even arrive at this
point--to get emacs running, for example--you have to have Linux
actually up and running on your machine. And even a minimal Linux
operating system requires thousands of binary files all acting in
concert, and arranged and linked together just so.
Several entities have therefore taken it upon themselves to create
"distributions" of Linux. If I may extend the Egypt analogy
slightly, these entities are a bit like tour guides who meet you at
the airport, who speak your language, and who help guide you through
the initial culture shock. If you are an Egyptian, of course, you
see it the other way; tour guides exist to keep brutish outlanders
from traipsing through your mosques and asking you the same
questions over and over and over again.
Some of these tour guides are commercial organizations, such as Red
Hat Software, which makes a Linux distribution called Red Hat that
has a relatively commercial sheen to it. In most cases you put a Red
Hat CD-ROM into your PC and reboot and it handles the rest. Just as
a tour guide in Egypt will expect some sort of compensation for his
services, commercial distributions need to be paid for. In most
cases they cost almost nothing and are well worth it.
I use a distribution called Debian (the word is a contraction of
"Deborah" and "Ian") which is non-commercial. It is organized (or
perhaps I should say "it has organized itself") along the same lines
as Linux in general, which is to say that it consists of volunteers
who collaborate over the Net, each responsible for looking after a
different chunk of the system. These people have broken Linux down
into a number of packages, which are compressed files that can be
downloaded to an already functioning Debian Linux system, then
opened up and unpacked using a free installer application. Of
course, as such, Debian has no commercial arm--no distribution
mechanism. You can download all Debian packages over the Net, but
most people will want to have them on a CD-ROM. Several different
companies have taken it upon themselves to decoct all of the current
Debian packages onto CD-ROMs and then sell them. I buy mine from
Linux Systems Labs. The cost for a three-disc set, containing Debian
in its entirety, is less than three dollars. But (and this is an
important distinction) not a single penny of that three dollars is
going to any of the coders who created Linux, nor to the Debian
packagers. It goes to Linux Systems Labs and it pays, not for the
software, or the packages, but for the cost of stamping out the
CD-ROMs.
Every Linux distribution embodies some more or less clever hack for
circumventing the normal boot process and causing your computer,
when it is turned on, to organize itself, not as a PC running
Windows, but as a "host" running Unix. This is slightly alarming the
first time you see it, but completely harmless. When a PC boots up,
it goes through a little self-test routine, taking an inventory of
available disks and memory, and then begins looking around for a
disk to boot up from. In any normal Windows computer that disk will
be a hard drive. But if you have your system configured right, it
will look first for a floppy or CD-ROM disk, and boot from that if
one is available.
Linux exploits this chink in the defenses. Your computer notices a
bootable disk in the floppy or CD-ROM drive, loads in some object
code from that disk, and blindly begins to execute it. But this is
not Microsoft or Apple code, this is Linux code, and so at this
point your computer begins to behave very differently from what you
are accustomed to. Cryptic messages began to scroll up the screen.
If you had booted a commercial OS, you would, at this point, be
seeing a "Welcome to MacOS" cartoon, or a screen filled with clouds
in a blue sky, and a Windows logo. But under Linux you get a long
telegram printed in stark white letters on a black screen. There is
no "welcome!" message. Most of the telegram has the semi-inscrutable
menace of graffiti tags.
Dec 14 15:04:15 theRev syslogd 1.3-3#17: restart.
Dec 14 15:04:15 theRev kernel: klogd 1.3-3, log source = /proc/kmsg started.
Dec 14 15:04:15 theRev kernel: Loaded 3535 symbols from /System.map.
Dec 14 15:04:15 theRev kernel: Symbols match kernel version 2.0.30. Dec 14 15:04
:15 theRev kernel: No module symbols loaded.
Dec 14 15:04:15 theRev kernel: Intel MultiProcessor Specification v1.4
Dec 14 15:04:15 theRev kernel: Virtual Wire compatibility mode.
Dec 14 15:04:15 theRev kernel: OEM ID: INTEL Product ID: 440FX APIC at: 0xFEE000
00
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 (ma
x 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 0x
fdba1
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 NE
T3.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 except
ion 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 d
elay 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 5
7
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, C
HS=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 th
e University of California
Dec 15 11:58:06 theRev kernel: PPP Dynamic channel allocation code copyright 199
5 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 chan
nels, 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 interfa
ce.
Dec 15 11:58:06 theRev kernel: Enabling bus-master transmits and whole-frame rec
eives.
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, run
ning 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.o
ptions: No such file or directory
Dec 15 11:58:09 theRev diald[87]: No device specified. You must have at least on
e device!
Dec 15 11:58:09 theRev diald[87]: You must define a connector script (option 'co
nnect').
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 (C) 1999 by Neal Stephenson
.