Read In the Beginning...Was the Command Line Online
Authors: Neal Stephenson
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
a functional replacement for Unix. Because of copyright concerns (“Unix” is trademarked, and the programs it comprises are copyrighted, by AT&T) they simply could not claim that it was Unix, and so, just to be extra safe, they asserted 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 was a little bit like trying to dig a subway system with a teaspoon. Until, that is, the advent of Linux.
*
But the basic idea of recreating 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 con
trolling 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 the 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 rewriting 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 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. 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 domi
nates 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 U.S. 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 recompile 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 codependency 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.
Unix is the only OS remaining whose GUI (a vast suite of code called the XWindow 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 antitrust 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 appear to be 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 for free 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 realm of new technology. In other words, they must hang on to 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 and 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 toward 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.