In the Beginning was the Command Line
    
    by Neal Stephenson
    
    
    About twenty years ago Jobs and Wozniak, the founders
    of Apple, came up with the very strange idea of selling
    information processing machines for use in the home. The
    business took off, and its founders made a lot of money
    and received the credit they deserved for being daring
    visionaries. But around the same time, Bill Gates and
    Paul Allen came up with an idea even stranger and more
    fantastical: selling computer operating systems. This
    was much weirder than the idea of Jobs and Wozniak. A
    computer at least had some sort of physical reality to
    it. It came in a box, you could open it up and plug it
    in and watch lights blink. An operating system had no
    tangible incarnation at all. It arrived on a disk, of
    course, but the disk was, in effect, nothing more than
    the box that the OS came in. The product itself was a
    very long string of ones and zeroes that, when properly
    installed and coddled, gave you the ability to manipulate
    other very long strings of ones and zeroes. Even those
    few who actually understood what a computer operating
    system was were apt to think of it as a fantastically
    arcane engineering prodigy, like a breeder reactor or
    a U-2 spy plane, and not something that could ever be
    (in the parlance of high-tech) "productized."
    
    Yet now the company that Gates and Allen founded is
    selling operating systems like Gillette sells razor
    blades. New releases of operating systems are launched
    as if they were Hollywood blockbusters, with celebrity
    endorsements, talk show appearances, and world tours. The
    market for them is vast enough that people worry about
    whether it has been monopolized by one company. Even the
    least technically-minded people in our society now have
    at least a hazy idea of what operating systems do; what
    is more, they have strong opinions about their relative
    merits. It is commonly understood, even by technically
    unsophisticated computer users, that if you have a piece
    of software that works on your Macintosh, and you move
    it over onto a Windows machine, it will not run. That
    this would, in fact, be a laughable and idiotic mistake,
    like nailing horseshoes to the tires of a Buick.
    
    A person who went into a coma before Microsoft was founded,
    and woke up now, could pick up this morning's New York
    Times and understand everything in it--almost:
    
    
    Item: the richest man in the world made his fortune
    from-what? Railways? Shipping? Oil? No, operating
    systems. Item: the Department of Justice is tackling
    Microsoft's supposed OS monopoly with legal tools that
    were invented to restrain the power of Nineteenth-Century
    robber barons. Item: a woman friend of mine recently told
    me that she'd broken off a (hitherto) stimulating exchange
    of e-mail with a young man. At first he had seemed like
    such an intelligent and interesting guy, she said, but then
    "he started going all PC-versus-Mac on me."
    
    What the hell is going on here? And does the operating
    system business have a future, or only a past? Here is my
    view, which is entirely subjective; but since I have spent
    a fair amount of time not only using, but programming,
    Macintoshes, Windows machines, Linux boxes and the BeOS,
    perhaps it is not so ill-informed as to be completely
    worthless. This is a subjective essay, more review than
    research paper, and so it might seem unfair or biased
    compared to the technical reviews you can find in PC
    magazines. But ever since the Mac came out, our operating
    systems have been based on metaphors, and anything with
    metaphors in it is fair game as far as I'm concerned.
    
    
    MGBs, TANKS, AND BATMOBILES
    
    Around the time that Jobs, Wozniak, Gates, and Allen
    were dreaming up these unlikely schemes, I was a teenager
    living in Ames, Iowa. One of my friends' dads had an old
    MGB sports car rusting away in his garage. Sometimes he
    would actually manage to get it running and then he would
    take us for a spin around the block, with a memorable look
    of wild youthful exhiliration on his face; to his worried
    passengers, he was a madman, stalling and backfiring
    around Ames, Iowa and eating the dust of rusty Gremlins
    and Pintos, but in his own mind he was Dustin Hoffman
    tooling across the Bay Bridge with the wind in his hair.
    
    In retrospect, this was telling me two things about
    people's relationship to technology. One was that romance
    and image go a long way towards shaping their opinions. If
    you doubt it (and if you have a lot of spare time on your
    hands) just ask anyone who owns a Macintosh and who, on
    those grounds, imagines him- or herself to be a member of
    an oppressed minority group.
    
    The other, somewhat subtler point, was that interface
    is very important. Sure, the MGB was a lousy car in
    almost every way that counted: balky, unreliable,
    underpowered. But it was fun to drive. It was
    responsive. Every pebble on the road was felt in the
    bones, every nuance in the pavement transmitted instantly
    to the driver's hands. He could listen to the engine
    and tell what was wrong with it. The steering responded
    immediately to commands from his hands. To us passengers
    it was a pointless exercise in going nowhere--about as
    interesting as peering over someone's shoulder while he
    punches numbers into a spreadsheet. But to the driver it
    was an experience. For a short time he was extending his
    body and his senses into a larger realm, and doing things
    that he couldn't do unassisted.
    
    The analogy between cars and operating systems is not half
    bad, and so let me run with it for a moment, as a way of
    giving an executive summary of our situation today.
    
    Imagine a crossroads where four competing auto dealerships
    are situated. One of them (Microsoft) is much, much
    bigger than the others. It started out years ago selling
    three-speed bicycles (MS-DOS); these were not perfect,
    but they worked, and when they broke you could easily fix
    them.
    
    There was a competing bicycle dealership next door (Apple)
    that one day began selling motorized vehicles--expensive
    but attractively styled cars with their innards
    hermetically sealed, so that how they worked was something
    of a mystery.
    
    The big dealership responded by rushing a moped upgrade
    kit (the original Windows) onto the market. This was
    a Rube Goldberg contraption that, when bolted onto a
    three-speed bicycle, enabled it to keep up, just barely,
    with Apple-cars. The users had to wear goggles and were
    always picking bugs out of their teeth while Apple owners
    sped along in hermetically sealed comfort, sneering out
    the windows. But the Micro-mopeds were cheap, and easy to
    fix compared with the Apple-cars, and their market share
    waxed.
    
    Eventually the big dealership came out with a full-fledged
    car: a colossal station wagon (Windows 95). It had all
    the aesthetic appeal of a Soviet worker housing block,
    it leaked oil and blew gaskets, and it was an enormous
    success. A little later, they also came out with a hulking
    off-road vehicle intended for industrial users (Windows
    NT) which was no more beautiful than the station wagon,
    and only a little more reliable.
    
    Since then there has been a lot of noise and shouting,
    but little has changed. The smaller dealership continues
    to sell sleek Euro-styled sedans and to spend a lot of
    money on advertising campaigns. They have had GOING OUT
    OF BUSINESS! signs taped up in their windows for so long
    that they have gotten all yellow and curly. The big one
    keeps making bigger and bigger station wagons and ORVs.
    
    On the other side of the road are two competitors that
    have come along more recently.
    
    One of them (Be, Inc.) is selling fully operational
    Batmobiles (the BeOS). They are more beautiful and
    stylish even than the Euro-sedans, better designed,
    more technologically advanced, and at least as reliable
    as anything else on the market--and yet cheaper than the
    others.
    
    With one exception, that is: Linux, which is right next
    door, and which is not a business at all. It's a bunch of
    RVs, yurts, tepees, and geodesic domes set up in a field
    and organized by consensus. The people who live there are
    making tanks. These are not old-fashioned, cast-iron Soviet
    tanks; these are more like the M1 tanks of the U.S. Army,
    made of space-age materials and jammed with sophisticated
    technology from one end to the other. But they are better
    than Army tanks. They've been modified in such a way that
    they never, ever break down, are light and maneuverable
    enough to use on ordinary streets, and use no more fuel
    than a subcompact car. These tanks are being cranked out,
    on the spot, at a terrific pace, and a vast number of them
    are lined up along the edge of the road with keys in the
    ignition. Anyone who wants can simply climb into one and
    drive it away for free.
    
    Customers come to this crossroads in throngs, day
    and night. Ninety percent of them go straight to the
    biggest dealership and buy station wagons or off-road
    vehicles. They do not even look at the other dealerships.
    
    Of the remaining ten percent, most go and buy a sleek
    Euro-sedan, pausing only to turn up their noses at the
    philistines going to buy the station wagons and ORVs. If
    they even notice the people on the opposite side of the
    road, selling the cheaper, technically superior vehicles,
    these customers deride them cranks and half-wits.
    
    The Batmobile outlet sells a few vehicles to the occasional
    car nut who wants a second vehicle to go with his station
    wagon, but seems to accept, at least for now, that it's
    a fringe player.
    
    The group giving away the free tanks only stays alive
    because it is staffed by volunteers, who are lined up at
    the edge of the street with bullhorns, trying to draw
    customers' attention to this incredible situation. A
    typical conversation goes something like this:
    
    Hacker with bullhorn: "Save your money! Accept one of our
    free tanks! It is invulnerable, and can drive across rocks
    and swamps at ninety miles an hour while getting a hundred
    miles to the gallon!"
    
    Prospective station wagon buyer: "I know what you say is
    true...but...er...I don't know how to maintain a tank!"
    
    Bullhorn: "You don't know how to maintain a station wagon
    either!"
    
    Buyer: "But this dealership has mechanics on staff. If
    something goes wrong with my station wagon, I can take a
    day off work, bring it here, and pay them to work on it
    while I sit in the waiting room for hours, listening to
    elevator music."
    
    Bullhorn: "But if you accept one of our free tanks we will
    send volunteers to your house to fix it for free while
    you sleep!"
    
    Buyer: "Stay away from my house, you freak!"
    
    Bullhorn: "But..."
    
    Buyer: "Can't you see that everyone is buying station
    wagons?"
    
    
    BIT-FLINGER
    
    
    The connection between cars, and ways of interacting with
    computers, wouldn't have occurred to me at the time I was
    being taken for rides in that MGB. I had signed up to take
    a computer programming class at Ames High School. After
    a few introductory lectures, we students were granted
    admission into a tiny room containing a teletype, a
    telephone, and an old-fashioned modem consisting of a
    metal box with a pair of rubber cups on the top (note:
    many readers, making their way through that last sentence,
    probably felt an initial pang of dread that this essay was
    about to turn into a tedious, codgerly reminiscence about
    how tough we had it back in the old days; rest assured that
    I am actually positioning my pieces on the chessboard, as
    it were, in preparation to make a point about truly hip and
    up-to-the minute topics like Open Source Software). The
    teletype was exactly the same sort of machine that had
    been used, for decades, to send and receive telegrams. It
    was basically a loud typewriter that could only produce
    UPPERCASE LETTERS. Mounted to one side of it was a smaller
    machine with a long reel of paper tape on it, and a clear
    plastic hopper underneath.
    
    In order to connect this device (which was not a computer
    at all) to the Iowa State University mainframe across
    town, you would pick up the phone, dial the computer's
    number, listen for strange noises, and then slam the
    handset down into the rubber cups. If your aim was true,
    one would wrap its neoprene lips around the earpiece and
    the other around the mouthpiece, consummating a kind of
    informational soixante-neuf.  The teletype would shudder
    as it was possessed by the spirit of the distant mainframe,
    and begin to hammer out cryptic messages.
    
    Since computer time was a scarce resource, we used a
    sort of batch processing technique. Before dialing the
    phone, we would turn on the tape puncher (a subsidiary
    machine bolted to the side of the teletype) and type in
    our programs. Each time we depressed a key, the teletype
    would bash out a letter on the paper in front of us,
    so we could read what we'd typed; but at the same time
    it would convert the letter into a set of eight binary
    digits, or bits, and punch a corresponding pattern of
    holes across the width of a paper tape. The tiny disks
    of paper knocked out of the tape would flutter down into
    the clear plastic hopper, which would slowly fill up what
    can only be described as actual bits. On the last day of
    the school year, the smartest kid in the class (not me)
    jumped out from behind his desk and flung several quarts
    of these bits over the head of our teacher, like confetti,
    as a sort of semi-affectionate practical joke. The image
    of this man sitting there, gripped in the opening stages
    of an atavistic fight-or-flight reaction, with millions of
    bits (megabytes) sifting down out of his hair and into his
    nostrils and mouth, his face gradually turning purple as
    he built up to an explosion, is the single most memorable
    scene from my formal education.
    
    Anyway, it will have been obvious that my interaction
    with the computer was of an extremely formal nature,
    being sharply divided up into different phases, viz.: (1)
    sitting at home with paper and pencil, miles and miles from
    any computer, I would think very, very hard about what I
    wanted the computer to do, and translate my intentions into
    a computer language--a series of alphanumeric symbols on a
    page. (2) I would carry this across a sort of informational
    cordon sanitaire (three miles of snowdrifts) to school and
    type those letters into a machine--not a computer--which
    would convert the symbols into binary numbers and record
    them visibly on a tape. (3) Then, through the rubber-cup
    modem, I would cause those numbers to be sent to the
    university mainframe, which would (4) do arithmetic on
    them and send different numbers back to the teletype. (5)
    The teletype would convert these numbers back into letters
    and hammer them out on a page and (6) I, watching, would
    construe the letters as meaningful symbols.
    
    The division of responsibilities implied by all of this
    is admirably clean: computers do arithmetic on bits of
    information. Humans construe the bits as meaningful
    symbols. But this distinction is now being blurred,
    or at least complicated, by the advent of modern
    operating systems that use, and frequently abuse,
    the power of metaphor to make computers accessible to a
    larger audience. Along the way--possibly because of those
    metaphors, which make an operating system a sort of work
    of art--people start to get emotional, and grow attached
    to pieces of software in the way that my friend's dad did
    to his MGB.
    
    People who have only interacted with computers
    through graphical user interfaces like the MacOS or
    Windows--which is to say, almost everyone who has ever used
    a computer--may have been startled, or at least bemused, to
    hear about the telegraph machine that I used to communicate
    with a computer in 1973. But there was, and is, a good
    reason for using this particular kind of technology. Human
    beings have various ways of communicating to each other,
    such as music, art, dance, and facial expressions, but some
    of these are more amenable than others to being expressed
    as strings of symbols. Written language is the easiest
    of all, because, of course, it consists of strings of
    symbols to begin with. If the symbols happen to belong
    to a phonetic alphabet (as opposed to, say, ideograms),
    converting them into bits is a trivial procedure, and one
    that was nailed, technologically, in the early nineteenth
    century, with the introduction of Morse code and other
    forms of telegraphy.
    
    We had a human/computer interface a hundred years before
    we had computers. When computers came into being around
    the time of the Second World War, humans, quite naturally,
    communicated with them by simply grafting them on to the
    already-existing technologies for translating letters into
    bits and vice versa: teletypes and punch card machines.
    
    These embodied two fundamentally different approaches
    to computing. When you were using cards, you'd punch a
    whole stack of them and run them through the reader all at
    once, which was called batch processing. You could also
    do batch processing with a teletype, as I have already
    described, by using the paper tape reader, and we were
    certainly encouraged to use this approach when I was in
    high school. But--though efforts were made to keep us
    unaware of this--the teletype could do something that the
    card reader could not. On the teletype, once the modem
    link was established, you could just type in a line and
    hit the return key. The teletype would send that line
    to the computer, which might or might not respond with
    some lines of its own, which the teletype would hammer
    out--producing, over time, a transcript of your exchange
    with the machine. This way of doing it did not even have
    a name at the time, but when, much later, an alternative
    became available, it was retroactively dubbed the Command
    Line Interface.
    
    When I moved on to college, I did my computing in large,
    stifling rooms where scores of students would sit in front
    of slightly updated versions of the same machines and
    write computer programs: these used dot-matrix printing
    mechanisms, but were (from the computer's point of view)
    identical to the old teletypes. By that point, computers
    were better at time-sharing--that is, mainframes were
    still mainframes, but they were better at communicating
    with a large number of terminals at once. Consequently,
    it was no longer necessary to use batch processing. Card
    readers were shoved out into hallways and boiler rooms,
    and batch processing became a nerds-only kind of thing, and
    consequently took on a certain eldritch flavor among those
    of us who even knew it existed. We were all off the Batch,
    and on the Command Line, interface now--my very first
    shift in operating system paradigms, if only I'd known it.
    
    A huge stack of accordion-fold paper sat on the floor
    underneath each one of these glorified teletypes, and
    miles of paper shuddered through their platens. Almost
    all of this paper was thrown away or recycled without
    ever having been touched by ink--an ecological atrocity
    so glaring that those machines soon replaced by video
    terminals--so-called "glass teletypes"--which were quieter
    and didn't waste paper. Again, though, from the computer's
    point of view these were indistinguishable from World War
    II-era teletype machines. In effect we still used Victorian
    technology to communicate with computers until about 1984,
    when the Macintosh was introduced with its Graphical User
    Interface. Even after that, the Command Line continued
    to exist as an underlying stratum--a sort of brainstem
    reflex--of many modern computer systems all through the
    heyday of Graphical User Interfaces, or GUIs as I will
    call them from now on.
    
    
    GUIs
    
    
    Now the first job that any coder needs to do when
    writing a new piece of software is to figure out how
    to take the information that is being worked with (in a
    graphics program, an image; in a spreadsheet, a grid of
    numbers) and turn it into a linear string of bytes. These
    strings of bytes are commonly called files or (somewhat
    more hiply) streams. They are to telegrams what modern
    humans are to Cro-Magnon man, which is to say the same
    thing under a different name. All that you see on your
    computer screen--your Tomb Raider, your digitized voice
    mail messages, faxes, and word processing documents
    written in thirty-seven different typefaces--is still,
    from the computer's point of view, just like telegrams,
    except much longer, and demanding of more arithmetic.
    
    The quickest way to get a taste of this is to fire up
    your web browser, visit a site, and then select the
    View/Document Source menu item. You will get a bunch of
    computer code that looks something like this:
    
    <html> 
    
    <head> 
    
    <title>Shift Online</title> 
    <meta name="DESCRIPTION" 
    content="This is Shift Online,...."> 
    <meta name="KEYWORDS" 
    content="Shift Online's homepage, homepage of Shift Online, Shift Magazine, Shift TV, 
             Behaviour, Behaviour, Shift Online, Shift Magazine, ..."> 
    
    </head> 
    
    <frameset rows="80, *" frameborder="0" framespacing="0" 
    border="0"> 
        <frame name="top" src="../html/core_top.html" noresize 
        scrolling="no" marginwidth="0" marginheight="0" 
        frameborder="0" framespacing="0"> 
    
        <frame name="bottom" src="core_java.html" noresize 
        scrolling="yes" marginwidth="0" marginheight="0" 
        frameborder="0" framespacing="0"> 
    </frameset> 
      
    
    This crud is called HTML (HyperText Markup Language) and it
    is basically a very simple programming language instructing
    your web browser how to draw a page on a screen. Anyone
    can learn HTML and many people do. The important thing
    is that no matter what splendid multimedia web pages they
    might represent, HTML files are just telegrams.
    
    When Ronald Reagan was a radio announcer, he used to call
    baseball games by reading the terse descriptions that
    trickled in over the telegraph wire and were printed out
    on a paper tape. He would sit there, all by himself in a
    padded room with a microphone, and the paper tape would
    eke out of the machine and crawl over the palm of his hand
    printed with cryptic abbreviations. If the count went to
    three and two, Reagan would describe the scene as he saw it
    in his mind's eye: "The brawny left-hander steps out of the
    batter's box to wipe the sweat from his brow. The umpire
    steps forward to sweep the dirt from home plate." and so
    on. When the cryptogram on the paper tape announced a base
    hit, he would whack the edge of the table with a pencil,
    creating a little sound effect, and describe the arc of
    the ball as if he could actually see it. His listeners,
    many of whom presumably thought that Reagan was actually
    at the ballpark watching the game, would reconstruct the
    scene in their minds according to his descriptions.
    
    This is exactly how the World Wide Web works: the HTML
    files are the pithy description on the paper tape, and
    your Web browser is Ronald Reagan. The same is true of
    Graphical User Interfaces in general.
    
    So an OS is a stack of metaphors and abstractions that
    stands between you and the telegrams, and embodying various
    tricks the programmer used to convert the information
    you're working with--be it images, e-mail messages,
    movies, or word processing documents--into the necklaces of
    bytes that are the only things computers know how to work
    with. When we used actual telegraph equipment (teletypes)
    or their higher-tech substitutes ("glass teletypes,"
    or the MS-DOS command line) to work with our computers,
    we were very close to the bottom of that stack. When we
    use most modern operating systems, though, our interaction
    with the machine is heavily mediated. Everything we do is
    interpreted and translated time and again as it works its
    way down through all of the metaphors and abstractions.
    
    The Macintosh OS was a revolution in both the good and bad
    senses of that word. Obviously it was true that command
    line interfaces were not for everyone, and that it would be
    a good thing to make computers more accessible to a less
    technical audience--if not for altruistic reasons, then
    because those sorts of people constituted an incomparably
    vaster market. It was clear the the Mac's engineers saw a
    whole new country stretching out before them; you could
    almost hear them muttering, "Wow! We don't have to be
    bound by files as linear streams of bytes anymore, vive la
    revolution, let's see how far we can take this!" No command
    line interface was available on the Macintosh; you talked
    to it with the mouse, or not at all. This was a statement
    of sorts, a credential of revolutionary purity. It seemed
    that the designers of the Mac intended to sweep Command
    Line Interfaces into the dustbin of history.
    
    My own personal love affair with the Macintosh began in
    the spring of 1984 in a computer store in Cedar Rapids,
    Iowa, when a friend of mine--coincidentally, the son of
    the MGB owner--showed me a Macintosh running MacPaint,
    the revolutionary drawing program. It ended in July of
    1995 when I tried to save a big important file on my
    Macintosh Powerbook and instead instead of doing so, it
    annihilated the data so thoroughly that two different disk
    crash utility programs were unable to find any trace that
    it had ever existed. During the intervening ten years,
    I had a passion for the MacOS that seemed righteous and
    reasonable at the time but in retrospect strikes me as
    being exactly the same sort of goofy infatuation that my
    friend's dad had with his car.
    
    The introduction of the Mac triggered a sort of holy
    war in the computer world. Were GUIs a brilliant design
    innovation that made computers more human-centered and
    therefore accessible to the masses, leading us toward an
    unprecedented revolution in human society, or an insulting
    bit of audiovisual gimcrackery dreamed up by flaky Bay
    Area hacker types that stripped computers of their power
    and flexibility and turned the noble and serious work of
    computing into a childish video game?
    
    This debate actually seems more interesting to me today
    than it did in the mid-1980s. But people more or less
    stopped debating it when Microsoft endorsed the idea of
    GUIs by coming out with the first Windows. At this point,
    command-line partisans were relegated to the status of
    silly old grouches, and a new conflict was touched off,
    between users of MacOS and users of Windows.
    
    There was plenty to argue about. The first Macintoshes
    looked different from other PCs even when they were
    turned off: they consisted of one box containing both CPU
    (the part of the computer that does arithmetic on bits)
    and monitor screen. This was billed, at the time, as a
    philosophical statement of sorts: Apple wanted to make the
    personal computer into an appliance, like a toaster. But
    it also reflected the purely technical demands of running
    a graphical user interface. In a GUI machine, the chips
    that draw things on the screen have to be integrated
    with the computer's central processing unit, or CPU, to
    a far greater extent than is the case with command-line
    interfaces, which until recently didn't even know that
    they weren't just talking to teletypes.
    
    This distinction was of a technical and abstract nature,
    but it became clearer when the machine crashed (it
    is commonly the case with technologies that you can
    get the best insight about how they work by watching
    them fail). When everything went to hell and the CPU
    began spewing out random bits, the result, on a CLI
    machine, was lines and lines of perfectly formed but
    random characters on the screen--known to cognoscenti as
    "going Cyrillic." But to the MacOS, the screen was not a
    teletype, but a place to put graphics; the image on the
    screen was a bitmap, a literal rendering of the contents
    of a particular portion of the computer's memory. When
    the computer crashed and wrote gibberish into the bitmap,
    the result was something that looked vaguely like static
    on a broken television set--a "snow crash."
    
    And even after the introduction of Windows, the underlying
    differences endured; when a Windows machine got into
    trouble, the old command-line interface would fall down
    over the GUI like an asbestos fire curtain sealing off
    the proscenium of a burning opera. When a Macintosh got
    into trouble it presented you with a cartoon of a bomb,
    which was funny the first time you saw it.
    
    And these were by no means superficial differences. The
    reversion of Windows to a CLI when it was in distress
    proved to Mac partisans that Windows was nothing more
    than a cheap facade, like a garish afghan flung over
    a rotted-out sofa. They were disturbed and annoyed by
    the sense that lurking underneath Windows' ostensibly
    user-friendly interface was--literally--a subtext.
    
    For their part, Windows fans might have made the sour
    observation that all computers, even Macintoshes, were
    built on that same subtext, and that the refusal of Mac
    owners to admit that fact to themselves seemed to signal
    a willingness, almost an eagerness, to be duped.
    
    Anyway, a Macintosh had to switch individual bits in the
    memory chips on the video card, and it had to do it very
    fast, and in arbitrarily complicated patterns. Nowadays
    this is cheap and easy, but in the technological regime
    that prevailed in the early 1980s, the only realistic way
    to do it was to build the motherboard (which contained
    the CPU) and the video system (which contained the memory
    that was mapped onto the screen) as a tightly integrated
    whole--hence the single, hermetically sealed case that
    made the Macintosh so distinctive.
    
    When Windows came out, it was conspicuous for its ugliness,
    and its current successors, Windows 95 and Windows NT,
    are not things that people would pay money to look at
    either. Microsoft's complete disregard for aesthetics
    gave all of us Mac-lovers plenty of opportunities to look
    down our noses at them. That Windows looked an awful lot
    like a direct ripoff of MacOS gave us a burning sense
    of moral outrage to go with it. Among people who really
    knew and appreciated computers (hackers, in Steven Levy's
    non-pejorative sense of that word) and in a few other
    niches such as professional musicians, graphic artists and
    schoolteachers, the Macintosh, for a while, was simply
    the computer. It was seen as not only a superb piece of
    engineering, but an embodiment of certain ideals about the
    use of technology to benefit mankind, while Windows was
    seen as a pathetically clumsy imitation and a sinister
    world domination plot rolled into one. So very early,
    a pattern had been established that endures to this day:
    people dislike Microsoft, which is okay; but they dislike
    it for reasons that are poorly considered, and in the end,
    self-defeating.
    
    
    CLASS STRUGGLE ON THE DESKTOP
    
    Now that the Third Rail has been firmly grasped, it is
    worth reviewing some basic facts here: like any other
    publicly traded, for-profit corporation, Microsoft has,
    in effect, borrowed a bunch of money from some people
    (its stockholders) in order to be in the bit business. As
    an officer of that corporation, Bill Gates has one
    responsibility only, which is to maximize return on
    investment. He has done this incredibly well. Any actions
    taken in the world by Microsoft-any software released by
    them, for example--are basically epiphenomena, which can't
    be interpreted or understood except insofar as they reflect
    Bill Gates's execution of his one and only responsibility.
    
    It follows that if Microsoft sells goods that are
    aesthetically unappealing, or that don't work very well, it
    does not mean that they are (respectively) philistines or
    half-wits. It is because Microsoft's excellent management
    has figured out that they can make more money for their
    stockholders by releasing stuff with obvious, known
    imperfections than they can by making it beautiful or
    bug-free. This is annoying, but (in the end) not half so
    annoying as watching Apple inscrutably and relentlessly
    destroy itself.
    
    Hostility towards Microsoft is not difficult to find on
    the Net, and it blends two strains: resentful people who
    feel Microsoft is too powerful, and disdainful people who
    think it's tacky. This is all strongly reminiscent of the
    heyday of Communism and Socialism, when the bourgeoisie
    were hated from both ends: by the proles, because they
    had all the money, and by the intelligentsia, because of
    their tendency to spend it on lawn ornaments. Microsoft is
    the very embodiment of modern high-tech prosperity--it is,
    in a word, bourgeois--and so it attracts all of the same
    gripes.
    
    The opening "splash screen" for Microsoft Word 6.0 summed
    it up pretty neatly: when you started up the program
    you were treated to a picture of an expensive enamel pen
    lying across a couple of sheets of fancy-looking handmade
    writing paper. It was obviously a bid to make the software
    look classy, and it might have worked for some, but it
    failed for me, because the pen was a ballpoint, and I'm a
    fountain pen man. If Apple had done it, they would've used
    a Mont Blanc fountain pen, or maybe a Chinese calligraphy
    brush. And I doubt that this was an accident. Recently
    I spent a while re-installing Windows NT on one of my
    home computers, and many times had to double-click on the
    "Control Panel" icon. For reasons that are difficult to
    fathom, this icon consists of a picture of a clawhammer and
    a chisel or screwdriver resting on top of a file folder.
    
    These aesthetic gaffes give one an almost uncontrollable
    urge to make fun of Microsoft, but again, it is all beside
    the point--if Microsoft had done focus group testing of
    possible alternative graphics, they probably would have
    found that the average mid-level office worker associated
    fountain pens with effete upper management toffs and was
    more comfortable with ballpoints. Likewise, the regular
    guys, the balding dads of the world who probably bear the
    brunt of setting up and maintaining home computers, can
    probably relate better to a picture of a clawhammer--while
    perhaps harboring fantasies of taking a real one to their
    balky computers.
    
    This is the only way I can explain certain peculiar
    facts about the current market for operating systems,
    such as that ninety percent of all customers continue to
    buy station wagons off the Microsoft lot while free tanks
    are there for the taking, right across the street.
    
    A string of ones and zeroes was not a difficult thing for
    Bill Gates to distribute, one he'd thought of the idea. The
    hard part was selling it--reassuring customers that they
    were actually getting something in return for their money.
    
    Anyone who has ever bought a piece of software in a
    store has had the curiously deflating experience of
    taking the bright shrink-wrapped box home, tearing it
    open, finding that it's 95 percent air, throwing away
    all the little cards, party favors, and bits of trash,
    and loading the disk into the computer. The end result
    (after you've lost the disk) is nothing except some images
    on a computer screen, and some capabilities that weren't
    there before. Sometimes you don't even have that--you
    have a string of error messages instead. But your money
    is definitely gone. Now we are almost accustomed to
    this, but twenty years ago it was a very dicey business
    proposition. Bill Gates made it work anyway. He didn't
    make it work by selling the best software or offering the
    cheapest price. Instead he somehow got people to believe
    that they were receiving something in exchange for their
    money.
    
    The streets of every city in the world are filled with
    those hulking, rattling station wagons. Anyone who doesn't
    own one feels a little weird, and wonders, in spite of
    himself, whether it might not be time to cease resistance
    and buy one; anyone who does, feels confident that he has
    acquired some meaningful possession, even on those days
    when the vehicle is up on a lift in an auto repair shop.
    
    All of this is perfectly congruent with membership in
    the bourgeoisie, which is as much a mental, as a material
    state. And it explains why Microsoft is regularly attacked,
    on the Net, from both sides. People who are inclined to
    feel poor and oppressed construe everything Microsoft does
    as some sinister Orwellian plot. People who like to think
    of themselves as intelligent and informed technology users
    are driven crazy by the clunkiness of Windows.
    
    Nothing is more annoying to sophisticated people to
    see someone who is rich enough to know better being
    tacky--unless it is to realize, a moment later, that they
    probably know they are tacky and they simply don't care and
    they are going to go on being tacky, and rich, and happy,
    forever. Microsoft therefore bears the same relationship
    to the Silicon Valley elite as the Beverly Hillbillies
    did to their fussy banker, Mr. Drysdale--who is irritated
    not so much by the fact that the Clampetts moved to his
    neighborhood as by the knowledge that, when Jethro is
    seventy years old, he's still going to be talking like a
    hillbilly and wearing bib overalls, and he's still going
    to be a lot richer than Mr. Drysdale.
    
    Even the hardware that Windows ran on, when compared to
    the machines put out by Apple, looked like white-trash
    stuff, and still mostly does. The reason was that Apple
    was and is a hardware company, while Microsoft was and
    is a software company. Apple therefore had a monopoly on
    hardware that could run MacOS, whereas Windows-compatible
    hardware came out of a free market. The free market seems
    to have decided that people will not pay for cool-looking
    computers; PC hardware makers who hire designers to make
    their stuff look distinctive get their clocks cleaned
    by Taiwanese clone makers punching out boxes that look
    as if they belong on cinderblocks in front of someone's
    trailer. But Apple could make their hardware as pretty as
    they wanted to and simply pass the higher prices on to
    their besotted consumers, like me. Only last week (I am
    writing this sentence in early Jan. 1999) the technology
    sections of all the newspapers were filled with adulatory
    press coverage of how Apple had released the iMac in
    several happenin' new colors like Blueberry and Tangerine.
    
    Apple has always insisted on having a hardware monopoly,
    except for a brief period in the mid-1990s when they
    allowed clone-makers to compete with them, before
    subsequently putting them out of business. Macintosh
    hardware was, consequently, expensive. You didn't open it
    up and fool around with it because doing so would void the
    warranty. In fact the first Mac was specifically designed
    to be difficult to open--you needed a kit of exotic tools,
    which you could buy through little ads that began to appear
    in the back pages of magazines a few months after the Mac
    came out on the market. These ads always had a certain
    disreputable air about them, like pitches for lock-picking
    tools in the backs of lurid detective magazines.
    
    This monopolistic policy can be explained in at least
    three different ways.
    
    THE CHARITABLE EXPLANATION is that the hardware monopoly
    policy reflected a drive on Apple's part to provide a
    seamless, unified blending of hardware, operating system,
    and software. There is something to this. It is hard enough
    to make an OS that works well on one specific piece of
    hardware, designed and tested by engineers who work down
    the hallway from you, in the same company. Making an OS
    to work on arbitrary pieces of hardware, cranked out by
    rabidly entrepeneurial clonemakers on the other side of the
    International Date Line, is very difficult, and accounts
    for much of the troubles people have using Windows.
    
    THE FINANCIAL EXPLANATION is that Apple, unlike Microsoft,
    is and always has been a hardware company. It simply
    depends on revenue from selling hardware, and cannot exist
    without it.
    
    THE NOT-SO-CHARITABLE EXPLANATION has to do with Apple's
    corporate culture, which is rooted in Bay Area Baby
    Boomdom.
    
    Now, since I'm going to talk for a moment about culture,
    full disclosure is probably in order, to protect myself
    against allegations of conflict of interest and ethical
    turpitude: (1) Geographically I am a Seattleite, of
    a Saturnine temperament, and inclined to take a sour
    view of the Dionysian Bay Area, just as they tend to be
    annoyed and appalled by us. (2) Chronologically I am a
    post-Baby Boomer. I feel that way, at least, because I
    never experienced the fun and exciting parts of the whole
    Boomer scene--just spent a lot of time dutifully chuckling
    at Boomers' maddeningly pointless anecdotes about just
    how stoned they got on various occasions, and politely
    fielding their assertions about how great their music
    was. But even from this remove it was possible to glean
    certain patterns, and one that recurred as regularly as
    an urban legend was the one about how someone would move
    into a commune populated by sandal-wearing, peace-sign
    flashing flower children, and eventually discover that,
    underneath this facade, the guys who ran it were actually
    control freaks; and that, as living in a commune, where
    much lip service was paid to ideals of peace, love and
    harmony, had deprived them of normal, socially approved
    outlets for their control-freakdom, it tended to come out
    in other, invariably more sinister, ways.
    
    Applying this to the case of Apple Computer will be left
    as an exercise for the reader, and not a very difficult
    exercise.
    
    It is a bit unsettling, at first, to think of Apple as
    a control freak, because it is completely at odds with
    their corporate image. Weren't these the guys who aired
    the famous Super Bowl ads showing suited, blindfolded
    executives marching like lemmings off a cliff? Isn't this
    the company that even now runs ads picturing the Dalai
    Lama (except in Hong Kong) and Einstein and other offbeat
    rebels?
    
    It is indeed the same company, and the fact that they
    have been able to plant this image of themselves as
    creative and rebellious free-thinkers in the minds of
    so many intelligent and media-hardened skeptics really
    gives one pause. It is testimony to the insidious power
    of expensive slick ad campaigns and, perhaps, to a certain
    amount of wishful thinking in the minds of people who fall
    for them. It also raises the question of why Microsoft
    is so bad at PR, when the history of Apple demonstrates
    that, by writing large checks to good ad agencies, you
    can plant a corporate image in the minds of intelligent
    people that is completely at odds with reality. (The
    answer, for people who don't like Damoclean questions,
    is that since Microsoft has won the hearts and minds of
    the silent majority--the bourgeoisie--they don't give a
    damn about having a slick image, any more then Dick Nixon
    did. "I want to believe,"--the mantra that Fox Mulder
    has pinned to his office wall in The X-Files--applies in
    different ways to these two companies; Mac partisans want
    to believe in the image of Apple purveyed in those ads,
    and in the notion that Macs are somehow fundamentally
    different from other computers, while Windows people want
    to believe that they are getting something for their money,
    engaging in a respectable business transaction).
    
    In any event, as of 1987, both MacOS and Windows were out
    on the market, running on hardware platforms that were
    radically different from each other--not only in the
    sense that MacOS used Motorola CPU chips while Windows
    used Intel, but in the sense--then overlooked, but in the
    long run, vastly more significant--that the Apple hardware
    business was a rigid monopoly and the Windows side was a
    churning free-for-all.
    
    But the full ramifications of this did not become clear
    until very recently--in fact, they are still unfolding,
    in remarkably strange ways, as I'll explain when we get to
    Linux. The upshot is that millions of people got accustomed
    to using GUIs in one form or another. By doing so, they
    made Apple/Microsoft a lot of money. The fortunes of many
    people have become bound up with the ability of these
    companies to continue selling products whose salability
    is very much open to question.
    
    
    HONEY-POT, TAR-PIT, WHATEVER
    
    
    When Gates and Allen invented the idea of selling software,
    they ran into criticism from both hackers and sober-sided
    businesspeople. Hackers understood that software was just
    information, and objected to the idea of selling it. These
    objections were partly moral. The hackers were coming out
    of the scientific and academic world where it is imperative
    to make the results of one's work freely available to
    the public. They were also partly practical; how can you
    sell something that can be easily copied? Businesspeople,
    who are polar opposites of hackers in so many ways, had
    objections of their own. Accustomed to selling toasters and
    insurance policies, they naturally had a difficult time
    understanding how a long collection of ones and zeroes
    could constitute a salable product.
    
    Obviously Microsoft prevailed over these objections, and
    so did Apple. But the objections still exist. The most
    hackerish of all the hackers, the Ur-hacker as it were,
    was and is Richard Stallman, who became so annoyed with
    the evil practice of selling software that, in 1984 (the
    same year that the Macintosh went on sale) he went off and
    founded something called the Free Software Foundation,
    which commenced work on something called GNU. Gnu is an
    acronym for Gnu's Not Unix, but this is a joke in more ways
    than one, because GNU most certainly IS Unix,. Because of
    trademark concerns ("Unix" is trademarked by AT&T) they
    simply could not claim that it was Unix, and so, just to
    be extra safe, they claimed that it wasn't. Notwithstanding
    the incomparable talent and drive possessed by Mr. Stallman
    and other GNU adherents, their project to build a free
    Unix to compete against Microsoft and Apple's OSes was
    a little bit like trying to dig a subway system with a
    teaspoon. Until, that is, the advent of Linux, which I
    will get to later.
    
    But the basic idea of re-creating an operating system from
    scratch was perfectly sound and completely doable. It has
    been done many times. It is inherent in the very nature
    of operating systems.
    
    Operating systems are not strictly necessary. There is no
    reason why a sufficiently dedicated coder could not start
    from nothing with every project and write fresh code to
    handle such basic, low-level operations as controlling
    the read/write heads on the disk drives and lighting up
    pixels on the screen. The very first computers had to be
    programmed in this way. But since nearly every program
    needs to carry out those same basic operations, this
    approach would lead to vast duplication of effort.
    
    Nothing is more disagreeable to the hacker than duplication
    of effort. The first and most important mental habit
    that people develop when they learn how to write computer
    programs is to generalize, generalize, generalize. To make
    their code as modular and flexible as possible, breaking
    large problems down into small subroutines that can be used
    over and over again in different contexts. Consequently,
    the development of operating systems, despite being
    technically unnecessary, was inevitable. Because at its
    heart, an operating system is nothing more than a library
    containing the most commonly used code, written once (and
    hopefully written well) and then made available to every
    coder who needs it.
    
    So a proprietary, closed, secret operating system is a
    contradiction in terms. It goes against the whole point
    of having an operating system. And it is impossible to
    keep them secret anyway. The source code--the original
    lines of text written by the programmers--can be kept
    secret. But an OS as a whole is a collection of small
    subroutines that do very specific, very clearly defined
    jobs. Exactly what those subroutines do has to be made
    public, quite explicitly and exactly, or else the OS is
    completely useless to programmers; they can't make use
    of those subroutines if they don't have a complete and
    perfect understanding of what the subroutines do.
    
    The only thing that isn't made public is exactly how the
    subroutines do what they do. But once you know what a
    subroutine does, it's generally quite easy (if you are
    a hacker) to write one of your own that does exactly the
    same thing. It might take a while, and it is tedious and
    unrewarding, but in most cases it's not really hard.
    
    What's hard, in hacking as in fiction, is not writing;
    it's deciding what to write. And the vendors of commercial
    OSes have already decided, and published their decisions.
    
    This has been generally understood for a long time. MS-DOS
    was duplicated, functionally, by a rival product,
    written from scratch, called ProDOS, that did all of the
    same things in pretty much the same way. In other words,
    another company was able to write code that did all of the
    same things as MS-DOS and sell it at a profit. If you are
    using the Linux OS, you can get a free program called WINE
    which is a windows emulator; that is, you can open up a
    window on your desktop that runs windows programs. It means
    that a completely functional Windows OS has been recreated
    inside of Unix, like a ship in a bottle. And Unix itself,
    which is vastly more sophisticated than MS-DOS, has been
    built up from scratch many times over. Versions of it are
    sold by Sun, Hewlett-Packard, AT&T, Silicon Graphics, IBM,
    and others.
    
    People have, in other words, been re-writing basic OS code
    for so long that all of the technology that constituted an
    "operating system" in the traditional (pre-GUI) sense of
    that phrase is now so cheap and common that it's literally
    free. Not only could Gates and Allen not sell MS-DOS
    today, they could not even give it away, because much
    more powerful OSes are already being given away. Even the
    original Windows (which was the only windows until 1995)
    has become worthless, in that there is no point in owning
    something that can be emulated inside of Linux--which is,
    itself, free.
    
    In this way the OS business is very different from,
    say, the car business. Even an old rundown car has some
    value. You can use it for making runs to the dump, or
    strip it for parts. It is the fate of manufactured goods
    to slowly and gently depreciate as they get old and have
    to compete against more modern products.
    
    But it is the fate of operating systems to become free.
    
    Microsoft is a great software applications
    company. Applications--such as Microsoft Word--are an area
    where innovation brings real, direct, tangible benefits to
    users. The innovations might be new technology straight
    from the research department, or they might be in the
    category of bells and whistles, but in any event they are
    frequently useful and they seem to make users happy. And
    Microsoft is in the process of becoming a great research
    company. But Microsoft is not such a great operating
    systems company. And this is not necessarily because
    their operating systems are all that bad from a purely
    technological standpoint. Microsoft's OSes do have their
    problems, sure, but they are vastly better than they used
    to be, and they are adequate for most people.
    
    Why, then, do I say that Microsoft is not such a great
    operating systems company? Because the very nature of
    operating systems is such that it is senseless for them
    to be developed and owned by a specific company. It's
    a thankless job to begin with. Applications create
    possibilities for millions of credulous users, whereas
    OSes impose limitations on thousands of grumpy coders,
    and so OS-makers will forever be on the shit-list
    of anyone who counts for anything in the high-tech
    world. Applications get used by people whose big problem
    is understanding all of their features, whereas OSes get
    hacked by coders who are annoyed by their limitations. The
    OS business has been good to Microsoft only insofar as it
    has given them the money they needed to launch a really
    good applications software business and to hire a lot of
    smart researchers. Now it really ought to be jettisoned,
    like a spent booster stage from a rocket. The big question
    is whether Microsoft is capable of doing this. Or is it
    addicted to OS sales in the same way as Apple is to selling
    hardware?
    
    Keep in mind that Apple's ability to monopolize its own
    hardware supply was once cited, by learned observers, as
    a great advantage over Microsoft. At the time, it seemed
    to place them in a much stronger position. In the end, it
    nearly killed them, and may kill them yet. The problem, for
    Apple, was that most of the world's computer users ended
    up owning cheaper hardware. But cheap hardware couldn't
    run MacOS, and so these people switched to Windows.
    
    Replace "hardware" with "operating systems," and "Apple"
    with "Microsoft" and you can see the same thing about to
    happen all over again. Microsoft dominates the OS market,
    which makes them money and seems like a great idea for
    now. But cheaper and better OSes are available, and they
    are growingly popular in parts of the world that are not
    so saturated with computers as the US. Ten years from now,
    most of the world's computer users may end up owning these
    cheaper OSes. But these OSes do not, for the time being,
    run any Microsoft applications, and so these people will
    use something else.
    
    To put it more directly: every time someone decides to use
    a non-Microsoft OS, Microsoft's OS division, obviously,
    loses a customer. But, as things stand now, Microsoft's
    applications division loses a customer too. This is not
    such a big deal as long as almost everyone uses Microsoft
    OSes. But as soon as Windows' market share begins to slip,
    the math starts to look pretty dismal for the people in
    Redmond.
    
    This argument could be countered by saying that
    Microsoft could simply re-compile its applications to run
    under other OSes. But this strategy goes against most
    normal corporate instincts. Again the case of Apple is
    instructive. When things started to go south for Apple,
    they should have ported their OS to cheap PC hardware. But
    they didn't. Instead, they tried to make the most of their
    brilliant hardware, adding new features and expanding
    the product line. But this only had the effect of making
    their OS more dependent on these special hardware features,
    which made it worse for them in the end.
    
    Likewise, when Microsoft's position in the OS world is
    threatened, their corporate instincts will tell them to
    pile more new features into their operating systems, and
    then re-jigger their software applications to exploit those
    special features. But this will only have the effect of
    making their applications dependent on an OS with declining
    market share, and make it worse for them in the end.
    
    The operating system market is a death-trap, a tar-pit,
    a slough of despond. There are only two reasons to invest
    in Apple and Microsoft. (1) each of these companies is
    in what we would call a co-dependency relationship with
    their customers. The customers Want To Believe, and Apple
    and Microsoft know how to give them what they want. (2)
    each company works very hard to add new features to their
    OSes, which works to secure customer loyalty, at least
    for a little while.
    
    Accordingly, most of the remainder of this essay will be
    about those two topics.
    
    THE TECHNOSPHERE
    
    Unix is the only OS remaining whose GUI (a vast suite of
    code called the X Windows System) is separate from the OS
    in the old sense of the phrase. This is to say that you can
    run Unix in pure command-line mode if you want to, with no
    windows, icons, mouses, etc. whatsoever, and it will still
    be Unix and capable of doing everything Unix is supposed
    to do. But the other OSes: MacOS, the Windows family, and
    BeOS, have their GUIs tangled up with the old-fashioned OS
    functions to the extent that they have to run in GUI mode,
    or else they are not really running. So it's no longer
    really possible to think of GUIs as being distinct from
    the OS; they're now an inextricable part of the OSes that
    they belong to--and they are by far the largest part, and
    by far the most expensive and difficult part to create.
    
    There are only two ways to sell a product: price and
    features. When OSes are free, OS companies cannot compete
    on price, and so they compete on features. This means that
    they are always trying to outdo each other writing code
    that, until recently, was not considered to be part of an
    OS at all: stuff like GUIs. This explains a lot about how
    these companies behave.
    
    It explains why Microsoft added a browser to their OS,
    for example. It is easy to get free browsers, just as to
    get free OSes. If browsers are free, and OSes are free,
    it would seem that there is no way to make money from
    browsers or OSes. But if you can integrate a browser into
    the OS and thereby imbue both of them with new features,
    you have a salable product.
    
    Setting aside, for the moment, the fact that this makes
    government anti-trust lawyers really mad, this strategy
    makes sense. At least, it makes sense if you assume (as
    Microsoft's management appears to) that the OS has to
    be protected at all costs. The real question is whether
    every new technological trend that comes down the pike
    ought to be used as a crutch to maintain the OS's dominant
    position. Confronted with the Web phenomenon, Microsoft
    had to develop a really good web browser, and they did. But
    then they had a choice: they could have made that browser
    work on many different OSes, which would give Microsoft
    a strong position in the Internet world no matter what
    happened to their OS market share. Or they could make the
    browser one with the OS, gambling that this would make the
    OS look so modern and sexy that it would help to preserve
    their dominance in that market. The problem is that when
    Microsoft's OS position begins to erode (and since it is
    currently at something like ninety percent, it can't go
    anywhere but down) it will drag everything else down with
    it.
    
    In your high school geology class you probably were taught
    that all life on earth exists in a paper-thin shell called
    the biosphere, which is trapped between thousands of
    miles of dead rock underfoot, and cold dead radioactive
    empty space above. Companies that sell OSes exist in a
    sort of technosphere. Underneath is technology that has
    already become free. Above is technology that has yet
    to be developed, or that is too crazy and speculative
    to be productized just yet. Like the Earth's biosphere,
    the technosphere is very thin compared to what is above
    and what is below.
    
    But it moves a lot faster. In various parts of our world,
    it is possible to go and visit rich fossil beds where
    skeleton lies piled upon skeleton, recent ones on top
    and more ancient ones below. In theory they go all the
    way back to the first single-celled organisms. And if
    you use your imagination a bit, you can understand that,
    if you hang around long enough, you'll become fossilized
    there too, and in time some more advanced organism will
    become fossilized on top of you.
    
    The fossil record--the La Brea Tar Pit--of software
    technology is the Internet. Anything that shows up
    there is free for the taking (possibly illegal, but
    free). Executives at companies like Microsoft must get used
    to the experience--unthinkable in other industries--of
    throwing millions of dollars into the development of new
    technologies, such as Web browsers, and then seeing the
    same or equivalent software show up on the Internet two
    years, or a year, or even just a few months, later.
    
    By continuing to develop new technologies and add features
    onto their products they can keep one step ahead of the
    fossilization process, but on certain days they must feel
    like mammoths caught at La Brea, using all their energies
    to pull their feet, over and over again, out of the sucking
    hot tar that wants to cover and envelop them.
    
    Survival in this biosphere demands sharp tusks and heavy,
    stomping feet at one end of the organization, and Microsoft
    famously has those. But trampling the other mammoths
    into the tar can only keep you alive for so long. The
    danger is that in their obsession with staying out of
    the fossil beds, these companies will forget about what
    lies above the biosphere: the realm of new technology. In
    other words, they must hang onto their primitive weapons
    and crude competitive instincts, but also evolve powerful
    brains. This appears to be what Microsoft is doing with its
    research division, which has been hiring smart people right
    and left (Here I should mention that although I know, and
    socialize with, several people in that company's research
    division, we never talk about business issues and I have
    little to no idea what the hell they are up to. I have
    learned much more about Microsoft by using the Linux
    operating system than I ever would have done by using
    Windows).
    
    Never mind how Microsoft used to make money;
    today, it is making its money on a kind of temporal
    arbitrage. "Arbitrage," in the usual sense, means to make
    money by taking advantage of differences in the price of
    something between different markets. It is spatial, in
    other words, and hinges on the arbitrageur knowing what
    is going on simultaneously in different places. Microsoft
    is making money by taking advantage of differences in the
    price of technology in different times. Temporal arbitrage,
    if I may coin a phrase, hinges on the arbitrageur knowing
    what technologies people will pay money for next year, and
    how soon afterwards those same technologies will become
    free. What spatial and temporal arbitrage have in common
    is that both hinge on the arbitrageur's being extremely
    well-informed; one about price gradients across space at a
    given time, and the other about price gradients over time
    in a given place.
    
    So Apple/Microsoft shower new features upon their users
    almost daily, in the hopes that a steady stream of
    genuine technical innovations, combined with the "I want
    to believe" phenomenon, will prevent their customers from
    looking across the road towards the cheaper and better OSes
    that are available to them. The question is whether this
    makes sense in the long run. If Microsoft is addicted to
    OSes as Apple is to hardware, then they will bet the whole
    farm on their OSes, and tie all of their new applications
    and technologies to them. Their continued survival will
    then depend on these two things: adding more features
    to their OSes so that customers will not switch to the
    cheaper alternatives, and maintaining the image that,
    in some mysterious way, gives those customers the feeling
    that they are getting something for their money.
    
    The latter is a truly strange and interesting cultural
    phenomenon.
    
    THE INTERFACE CULTURE
    
    
    A few years ago I walked into a grocery store somewhere and
    was presented with the following tableau vivant: near the
    entrance a young couple were standing in front of a large
    cosmetics display. The man was stolidly holding a shopping
    basket between his hands while his mate raked blister-packs
    of makeup off the display and piled them in. Since then
    I've always thought of that man as the personification of
    an interesting human tendency: not only are we not offended
    to be dazzled by manufactured images, but we like it. We
    practically insist on it. We are eager to be complicit in
    our own dazzlement: to pay money for a theme park ride,
    vote for a guy who's obviously lying to us, or stand there
    holding the basket as it's filled up with cosmetics.
    
    I was in Disney World recently, specifically the part
    of it called the Magic Kingdom, walking up Main Street
    USA. This is a perfect gingerbready Victorian small town
    that culminates in a Disney castle. It was very crowded;
    we shuffled rather than walked. Directly in front of me
    was a man with a camcorder. It was one of the new breed of
    camcorders where instead of peering through a viewfinder
    you gaze at a flat-panel color screen about the size of
    a playing card, which televises live coverage of whatever
    the camcorder is seeing. He was holding the appliance close
    to his face, so that it obstructed his view. Rather than
    go see a real small town for free, he had paid money to
    see a pretend one, and rather than see it with the naked
    eye he was watching it on television.
    
    And rather than stay home and read a book, I was watching
    him.
    
    Americans' preference for mediated experiences is obvious
    enough, and I'm not going to keep pounding it into
    the ground. I'm not even going to make snotty comments
    about it--after all, I was at Disney World as a paying
    customer. But it clearly relates to the colossal success
    of GUIs and so I have to talk about it some. Disney does
    mediated experiences better than anyone. If they understood
    what OSes are, and why people use them, they could crush
    Microsoft in a year or two.
    
    In the part of Disney World called the Animal Kingdom there
    is a new attraction, slated to open in March 1999, called
    the Maharajah Jungle Trek. It was open for sneak previews
    when I was there. This is a complete stone-by-stone
    reproduction of a hypothetical ruin in the jungles of
    India. According to its backstory, it was built by a local
    rajah in the 16th Century as a game reserve. He would go
    there with his princely guests to hunt Bengal tigers. As
    time went on it fell into disrepair and the tigers and
    monkeys took it over; eventually, around the time of
    India's independence, it became a government wildlife
    reserve, now open to visitors.
    
    The place looks more like what I have just described than
    any actual building you might find in India. All the stones
    in the broken walls are weathered as if monsoon rains
    had been trickling down them for centuries, the paint
    on the gorgeous murals is flaked and faded just so, and
    Bengal tigers loll amid stumps of broken columns. Where
    modern repairs have been made to the ancient structure,
    they've been done, not as Disney's engineers would do
    them, but as thrifty Indian janitors would--with hunks
    of bamboo and rust-spotted hunks of rebar. The rust is
    painted on, or course, and protected from real rust by
    a plastic clear-coat, but you can't tell unless you get
    down on your knees.
    
    In one place you walk along a stone wall with a series
    of old pitted friezes carved into it. One end of the
    wall has broken off and settled into the earth, perhaps
    because of some long-forgotten earthquake, and so a broad
    jagged crack runs across a panel or two, but the story
    is still readable: first, primordial chaos leads to a
    flourishing of many animal species. Next, we see the Tree
    of Life surrounded by diverse animals. This is an obvious
    allusion (or, in showbiz lingo, a tie-in) to the gigantic
    Tree of Life that dominates the center of Disney's Animal
    Kingdom just as the Castle dominates the Magic Kingdom or
    the Sphere does Epcot. But it's rendered in historically
    correct style and could probably fool anyone who didn't
    have a Ph.D. in Indian art history.
    
    The next panel shows a mustachioed H. sapiens chopping
    down the Tree of Life with a scimitar, and the animals
    fleeing every which way. The one after that shows the
    misguided human getting walloped by a tidal wave, part of a
    latter-day Deluge presumably brought on by his stupidity.
    
    The final panel, then, portrays the Sapling of Life
    beginning to grow back, but now Man has ditched the edged
    weapon and joined the other animals in standing around to
    adore and praise it.
    
    It is, in other words, a prophecy of the Bottleneck:
    the scenario, commonly espoused among modern-day
    environmentalists, that the world faces an upcoming period
    of grave ecological tribulations that will last for a few
    decades or centuries and end when we find a new harmonious
    modus vivendi with Nature.
    
    Taken as a whole the frieze is a pretty brilliant piece
    of work. Obviously it's not an ancient Indian ruin, and
    some person or people now living deserve credit for it. But
    there are no signatures on the Maharajah's game reserve at
    Disney World. There are no signatures on anything, because
    it would ruin the whole effect to have long strings of
    production credits dangling from every custom-worn brick,
    as they do from Hollywood movies.
    
    Among Hollywood writers, Disney has the reputation of
    being a real wicked stepmother. It's not hard to see
    why. Disney is in the business of putting out a product
    of seamless illusion--a magic mirror that reflects the
    world back better than it really is. But a writer is
    literally talking to his or her readers, not just creating
    an ambience or presenting them with something to look at;
    and just as the command-line interface opens a much more
    direct and explicit channel from user to machine than the
    GUI, so it is with words, writer, and reader.
    
    The word, in the end, is the only system of encoding
    thoughts--the only medium--that is not fungible, that
    refuses to dissolve in the devouring torrent of electronic
    media (the richer tourists at Disney World wear t-shirts
    printed with the names of famous designers, because designs
    themselves can be bootlegged easily and with impunity. The
    only way to make clothing that cannot be legally bootlegged
    is to print copyrighted and trademarked words on it; once
    you have taken that step, the clothing itself doesn't
    really matter, and so a t-shirt is as good as anything
    else. T-shirts with expensive words on them are now the
    insignia of the upper class. T-shirts with cheap words,
    or no words at all, are for the commoners).
    
    But this special quality of words and of written
    communication would have the same effect on Disney's
    product as spray-painted graffiti on a magic mirror. So
    Disney does most of its communication without resorting to
    words, and for the most part, the words aren't missed. Some
    of Disney's older properties, such as Peter Pan, Winnie the
    Pooh, and Alice in Wonderland, came out of books. But the
    authors' names are rarely if ever mentioned, and you can't
    buy the original books at the Disney store. If you could,
    they would all seem old and queer, like very bad knockoffs
    of the purer, more authentic Disney versions. Compared
    to more recent productions like Beauty and the Beast and
    Mulan, the Disney movies based on these books (particularly
    Alice in Wonderland and Peter Pan) seem deeply bizarre, and
    not wholly appropriate for children. That stands to reason,
    because Lewis Carroll and J.M. Barrie were very strange
    men, and such is the nature of the written word that their
    personal strangeness shines straight through all the layers
    of Disneyfication like x-rays through a wall. Probably
    for this very reason, Disney seems to have stopped buying
    books altogether, and now finds its themes and characters
    in folk tales, which have the lapidary, time-worn quality
    of the ancient bricks in the Maharajah's ruins.
    
    If I can risk a broad generalization, most of the people
    who go to Disney World have zero interest in absorbing
    new ideas from books. Which sounds snide, but listen:
    they have no qualms about being presented with ideas in
    other forms. Disney World is stuffed with environmental
    messages now, and the guides at Animal Kingdom can talk
    your ear off about biology.
    
    If you followed those tourists home, you might find art,
    but it would be the sort of unsigned folk art that's for
    sale in Disney World's African- and Asian-themed stores. In
    general they only seem comfortable with media that have
    been ratified by great age, massive popular acceptance,
    or both.
    
    In this world, artists are like the anonymous, illiterate
    stone carvers who built the great cathedrals of Europe and
    then faded away into unmarked graves in the churchyard. The
    cathedral as a whole is awesome and stirring in spite,
    and possibly because, of the fact that we have no idea
    who built it. When we walk through it we are communing not
    with individual stone carvers but with an entire culture.
    
    Disney World works the same way. If you are an intellectual
    type, a reader or writer of books, the nicest thing you
    can say about this is that the execution is superb. But
    it's easy to find the whole environment a little creepy,
    because something is missing: the translation of all its
    content into clear explicit written words, the attribution
    of the ideas to specific people. You can't argue with
    it. It seems as if a hell of a lot might be being glossed
    over, as if Disney World might be putting one over on
    us, and possibly getting away with all kinds of buried
    assumptions and muddled thinking.
    
    But this is precisely the same as what is lost in the
    transition from the command-line interface to the GUI.
    
    Disney and Apple/Microsoft are in the same business:
    short-circuiting laborious, explicit verbal communication
    with expensively designed interfaces. Disney is a
    sort of user interface unto itself--and more than just
    graphical. Let's call it a Sensorial Interface. It can
    be applied to anything in the world, real or imagined,
    albeit at staggering expense.
    
    Why are we rejecting explicit word-based interfaces,
    and embracing graphical or sensorial ones--a trend that
    accounts for the success of both Microsoft and Disney?
    
    Part of it is simply that the world is very complicated
    now--much more complicated than the hunter-gatherer world
    that our brains evolved to cope with--and we simply can't
    handle all of the details. We have to delegate. We have
    no choice but to trust some nameless artist at Disney or
    programmer at Apple or Microsoft to make a few choices
    for us, close off some options, and give us a conveniently
    packaged executive summary.
    
    But more importantly, it comes out of the fact that, during
    this century, intellectualism failed, and everyone knows
    it. In places like Russia and Germany, the common people
    agreed to loosen their grip on traditional folkways, mores,
    and religion, and let the intellectuals run with the ball,
    and they screwed everything up and turned the century into
    an abbatoir. Those wordy intellectuals used to be merely
    tedious; now they seem kind of dangerous as well.
    
    We Americans are the only ones who didn't get creamed at
    some point during all of this. We are free and prosperous
    because we have inherited political and values systems
    fabricated by a particular set of eighteenth-century
    intellectuals who happened to get it right. But we have
    lost touch with those intellectuals, and with anything
    like intellectualism, even to the point of not reading
    books any more, though we are literate. We seem much
    more comfortable with propagating those values to future
    generations nonverbally, through a process of being
    steeped in media. Apparently this actually works to some
    degree, for police in many lands are now complaining that
    local arrestees are insisting on having their Miranda
    rights read to them, just like perps in American TV cop
    shows. When it's explained to them that they are in a
    different country, where those rights do not exist, they
    become outraged. Starsky and Hutch reruns, dubbed into
    diverse languages, may turn out, in the long run, to be
    a greater force for human rights than the Declaration of
    Independence.
    
    A huge, rich, nuclear-tipped culture that propagates
    its core values through media steepage seems like a
    bad idea. There is an obvious risk of running astray
    here. Words are the only immutable medium we have, which is
    why they are the vehicle of choice for extremely important
    concepts like the Ten Commandments, the Koran, and the
    Bill of Rights. Unless the messages conveyed by our media
    are somehow pegged to a fixed, written set of precepts,
    they can wander all over the place and possibly dump loads
    of crap into people's minds.
    
    Orlando used to have a military installation called McCoy
    Air Force Base, with long runways from which B-52s could
    take off and reach Cuba, or just about anywhere else,
    with loads of nukes. But now McCoy has been scrapped and
    repurposed. It has been absorbed into Orlando's civilian
    airport. The long runways are being used to land 747-loads
    of tourists from Brazil, Italy, Russia and Japan, so that
    they can come to Disney World and steep in our media for
    a while.
    
    To traditional cultures, especially word-based ones such as
    Islam, this is infinitely more threatening than the B-52s
    ever were. It is obvious, to everyone outside of the United
    States, that our arch-buzzwords, multiculturalism and
    diversity, are false fronts that are being used (in many
    cases unwittingly) to conceal a global trend to eradicate
    cultural differences. The basic tenet of multiculturalism
    (or "honoring diversity" or whatever you want to call it)
    is that people need to stop judging each other-to stop
    asserting (and, eventually, to stop believing) that this
    is right and that is wrong, this true and that false, one
    thing ugly and another thing beautiful, that God exists
    and has this or that set of qualities.
    
    The lesson most people are taking home from the Twentieth
    Century is that, in order for a large number of different
    cultures to coexist peacefully on the globe (or even in
    a neighborhood) it is necessary for people to suspend
    judgment in this way. Hence (I would argue) our suspicion
    of, and hostility towards, all authority figures in
    modern culture. As David Foster Wallace has explained
    in his essay "E Unibus Pluram," this is the fundamental
    message of television; it is the message that people take
    home, anyway, after they have steeped in our media long
    enough. It's not expressed in these highfalutin terms,
    of course. It comes through as the presumption that all
    authority figures--teachers, generals, cops, ministers,
    politicians--are hypocritical buffoons, and that hip jaded
    coolness is the only way to be.
    
    The problem is that once you have done away with the
    ability to make judgments as to right and wrong, true
    and false, etc., there's no real culture left. All that
    remains is clog dancing and macrame. The ability to make
    judgments, to believe things, is the entire it point of
    having a culture. I think this is why guys with machine
    guns sometimes pop up in places like Luxor, and begin
    pumping bullets into Westerners. They perfectly understand
    the lesson of McCoy Air Force Base. When their sons come
    home wearing Chicago Bulls caps with the bills turned
    sideways, the dads go out of their minds.
    
    The global anti-culture that has been conveyed into every
    cranny of the world by television is a culture unto itself,
    and by the standards of great and ancient cultures like
    Islam and France, it seems grossly inferior, at least at
    first. The only good thing you can say about it is that
    it makes world wars and Holocausts less likely--and that
    is actually a pretty good thing!
    
    The only real problem is that anyone who has no culture,
    other than this global monoculture, is completely
    screwed. Anyone who grows up watching TV, never sees
    any religion or philosophy, is raised in an atmosphere
    of moral relativism, learns about civics from watching
    bimbo eruptions on network TV news, and attends a
    university where postmodernists vie to outdo each other
    in demolishing traditional notions of truth and quality,
    is going to come out into the world as one pretty feckless
    human being. And--again--perhaps the goal of all this is
    to make us feckless so we won't nuke each other.
    
    On the other hand, if you are raised within some specific
    culture, you end up with a basic set of tools that you
    can use to think about and understand the world. You might
    use those tools to reject the culture you were raised in,
    but at least you've got some tools.
    
    In this country, the people who run things--who populate
    major law firms and corporate boards--understand
    all of this at some level. They pay lip service to
    multiculturalism and diversity and non-judgmentalness, but
    they don't raise their own children that way. I have highly
    educated, technically sophisticated friends who have moved
    to small towns in Iowa to live and raise their children,
    and there are Hasidic Jewish enclaves in New York where
    large numbers of kids are being brought up according
    to traditional beliefs. Any suburban community might
    be thought of as a place where people who hold certain
    (mostly implicit) beliefs go to live among others who
    think the same way.
    
    And not only do these people feel some responsibility to
    their own children, but to the country as a whole. Some
    of the upper class are vile and cynical, of course,
    but many spend at least part of their time fretting
    about what direction the country is going in, and what
    responsibilities they have. And so issues that are
    important to book-reading intellectuals, such as global
    environmental collapse, eventually percolate through the
    porous buffer of mass culture and show up as ancient Hindu
    ruins in Orlando.
    
    You may be asking: what the hell does all this have
    to do with operating systems? As I've explained, there
    is no way to explain the domination of the OS market by
    Apple/Microsoft without looking to cultural explanations,
    and so I can't get anywhere, in this essay, without
    first letting you know where I'm coming from vis-a-vis
    contemporary culture.
    
    Contemporary culture is a two-tiered system, like the
    Morlocks and the Eloi in H.G. Wells's The Time Machine,
    except that it's been turned upside down. In The Time
    Machine the Eloi were an effete upper class, supported by
    lots of subterranean Morlocks who kept the technological
    wheels turning. But in our world it's the other way
    round. The Morlocks are in the minority, and they are
    running the show, because they understand how everything
    works. The much more numerous Eloi learn everything they
    know from being steeped from birth in electronic media
    directed and controlled by book-reading Morlocks. So many
    ignorant people could be dangerous if they got pointed
    in the wrong direction, and so we've evolved a popular
    culture that is (a) almost unbelievably infectious and (b)
    neuters every person who gets infected by it, by rendering
    them unwilling to make judgments and incapable of taking
    stands.
    
    Morlocks, who have the energy and intelligence to
    comprehend details, go out and master complex subjects and
    produce Disney-like Sensorial Interfaces so that Eloi can
    get the gist without having to strain their minds or endure
    boredom. Those Morlocks will go to India and tediously
    explore a hundred ruins, then come home and built sanitary
    bug-free versions: highlight films, as it were. This
    costs a lot, because Morlocks insist on good coffee and
    first-class airline tickets, but that's no problem because
    Eloi like to be dazzled and will gladly pay for it all.
    
    Now I realize that most of this probably sounds snide
    and bitter to the point of absurdity: your basic snotty
    intellectual throwing a tantrum about those unlettered
    philistines. As if I were a self-styled Moses, coming down
    from the mountain all alone, carrying the stone tablets
    bearing the Ten Commandments carved in immutable stone--the
    original command-line interface--and blowing his stack at
    the weak, unenlightened Hebrews worshipping images. Not
    only that, but it sounds like I'm pumping some sort of
    conspiracy theory.
    
    But that is not where I'm going with this. The situation
    I describe, here, could be bad, but doesn't have to be
    bad and isn't necessarily bad now:
    
    
    It simply is the case that we are way too busy, nowadays,
    to comprehend everything in detail. And it's better
    to comprehend it dimly, through an interface, than
    not at all. Better for ten million Eloi to go on the
    Kilimanjaro Safari at Disney World than for a thousand
    cardiovascular surgeons and mutual fund managers to
    go on "real" ones in Kenya. The boundary between these
    two classes is more porous than I've made it sound. I'm
    always running into regular dudes--construction workers,
    auto mechanics, taxi drivers, galoots in general--who
    were largely aliterate until something made it necessary
    for them to become readers and start actually thinking
    about things. Perhaps they had to come to grips with
    alcoholism, perhaps they got sent to jail, or came down
    with a disease, or suffered a crisis in religious faith,
    or simply got bored. Such people can get up to speed
    on particular subjects quite rapidly. Sometimes their
    lack of a broad education makes them over-apt to go off
    on intellectual wild goose chases, but, hey, at least a
    wild goose chase gives you some exercise. The spectre of
    a polity controlled by the fads and whims of voters who
    actually believe that there are significant differences
    between Bud Lite and Miller Lite, and who think that
    professional wrestling is for real, is naturally alarming
    to people who don't. But then countries controlled via
    the command-line interface, as it were, by double-domed
    intellectuals, be they religious or secular, are generally
    miserable places to live. Sophisticated people deride
    Disneyesque entertainments as pat and saccharine, but,
    hey, if the result of that is to instill basically warm and
    sympathetic reflexes, at a preverbal level, into hundreds
    of millions of unlettered media-steepers, then how bad can
    it be? We killed a lobster in our kitchen last night and
    my daughter cried for an hour. The Japanese, who used to
    be just about the fiercest people on earth, have become
    infatuated with cuddly adorable cartoon characters. My
    own family--the people I know best--is divided about
    evenly between people who will probably read this essay
    and people who almost certainly won't, and I can't say
    for sure that one group is necessarily warmer, happier,
    or better-adjusted than the other.
    
    MORLOCKS AND ELOI AT THE KEYBOARD
    
    
    Back in the days of the command-line interface, users
    were all Morlocks who had to convert their thoughts into
    alphanumeric symbols and type them in, a grindingly tedious
    process that stripped away all ambiguity, laid bare all
    hidden assumptions, and cruelly punished laziness and
    imprecision. Then the interface-makers went to work on
    their GUIs, and introduced a new semiotic layer between
    people and machines. People who use such systems have
    abdicated the responsibility, and surrendered the power,
    of sending bits directly to the chip that's doing the
    arithmetic, and handed that responsibility and power
    over to the OS. This is tempting because giving clear
    instructions, to anyone or anything, is difficult. We
    cannot do it without thinking, and depending on the
    complexity of the situation, we may have to think
    hard about abstract things, and consider any number of
    ramifications, in order to do a good job of it. For most of
    us, this is hard work. We want things to be easier. How
    badly we want it can be measured by the size of Bill
    Gates's fortune.
    
    The OS has (therefore) become a sort of intellectual
    labor-saving device that tries to translate humans' vaguely
    expressed intentions into bits. In effect we are asking our
    computers to shoulder responsibilities that have always
    been considered the province of human beings--we want
    them to understand our desires, to anticipate our needs,
    to foresee consequences, to make connections, to handle
    routine chores without being asked, to remind us of what
    we ought to be reminded of while filtering out noise.
    
    At the upper (which is to say, closer to the user) levels,
    this is done through a set of conventions--menus, buttons,
    and so on. These work in the sense that analogies work:
    they help Eloi understand abstract or unfamiliar concepts
    by likening them to something known. But the loftier word
    "metaphor" is used.
    
    The overarching concept of the MacOS was the "desktop
    metaphor" and it subsumed any number of lesser (and
    frequently conflicting, or at least mixed) metaphors. Under
    a GUI, a file (frequently called "document") is
    metaphrased as a window on the screen (which is called
    a "desktop"). The window is almost always too small to
    contain the document and so you "move around," or, more
    pretentiously, "navigate" in the document by "clicking and
    dragging" the "thumb" on the "scroll bar." When you "type"
    (using a keyboard) or "draw" (using a "mouse") into the
    "window" or use pull-down "menus" and "dialog boxes"
    to manipulate its contents, the results of your labors
    get stored (at least in theory) in a "file," and later
    you can pull the same information back up into another
    "window." When you don't want it anymore, you "drag"
    it into the "trash."
    
    There is massively promiscuous metaphor-mixing going on
    here, and I could deconstruct it 'til the cows come home,
    but I won't. Consider only one word: "document." When
    we document something in the real world, we make fixed,
    permanent, immutable records of it. But computer documents
    are volatile, ephemeral constellations of data. Sometimes
    (as when you've just opened or saved them) the document as
    portrayed in the window is identical to what is stored,
    under the same name, in a file on the disk, but other
    times (as when you have made changes without saving them)
    it is completely different. In any case, every time you
    hit "Save" you annihilate the previous version of the
    "document" and replace it with whatever happens to be in
    the window at the moment. So even the word "save" is being
    used in a sense that is grotesquely misleading---"destroy
    one version, save another" would be more accurate.
    
    Anyone who uses a word processor for very long inevitably
    has the experience of putting hours of work into a long
    document and then losing it because the computer crashes
    or the power goes out. Until the moment that it disappears
    from the screen, the document seems every bit as solid
    and real as if it had been typed out in ink on paper. But
    in the next moment, without warning, it is completely and
    irretrievably gone, as if it had never existed. The user
    is left with a feeling of disorientation (to say nothing
    of annoyance) stemming from a kind of metaphor shear--you
    realize that you've been living and thinking inside of a
    metaphor that is essentially bogus.
    
    So GUIs use metaphors to make computing easier, but they
    are bad metaphors. Learning to use them is essentially
    a word game, a process of learning new definitions of
    words like "window" and "document" and "save" that are
    different from, and in many cases almost diametrically
    opposed to, the old. Somewhat improbably, this has worked
    very well, at least from a commercial standpoint, which
    is to say that Apple/Microsoft have made a lot of money
    off of it. All of the other modern operating systems have
    learned that in order to be accepted by users they must
    conceal their underlying gutwork beneath the same sort
    of spackle. This has some advantages: if you know how to
    use one GUI operating system, you can probably work out
    how to use any other in a few minutes. Everything works a
    little differently, like European plumbing--but with some
    fiddling around, you can type a memo or surf the web.
    
    Most people who shop for OSes (if they bother to shop at
    all) are comparing not the underlying functions but the
    superficial look and feel. The average buyer of an OS is
    not really paying for, and is not especially interested in,
    the low-level code that allocates memory or writes bytes
    onto the disk. What we're really buying is a system of
    metaphors. And--much more important--what we're buying
    into is the underlying assumption that metaphors are a
    good way to deal with the world.
    
    Recently a lot of new hardware has become available that
    gives computers numerous interesting ways of affecting
    the real world: making paper spew out of printers,
    causing words to appear on screens thousands of miles
    away, shooting beams of radiation through cancer patients,
    creating realistic moving pictures of the Titanic. Windows
    is now used as an OS for cash registers and bank tellers'
    terminals. My satellite TV system uses a sort of GUI
    to change channels and show program guides. Modern
    cellular telephones have a crude GUI built into a tiny LCD
    screen. Even Legos now have a GUI: you can buy a Lego set
    called Mindstorms that enables you to build little Lego
    robots and program them through a GUI on your computer.
    
    So we are now asking the GUI to do a lot more than serve as
    a glorified typewriter. Now we want to become a generalized
    tool for dealing with reality. This has become a bonanza
    for companies that make a living out of bringing new
    technology to the mass market.
    
    Obviously you cannot sell a complicated technological
    system to people without some sort of interface that
    enables them to use it. The internal combustion engine
    was a technological marvel in its day, but useless as a
    consumer good until a clutch, transmission, steering wheel
    and throttle were connected to it. That odd collection
    of gizmos, which survives to this day in every car
    on the road, made up what we would today call a user
    interface. But if cars had been invented after Macintoshes,
    carmakers would not have bothered to gin up all of these
    arcane devices. We would have a computer screen instead of
    a dashboard, and a mouse (or at best a joystick) instead
    of a steering wheel, and we'd shift gears by pulling down
    a menu:
    
    PARK --- REVERSE --- NEUTRAL ---- 3 2 1 --- Help...
    
    A few lines of computer code can thus be made to substitute
    for any imaginable mechanical interface. The problem is
    that in many cases the substitute is a poor one. Driving
    a car through a GUI would be a miserable experience. Even
    if the GUI were perfectly bug-free, it would be incredibly
    dangerous, because menus and buttons simply can't be as
    responsive as direct mechanical controls. My friend's dad,
    the gentleman who was restoring the MGB, never would have
    bothered with it if it had been equipped with a GUI. It
    wouldn't have been any fun.
    
    The steering wheel and gearshift lever were invented during
    an era when the most complicated technology in most homes
    was a butter churn. Those early carmakers were simply
    lucky, in that they could dream up whatever interface
    was best suited to the task of driving an automobile, and
    people would learn it. Likewise with the dial telephone
    and the AM radio. By the time of the Second World War,
    most people knew several interfaces: they could not only
    churn butter but also drive a car, dial a telephone,
    turn on a radio, summon flame from a cigarette lighter,
    and change a light bulb.
    
    But now every little thing--wristwatches, VCRs,
    stoves--is jammed with features, and every feature is
    useless without an interface. If you are like me, and
    like most other consumers, you have never used ninety
    percent of the available features on your microwave oven,
    VCR, or cellphone. You don't even know that these features
    exist. The small benefit they might bring you is outweighed
    by the sheer hassle of having to learn about them. This
    has got to be a big problem for makers of consumer goods,
    because they can't compete without offering features.
    
    It's no longer acceptable for engineers to invent a
    wholly novel user interface for every new product, as
    they did in the case of the automobile, partly because
    it's too expensive and partly because ordinary people can
    only learn so much. If the VCR had been invented a hundred
    years ago, it would have come with a thumbwheel to adjust
    the tracking and a gearshift to change between forward
    and reverse and a big cast-iron handle to load or to eject
    the cassettes. It would have had a big analog clock on the
    front of it, and you would have set the time by moving the
    hands around on the dial. But because the VCR was invented
    when it was--during a sort of awkward transitional period
    between the era of mechanical interfaces and GUIs--it just
    had a bunch of pushbuttons on the front, and in order
    to set the time you had to push the buttons in just the
    right way. This must have seemed reasonable enough to
    the engineers responsible for it, but to many users it
    was simply impossible. Thus the famous blinking 12:00
    that appears on so many VCRs. Computer people call this
    "the blinking twelve problem". When they talk about it,
    though, they usually aren't talking about VCRs.
    
    Modern VCRs usually have some kind of on-screen
    programming, which means that you can set the time and
    control other features through a sort of primitive
    GUI. GUIs have virtual pushbuttons too, of course,
    but they also have other types of virtual controls,
    like radio buttons, checkboxes, text entry boxes, dials,
    and scrollbars. Interfaces made out of these components
    seem to be a lot easier, for many people, than pushing
    those little buttons on the front of the machine, and
    so the blinking 12:00 itself is slowly disappearing from
    America's living rooms. The blinking twelve problem has
    moved on to plague other technologies.
    
    So the GUI has gone beyond being an interface to personal
    computers, and become a sort of meta-interface that
    is pressed into service for every new piece of consumer
    technology. It is rarely an ideal fit, but having an ideal,
    or even a good interface is no longer the priority; the
    important thing now is having some kind of interface that
    customers will actually use, so that manufacturers can
    claim, with a straight face, that they are offering new
    features.
    
    We want GUIs largely because they are convenient and
    because they are easy-- or at least the GUI makes it seem
    that way Of course, nothing is really easy and simple,
    and putting a nice interface on top of it does not change
    that fact. A car controlled through a GUI would be easier
    to drive than one controlled through pedals and steering
    wheel, but it would be incredibly dangerous.
    
    By using GUIs all the time we have insensibly bought into
    a premise that few people would have accepted if it were
    presented to them bluntly: namely, that hard things can
    be made easy, and complicated things simple, by putting
    the right interface on them. In order to understand how
    bizarre this is, imagine that book reviews were written
    according to the same values system that we apply to
    user interfaces: "The writing in this book is marvelously
    simple-minded and glib; the author glosses over complicated
    subjects and employs facile generalizations in almost every
    sentence. Readers rarely have to think, and are spared
    all of the difficulty and tedium typically involved in
    reading old-fashioned books." As long as we stick to simple
    operations like setting the clocks on our VCRs, this is
    not so bad. But as we try to do more ambitious things with
    our technologies, we inevitably run into the problem of:
    
    
    METAPHOR SHEAR
    
    
    I began using Microsoft Word as soon as the first version
    was released around 1985. After some initial hassles I
    found it to be a better tool than MacWrite, which was its
    only competition at the time. I wrote a lot of stuff in
    early versions of Word, storing it all on floppies, and
    transferred the contents of all my floppies to my first
    hard drive, which I acquired around 1987. As new versions
    of Word came out I faithfully upgraded, reasoning that as
    a writer it made sense for me to spend a certain amount
    of money on tools.
    
    Sometime in the mid-1980's I attempted to open one of
    my old, circa-1985 Word documents using the version
    of Word then current: 6.0 It didn't work. Word 6.0 did
    not recognize a document created by an earlier version
    of itself. By opening it as a text file, I was able to
    recover the sequences of letters that made up the text of
    the document. My words were still there. But the formatting
    had been run through a log chipper--the words I'd written
    were interrupted by spates of empty rectangular boxes and
    gibberish.
    
    Now, in the context of a business (the chief market for
    Word) this sort of thing is only an annoyance--one of the
    routine hassles that go along with using computers. It's
    easy to buy little file converter programs that will
    take care of this problem. But if you are a writer whose
    career is words, whose professional identity is a corpus
    of written documents, this kind of thing is extremely
    disquieting. There are very few fixed assumptions in my
    line of work, but one of them is that once you have written
    a word, it is written, and cannot be unwritten. The ink
    stains the paper, the chisel cuts the stone, the stylus
    marks the clay, and something has irrevocably happened
    (my brother-in-law is a theologian who reads 3250-year-old
    cuneiform tablets--he can recognize the handwriting of
    particular scribes, and identify them by name). But
    word-processing software--particularly the sort that
    employs special, complex file formats--has the eldritch
    power to unwrite things. A small change in file formats,
    or a few twiddled bits, and months' or years' literary
    output can cease to exist.
    
    Now this was technically a fault in the application (Word
    6.0 for the Macintosh) not the operating system (MacOS 7
    point something) and so the initial target of my annoyance
    was the people who were responsible for Word. But. On
    the other hand, I could have chosen the "save as text"
    option in Word and saved all of my documents as simple
    telegrams, and this problem would not have arisen. Instead
    I had allowed myself to be seduced by all of those flashy
    formatting options that hadn't even existed until GUIs
    had come along to make them practicable. I had gotten
    into the habit of using them to make my documents look
    pretty (perhaps prettier than they deserved to look; all
    of the old documents on those floppies turned out to be
    more or less crap). Now I was paying the price for that
    self-indulgence. Technology had moved on and found ways to
    make my documents look even prettier, and the consequence
    of it was that all old ugly documents had ceased to exist.
    
    It was--if you'll pardon me for a moment's strange
    little fantasy--as if I'd gone to stay at some resort,
    some exquisitely designed and art-directed hotel, placing
    myself in the hands of past masters of the Sensorial
    Interface, and had sat down in my room and written a story
    in ballpoint pen on a yellow legal pad, and when I returned
    from dinner, discovered that the maid had taken my work
    away and left behind in its place a quill pen and a stack
    of fine parchment--explaining that the room looked ever
    so much finer this way, and it was all part of a routine
    upgrade. But written on these sheets of paper, in flawless
    penmanship, were long sequences of words chosen at random
    from the dictionary. Appalling, sure, but I couldn't
    really lodge a complaint with the management, because by
    staying at this resort I had given my consent to it. I
    had surrendered my Morlock credentials and become an Eloi.
    
    
    LINUX
    
    During the late 1980's and early 1990's I spent a lot of
    time programming Macintoshes, and eventually decided for
    fork over several hundred dollars for an Apple product
    called the Macintosh Programmer's Workshop, or MPW. MPW
    had competitors, but it was unquestionably the premier
    software development system for the Mac. It was what
    Apple's own engineers used to write Macintosh code. Given
    that MacOS was far more technologically advanced, at the
    time, than its competition, and that Linux did not even
    exist yet, and given that this was the actual program
    used by Apple's world-class team of creative engineers,
    I had high expectations. It arrived on a stack of
    floppy disks about a foot high, and so there was plenty
    of time for my excitement to build during the endless
    installation process. The first time I launched MPW, I
    was probably expecting some kind of touch-feely multimedia
    showcase. Instead it was austere, almost to the point of
    being intimidating. It was a scrolling window into which
    you could type simple, unformatted text. The system would
    then interpret these lines of text as commands, and try
    to execute them.
    
    It was, in other words, a glass teletype running a command
    line interface. It came with all sorts of cryptic but
    powerful commands, which could be invoked by typing their
    names, and which I learned to use only gradually. It
    was not until a few years later, when I began messing
    around with Unix, that I understood that the command line
    interface embodied in MPW was a re-creation of Unix.
    
    In other words, the first thing that Apple's hackers had
    done when they'd got the MacOS up and running--probably
    even before they'd gotten it up and running--was
    to re-create the Unix interface, so that they would be
    able to get some useful work done. At the time, I simply
    couldn't get my mind around this, but: as far as Apple's
    hackers were concerned, the Mac's vaunted Graphical User
    Interface was an impediment, something to be circumvented
    before the little toaster even came out onto the market.
    
    Even before my Powerbook crashed and obliterated my big
    file in July 1995, there had been danger signs. An old
    college buddy of mine, who starts and runs high-tech
    companies in Boston, had developed a commercial product
    using Macintoshes as the front end. Basically the Macs were
    high-performance graphics terminals, chosen for their sweet
    user interface, giving users access to a large database
    of graphical information stored on a network of much more
    powerful, but less user-friendly, computers. This fellow
    was the second person who turned me on to Macintoshes,
    by the way, and through the mid-1980's we had shared the
    thrill of being high-tech cognoscenti, using superior Apple
    technology in a world of DOS-using knuckleheads. Early
    versions of my friend's system had worked well, he told me,
    but when several machines joined the network, mysterious
    crashes began to occur; sometimes the whole network would
    just freeze. It was one of those bugs that could not be
    reproduced easily. Finally they figured out that these
    network crashes were triggered whenever a user, scanning
    the menus for a particular item, held down the mouse button
    for more than a couple of seconds.
    
    Fundamentally, the MacOS could only do one thing at a
    time. Drawing a menu on the screen is one thing. So when
    a menu was pulled down, the Macintosh was not capable of
    doing anything else until that indecisive user released
    the button.
    
    This is not such a bad thing in a single-user,
    single-process machine (although it's a fairly bad thing),
    but it's no good in a machine that is on a network, because
    being on a network implies some kind of continual low-level
    interaction with other machines. By failing to respond to
    the network, the Mac caused a network-wide crash.
    
    In order to work with other computers, and with networks,
    and with various different types of hardware, an OS must
    be incomparably more complicated and powerful than either
    MS-DOS or the original MacOS. The only way of connecting
    to the Internet that's worth taking seriously is PPP, the
    Point-to-Point Protocol, which (never mind the details)
    makes your computer--temporarily--a full-fledged member
    of the Global Internet, with its own unique address,
    and various privileges, powers, and responsibilities
    appertaining thereunto. Technically it means your machine
    is running the TCP/IP protocol, which, to make a long
    story short, revolves around sending packets of data back
    and forth, in no particular order, and at unpredictable
    times, according to a clever and elegant set of rules. But
    sending a packet of data is one thing, and so an OS that
    can only do one thing at a time cannot simultaneously be
    part of the Internet and do anything else. When TCP/IP was
    invented, running it was an honor reserved for Serious
    Computers--mainframes and high-powered minicomputers
    used in technical and commercial settings--and so the
    protocol is engineered around the assumption that every
    computer using it is a serious machine, capable of doing
    many things at once. Not to put too fine a point on it,
    a Unix machine. Neither MacOS nor MS-DOS was originally
    built with that in mind, and so when the Internet got hot,
    radical changes had to be made.
    
    When my Powerbook broke my heart, and when Word stopped
    recognizing my old files, I jumped to Unix. The obvious
    alternative to MacOS would have been Windows. I didn't
    really have anything against Microsoft, or Windows. But
    it was pretty obvious, now, that old PC operating systems
    were overreaching, and showing the strain, and, perhaps,
    were best avoided until they had learned to walk and chew
    gum at the same time.
    
    The changeover took place on a particular day in the summer
    of 1995. I had been San Francisco for a couple of weeks,
    using my PowerBook to work on a document. The document
    was too big to fit onto a single floppy, and so I hadn't
    made a backup since leaving home. The PowerBook crashed
    and wiped out the entire file.
    
    It happened just as I was on my way out the door to visit
    a company called Electric Communities, which in those days
    was in Los Altos. I took my PowerBook with me. My friends
    at Electric Communities were Mac users who had all sorts
    of utility software for unerasing files and recovering
    from disk crashes, and I was certain I could get most of
    the file back.
    
    As it turned out, two different Mac crash recovery
    utilities were unable to find any trace that my file had
    ever existed. It was completely and systematically wiped
    out. We went through that hard disk block by block and
    found disjointed fragments of countless old, discarded,
    forgotten files, but none of what I wanted. The metaphor
    shear was especially brutal that day. It was sort of like
    watching the girl you've been in love with for ten years
    get killed in a car wreck, and then attending her autopsy,
    and learning that underneath the clothes and makeup she
    was just flesh and blood.
    
    I must have been reeling around the offices of Electric
    Communities in some kind of primal Jungian fugue,
    because at this moment three weirdly synchronistic things
    happened.
    
    (1) Randy Farmer, a co-founder of the company, came in for
    a quick visit along with his family--he was recovering from
    back surgery at the time. He had some hot gossip: "Windows
    95 mastered today." What this meant was that Microsoft's
    new operating system had, on this day, been placed on a
    special compact disk known as a golden master, which would
    be used to stamp out a jintillion copies in preparation for
    its thunderous release a few weeks later. This news was
    received peevishly by the staff of Electric Communities,
    including one whose office door was plastered with the
    usual assortment of cartoons and novelties, e.g.
    
    (2) a copy of a Dilbert cartoon in which Dilbert, the
    long-suffering corporate software engineer, encounters
    a portly, bearded, hairy man of a certain age--a bit
    like Santa Claus, but darker, with a certain edge about
    him. Dilbert recognizes this man, based upon his appearance
    and affect, as a Unix hacker, and reacts with a certain
    mixture of nervousness, awe, and hostility. Dilbert
    jabs weakly at the disturbing interloper for a couple of
    frames; the Unix hacker listens with a kind of infuriating,
    beatific calm, then, in the last frame, reaches into his
    pocket. "Here's a nickel, kid," he says, "go buy yourself
    a real computer."
    
    (3) the owner of the door, and the cartoon, was one Doug
    Barnes. Barnes was known to harbor certain heretical
    opinions on the subject of operating systems. Unlike most
    Bay Area techies who revered the Macintosh, considering
    it to be a true hacker's machine, Barnes was fond of
    pointing out that the Mac, with its hermetically sealed
    architecture, was actually hostile to hackers, who
    are prone to tinkering and dogmatic about openness. By
    contrast, the IBM-compatible line of machines, which can
    easily be taken apart and plugged back together, was much
    more hackable.
    
    So when I got home I began messing around with Linux, which
    is one of many, many different concrete implementations
    of the abstract, Platonic ideal called Unix. I was not
    looking forward to changing over to a new OS, because my
    credit cards were still smoking from all the money I'd
    spent on Mac hardware over the years. But Linux's great
    virtue was, and is, that it would run on exactly the same
    sort of hardware as the Microsoft OSes--which is to say,
    the cheapest hardware in existence. As if to demonstrate
    why this was a great idea, I was, within a week or two
    of returning home, able to get my hand on a then-decent
    computer (a 33-MHz 486 box) for free, because I knew a
    guy who worked in an office where they were simply being
    thrown away. Once I got it home, I yanked the hood off,
    stuck my hands in, and began switching cards around. If
    something didn't work, I went to a used-computer outlet
    and pawed through a bin full of components and bought a
    new card for a few bucks.
    
    The availability of all this cheap but effective hardware
    was an unintended consequence of decisions that had been
    made more than a decade earlier by IBM and Microsoft. When
    Windows came out, and brought the GUI to a much larger
    market, the hardware regime changed: the cost of color
    video cards and high-resolution monitors began to drop,
    and is dropping still. This free-for-all approach to
    hardware meant that Windows was unavoidably clunky
    compared to MacOS. But the GUI brought computing to
    such a vast audience that volume went way up and prices
    collapsed. Meanwhile Apple, which so badly wanted a clean,
    integrated OS with video neatly integrated into processing
    hardware, had fallen far behind in market share, at least
    partly because their beautiful hardware cost so much.
    
    But the price that we Mac owners had to pay for superior
    aesthetics and engineering was not merely a financial
    one. There was a cultural price too, stemming from
    the fact that we couldn't open up the hood and mess
    around with it. Doug Barnes was right. Apple, in spite
    of its reputation as the machine of choice of scruffy,
    creative hacker types, had actually created a machine
    that discouraged hacking, while Microsoft, viewed as a
    technological laggard and copycat, had created a vast,
    disorderly parts bazaar--a primordial soup that eventually
    self-assembled into Linux.
    
    
    THE HOLE HAWG OF OPERATING SYSTEMS
    
    
    Unix has always lurked provocatively in the background of
    the operating system wars, like the Russian Army. Most
    people know it only by reputation, and its reputation,
    as the Dilbert cartoon suggests, is mixed. But everyone
    seems to agree that if it could only get its act together
    and stop surrendering vast tracts of rich agricultural
    land and hundreds of thousands of prisoners of war to the
    onrushing invaders, it could stomp them (and all other
    opposition) flat.
    
    It is difficult to explain how Unix has earned this respect
    without going into mind-smashing technical detail. Perhaps
    the gist of it can be explained by telling a story about
    drills.
    
    The Hole Hawg is a drill made by the Milwaukee Tool
    Company. If you look in a typical hardware store you
    may find smaller Milwaukee drills but not the Hole Hawg,
    which is too powerful and too expensive for homeowners. The
    Hole Hawg does not have the pistol-like design of a cheap
    homeowner's drill. It is a cube of solid metal with a
    handle sticking out of one face and a chuck mounted in
    another. The cube contains a disconcertingly potent
    electric motor. You can hold the handle and operate
    the trigger with your index finger, but unless you are
    exceptionally strong you cannot control the weight of
    the Hole Hawg with one hand; it is a two-hander all the
    way. In order to fight off the counter-torque of the Hole
    Hawg you use a separate handle (provided), which you screw
    into one side of the iron cube or the other depending on
    whether you are using your left or right hand to operate
    the trigger. This handle is not a sleek, ergonomically
    designed item as it would be in a homeowner's drill. It
    is simply a foot-long chunk of regular galvanized pipe,
    threaded on one end, with a black rubber handle on the
    other. If you lose it, you just go to the local plumbing
    supply store and buy another chunk of pipe.
    
    During the Eighties I did some construction work. One
    day, another worker leaned a ladder against the outside
    of the building that we were putting up, climbed up to
    the second-story level, and used the Hole Hawg to drill a
    hole through the exterior wall. At some point, the drill
    bit caught in the wall. The Hole Hawg, following its one
    and only imperative, kept going. It spun the worker's
    body around like a rag doll, causing him to knock his own
    ladder down. Fortunately he kept his grip on the Hole Hawg,
    which remained lodged in the wall, and he simply dangled
    from it and shouted for help until someone came along and
    reinstated the ladder.
    
    I myself used a Hole Hawg to drill many holes through
    studs, which it did as a blender chops cabbage. I also
    used it to cut a few six-inch-diameter holes through an
    old lath-and-plaster ceiling. I chucked in a new hole saw,
    went up to the second story, reached down between the
    newly installed floor joists, and began to cut through the
    first-floor ceiling below. Where my homeowner's drill had
    labored and whined to spin the huge bit around, and had
    stalled at the slightest obstruction, the Hole Hawg rotated
    with the stupid consistency of a spinning planet. When
    the hole saw seized up, the Hole Hawg spun itself and
    me around, and crushed one of my hands between the steel
    pipe handle and a joist, producing a few lacerations, each
    surrounded by a wide corona of deeply bruised flesh. It
    also bent the hole saw itself, though not so badly that
    I couldn't use it. After a few such run-ins, when I got
    ready to use the Hole Hawg my heart actually began to
    pound with atavistic terror.
    
    But I never blamed the Hole Hawg; I blamed myself. The Hole
    Hawg is dangerous because it does exactly what you tell it
    to. It is not bound by the physical limitations that are
    inherent in a cheap drill, and neither is it limited by
    safety interlocks that might be built into a homeowner's
    product by a liability-conscious manufacturer. The danger
    lies not in the machine itself but in the user's failure
    to envision the full consequences of the instructions he
    gives to it.
    
    A smaller tool is dangerous too, but for a completely
    different reason: it tries to do what you tell it to,
    and fails in some way that is unpredictable and almost
    always undesirable. But the Hole Hawg is like the genie
    of the ancient fairy tales, who carries out his master's
    instructions literally and precisely and with unlimited
    power, often with disastrous, unforeseen consequences.
    
    Pre-Hole Hawg, I used to examine the drill selection in
    hardware stores with what I thought was a judicious eye,
    scorning the smaller low-end models and hefting the big
    expensive ones appreciatively, wishing I could afford one
    of them babies. Now I view them all with such contempt
    that I do not even consider them to be real drills--merely
    scaled-up toys designed to exploit the self-delusional
    tendencies of soft-handed homeowners who want to believe
    that they have purchased an actual tool. Their plastic
    casings, carefully designed and focus-group-tested to
    convey a feeling of solidity and power, seem disgustingly
    flimsy and cheap to me, and I am ashamed that I was ever
    bamboozled into buying such knicknacks.
    
    It is not hard to imagine what the world would look like
    to someone who had been raised by contractors and who
    had never used any drill other than a Hole Hawg. Such
    a person, presented with the best and most expensive
    hardware-store drill, would not even recognize it as
    such. He might instead misidentify it as a child's toy,
    or some kind of motorized screwdriver. If a salesperson or
    a deluded homeowner referred to it as a drill, he would
    laugh and tell them that they were mistaken--they simply
    had their terminology wrong. His interlocutor would go away
    irritated, and probably feeling rather defensive about his
    basement full of cheap, dangerous, flashy, colorful tools.
    
    Unix is the Hole Hawg of operating systems, and Unix
    hackers, like Doug Barnes and the guy in the Dilbert
    cartoon and many of the other people who populate Silicon
    Valley, are like contractor's sons who grew up using only
    Hole Hawgs. They might use Apple/Microsoft OSes to write
    letters, play video games, or balance their checkbooks,
    but they cannot really bring themselves to take these
    operating systems seriously.
    
    
    THE ORAL TRADITION
    
    
    Unix is hard to learn. The process of learning it is one
    of multiple small epiphanies. Typically you are just on
    the verge of inventing some necessary tool or utility
    when you realize that someone else has already invented
    it, and built it in, and this explains some odd file or
    directory or command that you have noticed but never really
    understood before.
    
    For example there is a command (a small program, part
    of the OS) called whoami, which enables you to ask the
    computer who it thinks you are. On a Unix machine, you
    are always logged in under some name--possibly even your
    own! What files you may work with, and what software you
    may use, depends on your identity. When I started out using
    Linux, I was on a non-networked machine in my basement,
    with only one user account, and so when I became aware of
    the whoami command it struck me as ludicrous. But once
    you are logged in as one person, you can temporarily
    switch over to a pseudonym in order to access different
    files. If your machine is on the Internet, you can log
    onto other computers, provided you have a user name and
    a password. At that point the distant machine becomes
    no different in practice from the one right in front of
    you. These changes in identity and location can easily
    become nested inside each other, many layers deep, even
    if you aren't doing anything nefarious. Once you have
    forgotten who and where you are, the whoami command is
    indispensible. I use it all the time.
    
    The file systems of Unix machines all have the same general
    structure. On your flimsy operating systems, you can create
    directories (folders) and give them names like Frodo or
    My Stuff and put them pretty much anywhere you like. But
    under Unix the highest level--the root--of the filesystem
    is always designated with the single character "/" and it
    always contains the same set of top-level directories:
    
    /usr /etc /var /bin /proc /boot /home /root /sbin /dev /lib /tmp
    
    
    and each of these directories typically has its own
    distinct structure of subdirectories. Note the obsessive
    use of abbreviations and avoidance of capital letters;
    this is a system invented by people to whom repetitive
    stress disorder is what black lung is to miners. Long
    names get worn down to three-letter nubbins, like stones
    smoothed by a river.
    
    This is not the place to try to explain why each of the
    above directories exists, and what is contained in it. At
    first it all seems obscure; worse, it seems deliberately
    obscure. When I started using Linux I was accustomed to
    being able to create directories wherever I wanted and
    to give them whatever names struck my fancy. Under Unix
    you are free to do that, of course (you are free to do
    anything) but as you gain experience with the system you
    come to understand that the directories listed above were
    created for the best of reasons and that your life will be
    much easier if you follow along (within /home, by the way,
    you have pretty much unlimited freedom).
    
    After this kind of thing has happened several hundred
    or thousand times, the hacker understands why Unix is
    the way it is, and agrees that it wouldn't be the same
    any other way. It is this sort of acculturation that
    gives Unix hackers their confidence in the system, and
    the attitude of calm, unshakable, annoying superiority
    captured in the Dilbert cartoon. Windows 95 and MacOS are
    products, contrived by engineers in the service of specific
    companies. Unix, by contrast, is not so much a product as
    it is a painstakingly compiled oral history of the hacker
    subculture. It is our Gilgamesh epic.
    
    What made old epics like Gilgamesh so powerful and
    so long-lived was that they were living bodies of
    narrative that many people knew by heart, and told over
    and over again--making their own personal embellishments
    whenever it struck their fancy. The bad embellishments
    were shouted down, the good ones picked up by others,
    polished, improved, and, over time, incorporated into the
    story. Likewise, Unix is known, loved, and understood by
    so many hackers that it can be re-created from scratch
    whenever someone needs it. This is very difficult to
    understand for people who are accustomed to thinking of
    OSes as things that absolutely have to be bought.
    
    Many hackers have launched more or less successful
    re-implementations of the Unix ideal. Each one brings in
    new embellishments. Some of them die out quickly, some
    are merged with similar, parallel innovations created
    by different hackers attacking the same problem, others
    still are embraced, and adopted into the epic. Thus Unix
    has slowly accreted around a simple kernel and acquired
    a kind of complexity and asymmetry about it that is
    organic, like the roots of a tree, or the branchings of
    a coronary artery. Understanding it is more like anatomy
    than physics.
    
    For at least a year, prior to my adoption of Linux, I
    had been hearing about it. Credible, well-informed people
    kept telling me that a bunch of hackers had got together
    an implentation of Unix that could be downloaded, free of
    charge, from the Internet. For a long time I could not
    bring myself to take the notion seriously. It was like
    hearing rumors that a group of model rocket enthusiasts
    had created a completely functional Saturn V by exchanging
    blueprints on the Net and mailing valves and flanges to
    each other.
    
    But it's true. Credit for Linux generally goes to its human
    namesake, one Linus Torvalds, a Finn who got the whole
    thing rolling in 1991 when he used some of the GNU tools
    to write the beginnings of a Unix kernel that could run on
    PC-compatible hardware. And indeed Torvalds deserves all
    the credit he has ever gotten, and a whole lot more. But
    he could not have made it happen by himself, any more
    than Richard Stallman could have. To write code at all,
    Torvalds had to have cheap but powerful development tools,
    and these he got from Stallman's GNU project.
    
    And he had to have cheap hardware on which to write that
    code. Cheap hardware is a much harder thing to arrange
    than cheap software; a single person (Stallman) can write
    software and put it up on the Net for free, but in order
    to make hardware it's necessary to have a whole industrial
    infrastructure, which is not cheap by any stretch of the
    imagination. Really the only way to make hardware cheap
    is to punch out an incredible number of copies of it, so
    that the unit cost eventually drops. For reasons already
    explained, Apple had no desire to see the cost of hardware
    drop. The only reason Torvalds had cheap hardware was
    Microsoft.
    
    Microsoft refused to go into the hardware business,
    insisted on making its software run on hardware that anyone
    could build, and thereby created the market conditions
    that allowed hardware prices to plummet. In trying to
    understand the Linux phenomenon, then, we have to look not
    to a single innovator but to a sort of bizarre Trinity:
    Linus Torvalds, Richard Stallman, and Bill Gates. Take
    away any of these three and Linux would not exist.
    
    
    OS SHOCK
    
    
    Young Americans who leave their great big homogeneous
    country and visit some other part of the world typically
    go through several stages of culture shock: first,
    dumb wide-eyed astonishment. Then a tentative engagement
    with the new country's manners, cuisine, public transit
    systems and toilets, leading to a brief period of fatuous
    confidence that they are instant experts on the new
    country. As the visit wears on, homesickness begins to set
    in, and the traveler begins to appreciate, for the first
    time, how much he or she took for granted at home. At the
    same time it begins to seem obvious that many of one's
    own cultures and traditions are essentially arbitrary,
    and could have been different; driving on the right side of
    the road, for example. When the traveler returns home and
    takes stock of the experience, he or she may have learned
    a good deal more about America than about the country they
    went to visit.
    
    For the same reasons, Linux is worth trying. It is a
    strange country indeed, but you don't have to live there;
    a brief sojourn suffices to give some flavor of the place
    and--more importantly--to lay bare everything that is taken
    for granted, and all that could have been done differently,
    under Windows or MacOS.
    
    You can't try it unless you install it. With any other OS,
    installing it would be a straightforward transaction: in
    exchange for money, some company would give you a CD-ROM,
    and you would be on your way. But a lot is subsumed in
    that kind of transaction, and has to be gone through and
    picked apart.
    
    We like plain dealings and straightforward transactions
    in America. If you go to Egypt and, say, take a taxi
    somewhere, you become a part of the taxi driver's life;
    he refuses to take your money because it would demean
    your friendship, he follows you around town, and weeps
    hot tears when you get in some other guy's taxi. You end
    up meeting his kids at some point, and have to devote all
    sort of ingenuity to finding some way to compensate him
    without insulting his honor. It is exhausting. Sometimes
    you just want a simple Manhattan-style taxi ride.
    
    But in order to have an American-style setup, where
    you can just go out and hail a taxi and be on your way,
    there must exist a whole hidden apparatus of medallions,
    inspectors, commissions, and so forth--which is fine as
    long as taxis are cheap and you can always get one. When
    the system fails to work in some way, it is mysterious
    and infuriating and turns otherwise reasonable people into
    conspiracy theorists. But when the Egyptian system breaks
    down, it breaks down transparently. You can't get a taxi,
    but your driver's nephew will show up, on foot, to explain
    the problem and apologize.
    
    Microsoft and Apple do things the Manhattan way, with vast
    complexity hidden behind a wall of interface. Linux does
    things the Egypt way, with vast complexity strewn about
    all over the landscape. If you've just flown in from
    Manhattan, your first impulse will be to throw up your
    hands and say "For crying out loud! Will you people get
    a grip on yourselves!?" But this does not make friends in
    Linux-land any better than it would in Egypt.
    
    You can suck Linux right out of the air, as it were, by
    downloading the right files and putting them in the right
    places, but there probably are not more than a few hundred
    people in the world who could create a functioning Linux
    system in that way. What you really need is a distribution
    of Linux, which means a prepackaged set of files. But
    distributions are a separate thing from Linux per se.
    
    Linux per se is not a specific set of ones and zeroes,
    but a self-organizing Net subculture. The end result of
    its collective lucubrations is a vast body of source code,
    almost all written in C (the dominant computer programming
    language). "Source code" just means a computer program
    as typed in and edited by some hacker. If it's in C,
    the file name will probably have .c or .cpp on the end of
    it, depending on which dialect was used; if it's in some
    other language it will have some other suffix. Frequently
    these sorts of files can be found in a directory with the
    name /src which is the hacker's Hebraic abbreviation of
    "source."
    
    Source files are useless to your computer, and of little
    interest to most users, but they are of gigantic cultural
    and political significance, because Microsoft and Apple
    keep them secret while Linux makes them public. They are
    the family jewels. They are the sort of thing that in
    Hollywood thrillers is used as a McGuffin: the plutonium
    bomb core, the top-secret blueprints, the suitcase
    of bearer bonds, the reel of microfilm. If the source
    files for Windows or MacOS were made public on the Net,
    then those OSes would become free, like Linux--only not as
    good, because no one would be around to fix bugs and answer
    questions. Linux is "open source" software meaning, simply,
    that anyone can get copies of its source code files.
    
    Your computer doesn't want source code any more than you
    do; it wants object code. Object code files typically
    have the suffix .o and are unreadable all but a few,
    highly strange humans, because they consist of ones and
    zeroes. Accordingly, this sort of file commonly shows up
    in a directory with the name /bin, for "binary."
    
    Source files are simply ASCII text files. ASCII denotes a
    particular way of encoding letters into bit patterns. In
    an ASCII file, each character has eight bits all to
    itself. This creates a potential "alphabet" of 256
    distinct characters, in that eight binary digits can
    form that many unique patterns. In practice, of course,
    we tend to limit ourselves to the familiar letters and
    digits. The bit-patterns used to represent those letters
    and digits are the same ones that were physically punched
    into the paper tape by my high school teletype, which in
    turn were the same one used by the telegraph industry for
    decades previously. ASCII text files, in other words,
    are telegrams, and as such they have no typographical
    frills. But for the same reason they are eternal, because
    the code never changes, and universal, because every text
    editing and word processing software ever written knows
    about this code.
    
    Therefore just about any software can be used to create,
    edit, and read source code files. Object code files, then,
    are created from these source files by a piece of software
    called a compiler, and forged into a working application
    by another piece of software called a linker.
    
    The triad of editor, compiler, and linker, taken together,
    form the core of a software development system. Now,
    it is possible to spend a lot of money on shrink-wrapped
    development systems with lovely graphical user interfaces
    and various ergonomic enhancements. In some cases it might
    even be a good and reasonable way to spend money. But on
    this side of the road, as it were, the very best software
    is usually the free stuff. Editor, compiler and linker are
    to hackers what ponies, stirrups, and archery sets were
    to the Mongols. Hackers live in the saddle, and hack on
    their own tools even while they are using them to create
    new applications. It is quite inconceivable that superior
    hacking tools could have been created from a blank sheet of
    paper by product engineers. Even if they are the brightest
    engineers in the world they are simply outnumbered.
    
    In the GNU/Linux world there are two major text editing
    programs: the minimalist vi (known in some implementations
    as elvis) and the maximalist emacs. I use emacs, which
    might be thought of as a thermonuclear word processor. It
    was created by Richard Stallman; enough said. It is written
    in Lisp, which is the only computer language that is
    beautiful. It is colossal, and yet it only edits straight
    ASCII text files, which is to say, no fonts, no boldface,
    no underlining. In other words, the engineer-hours that,
    in the case of Microsoft Word, were devoted to features
    like mail merge, and the ability to embed feature-length
    motion pictures in corporate memoranda, were, in the
    case of emacs, focused with maniacal intensity on the
    deceptively simple-seeming problem of editing text. If
    you are a professional writer--i.e., if someone else is
    getting paid to worry about how your words are formatted
    and printed--emacs outshines all other editing software
    in approximately the same way that the noonday sun does
    the stars. It is not just bigger and brighter; it simply
    makes everything else vanish. For page layout and printing
    you can use TeX: a vast corpus of typesetting lore written
    in C and also available on the Net for free.
    
    I could say a lot about emacs and TeX, but right now I
    am trying to tell a story about how to actually install
    Linux on your machine. The hard-core survivalist approach
    would be to download an editor like emacs, and the GNU
    Tools--the compiler and linker--which are polished and
    excellent to the same degree as emacs. Equipped with these,
    one would be able to start downloading ASCII source code
    files (/src) and compiling them into binary object code
    files (/bin) that would run on the machine. But in order
    to even arrive at this point--to get emacs running, for
    example--you have to have Linux actually up and running
    on your machine. And even a minimal Linux operating system
    requires thousands of binary files all acting in concert,
    and arranged and linked together just so.
    
    Several entities have therefore taken it upon themselves to
    create "distributions" of Linux. If I may extend the Egypt
    analogy slightly, these entities are a bit like tour guides
    who meet you at the airport, who speak your language, and
    who help guide you through the initial culture shock. If
    you are an Egyptian, of course, you see it the other way;
    tour guides exist to keep brutish outlanders from traipsing
    through your mosques and asking you the same questions
    over and over and over again.
    
    Some of these tour guides are commercial organizations,
    such as Red Hat Software, which makes a Linux distribution
    called Red Hat that has a relatively commercial sheen to
    it. In most cases you put a Red Hat CD-ROM into your PC
    and reboot and it handles the rest. Just as a tour guide
    in Egypt will expect some sort of compensation for his
    services, commercial distributions need to be paid for. In
    most cases they cost almost nothing and are well worth it.
    
    I use a distribution called Debian (the word
    is a contraction of "Deborah" and "Ian") which is
    non-commercial. It is organized (or perhaps I should say
    "it has organized itself") along the same lines as Linux
    in general, which is to say that it consists of volunteers
    who collaborate over the Net, each responsible for looking
    after a different chunk of the system. These people have
    broken Linux down into a number of packages, which are
    compressed files that can be downloaded to an already
    functioning Debian Linux system, then opened up and
    unpacked using a free installer application. Of course,
    as such, Debian has no commercial arm--no distribution
    mechanism. You can download all Debian packages over
    the Net, but most people will want to have them on a
    CD-ROM. Several different companies have taken it upon
    themselves to decoct all of the current Debian packages
    onto CD-ROMs and then sell them. I buy mine from Linux
    Systems Labs. The cost for a three-disc set, containing
    Debian in its entirety, is less than three dollars. But
    (and this is an important distinction) not a single penny
    of that three dollars is going to any of the coders who
    created Linux, nor to the Debian packagers. It goes to
    Linux Systems Labs and it pays, not for the software,
    or the packages, but for the cost of stamping out the
    CD-ROMs.
    
    Every Linux distribution embodies some more or less clever
    hack for circumventing the normal boot process and causing
    your computer, when it is turned on, to organize itself,
    not as a PC running Windows, but as a "host" running
    Unix. This is slightly alarming the first time you see
    it, but completely harmless. When a PC boots up, it goes
    through a little self-test routine, taking an inventory of
    available disks and memory, and then begins looking around
    for a disk to boot up from. In any normal Windows computer
    that disk will be a hard drive. But if you have your system
    configured right, it will look first for a floppy or CD-ROM
    disk, and boot from that if one is available.
    
    Linux exploits this chink in the defenses. Your computer
    notices a bootable disk in the floppy or CD-ROM drive,
    loads in some object code from that disk, and blindly
    begins to execute it. But this is not Microsoft or
    Apple code, this is Linux code, and so at this point
    your computer begins to behave very differently from
    what you are accustomed to. Cryptic messages began to
    scroll up the screen. If you had booted a commercial OS,
    you would, at this point, be seeing a "Welcome to MacOS"
    cartoon, or a screen filled with clouds in a blue sky, and
    a Windows logo. But under Linux you get a long telegram
    printed in stark white letters on a black screen. There
    is no "welcome!" message. Most of the telegram has the
    semi-inscrutable menace of graffiti tags.
    
    Dec 14 15:04:15 theRev syslogd 1.3-3#17: restart. Dec
    14 15:04:15 theRev kernel: klogd 1.3-3, log source =
    /proc/kmsg started. Dec 14 15:04:15 theRev kernel:
    Loaded 3535 symbols from /System.map. Dec 14 15:04:15
    theRev kernel: Symbols match kernel version 2.0.30. Dec 14
    15:04:15 theRev kernel: No module symbols loaded. Dec 14
    15:04:15 theRev kernel: Intel MultiProcessor Specification
    v1.4 Dec 14 15:04:15 theRev kernel: Virtual Wire
    compatibility mode. Dec 14 15:04:15 theRev kernel: OEM ID:
    INTEL Product ID: 440FX APIC at: 0xFEE00000 Dec 14 15:04:15
    theRev kernel: Processor #0 Pentium(tm) Pro APIC version
    17 Dec 14 15:04:15 theRev kernel: Processor #1 Pentium(tm)
    Pro APIC version 17 Dec 14 15:04:15 theRev kernel: I/O APIC
    #2 Version 17 at 0xFEC00000. Dec 14 15:04:15 theRev kernel:
    Processors: 2 Dec 14 15:04:15 theRev kernel: Console:
    16 point font, 400 scans Dec 14 15:04:15 theRev kernel:
    Console: colour VGA+ 80x25, 1 virtual console (max 63) Dec
    14 15:04:15 theRev kernel: pcibios_init : BIOS32 Service
    Directory structure at 0x000fdb70 Dec 14 15:04:15 theRev
    kernel: pcibios_init : BIOS32 Service Directory entry
    at 0xfdb80 Dec 14 15:04:15 theRev kernel: pcibios_init :
    PCI BIOS revision 2.10 entry at 0xfdba1 Dec 14 15:04:15
    theRev kernel: Probing PCI hardware. Dec 14 15:04:15 theRev
    kernel: Warning : Unknown PCI device (10b7:9001). Please
    read include/linux/pci.h Dec 14 15:04:15 theRev kernel:
    Calibrating delay loop.. ok - 179.40 BogoMIPS Dec 14
    15:04:15 theRev kernel: Memory: 64268k/66556k available
    (700k kernel code, 384k reserved, 1204k data) Dec 14
    15:04:15 theRev kernel: Swansea University Computer Society
    NET3.035 for Linux 2.0 Dec 14 15:04:15 theRev kernel:
    NET3: Unix domain sockets 0.13 for Linux NET3.035. Dec
    14 15:04:15 theRev kernel: Swansea University Computer
    Society TCP/IP for NET3.034 Dec 14 15:04:15 theRev kernel:
    IP Protocols: ICMP, UDP, TCP Dec 14 15:04:15 theRev kernel:
    Checking 386/387 coupling... Ok, fpu using exception 16
    error reporting. Dec 14 15:04:15 theRev kernel: Checking
    'hlt' instruction... Ok. Dec 14 15:04:15 theRev kernel:
    Linux version 2.0.30 (root@theRev) (gcc version 2.7.2.1)
    #15 Fri Mar 27 16:37:24 PST 1998 Dec 14 15:04:15 theRev
    kernel: Booting processor 1 stack 00002000: Calibrating
    delay loop.. ok - 179.40 BogoMIPS Dec 14 15:04:15
    theRev kernel: Total of 2 processors activated (358.81
    BogoMIPS). Dec 14 15:04:15 theRev kernel: Serial driver
    version 4.13 with no serial options enabled Dec 14 15:04:15
    theRev kernel: tty00 at 0x03f8 (irq = 4) is a 16550A Dec
    14 15:04:15 theRev kernel: tty01 at 0x02f8 (irq = 3) is
    a 16550A Dec 14 15:04:15 theRev kernel: lp1 at 0x0378,
    (polling) Dec 14 15:04:15 theRev kernel: PS/2 auxiliary
    pointing device detected -- driver installed. Dec 14
    15:04:15 theRev kernel: Real Time Clock Driver v1.07 Dec 14
    15:04:15 theRev kernel: loop: registered device at major 7
    Dec 14 15:04:15 theRev kernel: ide: i82371 PIIX (Triton) on
    PCI bus 0 function 57 Dec 14 15:04:15 theRev kernel: ide0:
    BM-DMA at 0xffa0-0xffa7 Dec 14 15:04:15 theRev kernel:
    ide1: BM-DMA at 0xffa8-0xffaf Dec 14 15:04:15 theRev
    kernel: hda: Conner Peripherals 1275MB - CFS1275A, 1219MB
    w/64kB Cache, LBA, CHS=619/64/63 Dec 14 15:04:15 theRev
    kernel: hdb: Maxtor 84320A5, 4119MB w/256kB Cache, LBA,
    CHS=8928/15/63, DMA Dec 14 15:04:15 theRev kernel: hdc: ,
    ATAPI CDROM drive Dec 15 11:58:06 theRev kernel: ide0 at
    0x1f0-0x1f7,0x3f6 on irq 14 Dec 15 11:58:06 theRev kernel:
    ide1 at 0x170-0x177,0x376 on irq 15 Dec 15 11:58:06 theRev
    kernel: Floppy drive(s): fd0 is 1.44M Dec 15 11:58:06
    theRev kernel: Started kswapd v 1.4.2.2 Dec 15 11:58:06
    theRev kernel: FDC 0 is a National Semiconductor PC87306
    Dec 15 11:58:06 theRev kernel: md driver 0.35 MAX_MD_DEV=4,
    MAX_REAL=8 Dec 15 11:58:06 theRev kernel: PPP: version
    2.2.0 (dynamic channel allocation) Dec 15 11:58:06 theRev
    kernel: TCP compression code copyright 1989 Regents of the
    University of California Dec 15 11:58:06 theRev kernel:
    PPP Dynamic channel allocation code copyright 1995 Caldera,
    Inc. Dec 15 11:58:06 theRev kernel: PPP line discipline
    registered. Dec 15 11:58:06 theRev kernel: SLIP: version
    0.8.4-NET3.019-NEWTTY (dynamic channels, max=256). Dec
    15 11:58:06 theRev kernel: eth0: 3Com 3c900 Boomerang
    10Mbps/Combo at 0xef00, 00:60:08:a4:3c:db, IRQ 10 Dec 15
    11:58:06 theRev kernel: 8K word-wide RAM 3:5 Rx:Tx split,
    10base2 interface. Dec 15 11:58:06 theRev kernel: Enabling
    bus-master transmits and whole-frame receives. Dec 15
    11:58:06 theRev kernel: 3c59x.c:v0.49 1/2/98 Donald Becker
    http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html Dec
    15 11:58:06 theRev kernel: Partition check: Dec 15 11:58:06
    theRev kernel: hda: hda1 hda2 hda3 Dec 15 11:58:06 theRev
    kernel: hdb: hdb1 hdb2 Dec 15 11:58:06 theRev kernel: VFS:
    Mounted root (ext2 filesystem) readonly. Dec 15 11:58:06
    theRev kernel: Adding Swap: 16124k swap-space (priority -1)
    Dec 15 11:58:06 theRev kernel: EXT2-fs warning: maximal
    mount count reached, running e2fsck is recommended Dec
    15 11:58:06 theRev kernel: hdc: media changed Dec 15
    11:58:06 theRev kernel: ISO9660 Extensions: RRIP_1991A
    Dec 15 11:58:07 theRev syslogd 1.3-3#17: restart. Dec 15
    11:58:09 theRev diald[87]: Unable to open options file
    /etc/diald/diald.options: No such file or directory Dec 15
    11:58:09 theRev diald[87]: No device specified. You must
    have at least one device! Dec 15 11:58:09 theRev diald[87]:
    You must define a connector script (option 'connect'). Dec
    15 11:58:09 theRev diald[87]: You must define the remote ip
    address. Dec 15 11:58:09 theRev diald[87]: You must define
    the local ip address. Dec 15 11:58:09 theRev diald[87]:
    Terminating due to damaged reconfigure.
    
    The only parts of this that are readable, for normal
    people, are the error messages and warnings. And yet
    it's noteworthy that Linux doesn't stop, or crash, when
    it encounters an error; it spits out a pithy complaint,
    gives up on whatever processes were damaged, and keeps on
    rolling. This was decidedly not true of the early versions
    of Apple and Microsoft OSes, for the simple reason that
    an OS that is not capable of walking and chewing gum at
    the same time cannot possibly recover from errors. Looking
    for, and dealing with, errors requires a separate process
    running in parallel with the one that has erred. A kind
    of superego, if you will, that keeps an eye on all of the
    others, and jumps in when one goes astray. Now that MacOS
    and Windows can do more than one thing at a time they are
    much better at dealing with errors than they used to be,
    but they are not even close to Linux or other Unices in
    this respect; and their greater complexity has made them
    vulnerable to new types of errors.
    
    FALLIBILITY, ATONEMENT, REDEMPTION, TRUST, AND OTHER ARCANE
    TECHNICAL CONCEPTS
    
    Linux is not capable of having any centrally organized
    policies dictating how to write error messages and
    documentation, and so each programmer writes his
    own. Usually they are in English even though tons of
    Linux programmers are Europeans. Frequently they are
    funny. Always they are honest. If something bad has
    happened because the software simply isn't finished yet,
    or because the user screwed something up, this will be
    stated forthrightly. The command line interface makes it
    easy for programs to dribble out little comments, warnings,
    and messages here and there. Even if the application is
    imploding like a damaged submarine, it can still usually
    eke out a little S.O.S. message. Sometimes when you finish
    working with a program and shut it down, you find that it
    has left behind a series of mild warnings and low-grade
    error messages in the command-line interface window from
    which you launched it. As if the software were chatting to
    you about how it was doing the whole time you were working
    with it.
    
    Documentation, under Linux, comes in the form of man
    (short for manual) pages. You can access these either
    through a GUI (xman) or from the command line (man). Here
    is a sample from the man page for a program called rsh:
    
    "Stop signals stop the local rsh process only; this is
    arguably wrong, but currently hard to fix for reasons too
    complicated to explain here."
    
    The man pages contain a lot of such material, which reads
    like the terse mutterings of pilots wrestling with the
    controls of damaged airplanes. The general feel is of
    a thousand monumental but obscure struggles seen in the
    stop-action light of a strobe. Each programmer is dealing
    with his own obstacles and bugs; he is too busy fixing
    them, and improving the software, to explain things at
    great length or to maintain elaborate pretensions.
    
    In practice you hardly ever encounter a serious bug
    while running Linux. When you do, it is almost always
    with commercial software (several vendors sell software
    that runs under Linux). The operating system and its
    fundamental utility programs are too important to contain
    serious bugs. I have been running Linux every day since
    late 1995 and have seen many application programs go down
    in flames, but I have never seen the operating system
    crash. Never. Not once. There are quite a few Linux systems
    that have been running continuously and working hard for
    months or years without needing to be rebooted.
    
    Commercial OSes have to adopt the same official stance
    towards errors as Communist countries had towards
    poverty. For doctrinal reasons it was not possible to admit
    that poverty was a serious problem in Communist countries,
    because the whole point of Communism was to eradicate
    poverty. Likewise, commercial OS companies like Apple and
    Microsoft can't go around admitting that their software
    has bugs and that it crashes all the time, any more than
    Disney can issue press releases stating that Mickey Mouse
    is an actor in a suit.
    
    This is a problem, because errors do exist and bugs do
    happen. Every few months Bill Gates tries to demo a new
    Microsoft product in front of a large audience only to
    have it blow up in his face. Commercial OS vendors, as
    a direct consequence of being commercial, are forced to
    adopt the grossly disingenuous position that bugs are rare
    aberrations, usually someone else's fault, and therefore
    not really worth talking about in any detail. This posture,
    which everyone knows to be absurd, is not limited to press
    releases and ad campaigns. It informs the whole way these
    companies do business and relate to their customers. If
    the documentation were properly written, it would mention
    bugs, errors, and crashes on every single page. If the
    on-line help systems that come with these OSes reflected
    the experiences and concerns of their users, they would
    largely be devoted to instructions on how to cope with
    crashes and errors.
    
    But this does not happen. Joint stock corporations are
    wonderful inventions that have given us many excellent
    goods and services. They are good at many things. Admitting
    failure is not one of them. Hell, they can't even admit
    minor shortcomings.
    
    Of course, this behavior is not as pathological in a
    corporation as it would be in a human being. Most people,
    nowadays, understand that corporate press releases are
    issued for the benefit of the corporation's shareholders
    and not for the enlightenment of the public. Sometimes the
    results of this institutional dishonesty can be dreadful,
    as with tobacco and asbestos. In the case of commercial
    OS vendors it is nothing of the kind, of course; it is
    merely annoying.
    
    Some might argue that consumer annoyance, over time,
    builds up into a kind of hardened plaque that can conceal
    serious decay, and that honesty might therefore be the
    best policy in the long run; the jury is still out on this
    in the operating system market. The business is expanding
    fast enough that it's still much better to have billions of
    chronically annoyed customers than millions of happy ones.
    
    Most system administrators I know who work with Windows NT
    all the time agree that when it hits a snag, it has to be
    re-booted, and when it gets seriously messed up, the only
    way to fix it is to re-install the operating system from
    scratch. Or at least this is the only way that they know
    of to fix it, which amounts to the same thing. It is quite
    possible that the engineers at Microsoft have all sorts of
    insider knowledge on how to fix the system when it goes
    awry, but if they do, they do not seem to be getting the
    message out to any of the actual system administrators I
    know.
    
    Because Linux is not commercial--because it is, in fact,
    free, as well as rather difficult to obtain, install,
    and operate--it does not have to maintain any pretensions
    as to its reliability. Consequently, it is much more
    reliable. When something goes wrong with Linux, the error
    is noticed and loudly discussed right away. Anyone with
    the requisite technical knowledge can go straight to the
    source code and point out the source of the error, which
    is then rapidly fixed by whichever hacker has carved out
    responsibility for that particular program.
    
    As far as I know, Debian is the only Linux
    distribution that has its own constitution
    (http://www.debian.org/devel/constitution), but what
    really sold me on it was its phenomenal bug database
    (http://www.debian.org/Bugs), which is a sort of
    interactive Doomsday Book of error, fallibility, and
    redemption. It is simplicity itself. When had a problem
    with Debian in early January of 1997, I sent in a message
    describing the problem to 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.