And now for The Greatest Software Ever Written--Unix.
Bell Labs often gets credit for creating the Unix operating system, but Bell never funded its development. In fact, the labs' management knew nothing about it. Bell Labs had committed developers to a multivendor project called Multics that made use of many new ideas for an operating system. But the project fell apart, and a Bell Labs participant, Ken Thompson, decided he wanted a personal version of Multics so he could write shoot-'em-up games, says Feldman (who was the No. 7 developer on the AT&T Unix project and is now president of the Association for Computing Machinery).
In the best tradition of software, Unix was an individual effort that took on a life of its own. Thompson crafted Unix on a Labs reject, a tiny DEC PDP 7 minicomputer with either 16 or 32 Kbytes of memory--Feldman isn't sure which. "Unix was written under great constraints," he says. "There was no memory and no CPU power. You'd be embarrassed today not to have more memory and CPU in your wristwatch."
Thompson designed his stripped-down operating system to move data in blocks or "pages" from a computer's random access memory onto disk, freeing up memory space. When they're needed again, the operating system knows to go to the disk and page them back into memory. This way, a big operating system can run on a small computer with a small amount of memory. His operating system also was a multiuser system. Even the mainframes of the day were limited to a single user, making computing time expensive. Thompson's Uniplexed Information and Computing System (Unics) would let two people use a computer at the same time.
The Computer Science Research Group at the Labs heard about Unics and wanted a copy. At the group's request, Thompson and a colleague, Dennis Ritchie, agreed they would add text formatting to their system, provided they were given a PDP 11/20, a larger machine. Thus, Unix text processing was born of barter. Unics became Unix; was recast in tighter, more portable C code; and was brought to market by AT&T as the Unix System III.
So Unix System III was the greatest piece of software--almost. Bear with me here.
A GNU Philosophy
System III represented an advance, but it lacked many things, such as a windowing system, a graphical user interface, and a method for dealing with distributed systems. In an attempt to loosen IBM's stranglehold on large computers, AT&T made Unix available to researchers and universities for a small fee. Some people think open source code began when software became freely downloadable over the Internet. They're wrong. In fact, open source has its roots in the early distributions of Unix. One of those distributions came from a figure working into the night to improve the University of California at Berkeley's version. Other researchers would hear of Bill Joy's additions and ask him to send them a copy. So the first open source code wasn't a digital file. It was a reel of magnetic tape that Joy dropped in the mail late at night after finishing other work, according to Eric Allman, a grad student with Joy at Berkeley and the author of Sendmail. In 1977, the compilation of Joy's and other grad students' additions became known as the Berkeley Software Distribution, or BSD.
Unix was designed as discrete modules of code, each relating to a part of the hardware system. That made it easier to revise than IBM's operating systems. The Berkeley grad students made swift changes. They added a clean, fast file system, reliable networking, and the powerful vi code editor. They added Berkeley Sockets API, making it as easy to send data to a location on the network as to a local disk.
Defense contractor Bolt Beranek & Newman was at that time the official implementer of TCP/IP networking for the Defense Advanced Research Projects Agency. In BSD 4.1a, the Berkeley grad students modified TCP/IP to suit their own tastes. In 1986, Darpa would test the TCP/IP in BSD 4.3 and decide it was better than BBN's.
Bill Joy left Berkeley in 1982 to co-found Sun Microsystems, using the Berkeley Software Distribution as the basis for SunOS and Solaris. Sun and AT&T collaborated on improving System V, producing a consolidated System V Release 4. They agreed it would be the standard Unix for the future. AT&T, wanting a return on its Unix investment, increased its fees for the software.
But the Berkeley students weren't so easily derailed. They rewrote BSD Unix, ridding it of AT&T files and creating a new distribution that could run on low-cost Intel hardware. With yet another version looking like it might run off with AT&T's profits, AT&T's Unix Systems Labs sued BSDi, the company distributing Berkeley Unix for Intel. Unix System Labs won an injunction against BSDi, tying up Intel-based Unix for years.
MORE ONLINE ABOUT SOFTWARE BRILLIANCE
What about windows? Find out at informationweek.com/1101/windows.htm
You tell us: Take our poll, nominate a candidate, and win (semi) valuable prizes at informationweek.com/1101/software_poll.htm
Software that almost made it at informationweek.com/1101/list.htm
Those tools reached Linus Torvalds, a 21-year-old student in Helsinki, Finland, when he was looking for a version of Unix that would run on his Intel PC. He used them to develop the Linux kernel, and the rest is history. Linux became so popular that it displaced the Berkeley Software Distributions on Intel hardware. Today, Linux threatens to take over the high end of the market as well. But Linux is merely a clone of an incomplete GNU system and its BSD predecessors. They generated all the key concepts implemented in Linux. That's why Sendmail and BIND, building blocks of the Internet, were developed under Berkeley Unix, not System V. And that's why Microsoft, when it sought the best implementation of TCP/IP for Windows, took the one in BSD Unix. When Darpa wanted to build its Arpanet internetwork--or Internet--in 1983, it dropped its existing protocol and relied on BSD Unix TCP/IP.
So there you have it: The single Greatest Piece of Software Ever, with the broadest impact on the world, was BSD 4.3. Other Unixes were bigger commercial successes. But as the cumulative accomplishment of the BSD systems, 4.3 represented an unmatched peak of innovation. BSD 4.3 represents the single biggest theoretical undergirder of the Internet. Moreover, the passion that surrounds Linux and open source code is a direct offshoot of the ideas that created BSD: a love for the power of computing and a belief that it should be a freely available extension of man's intellectual powers--a force that changes his place in the universe.