|
The Internet
The Defense Department's contract for the first production TCP/IP stack went to a Unix
development group because the Unix in question was largely open source. Besides TCP/IP,
Unix has become the one indispensible core technology of the Internet service industry. Ever
since the demise of the TOPS family of operating systems in the mid-1980s, most Internet
server machines (and effectively all above the PC level) have been Unix.
Not even Microsoft's awesome marketing clout has been able to dent Unix's lock on the
Internet. While the TCP/IP standards on which the Internet is based evolved under TOPS-10
and are theoretically separable from Unix, attempts to make them work on other operating
systems have been bedeviled by incompatibilities, instabilities, and bugs. The theory and
RFCs are available to anyone, but the engineering tradition to make them into a solid and
working reality exists only in the Unix world.
The Internet technical culture and the Unix culture began to merge in the the early 1980s,
and are now inseparably symbiotic. To function effectively as an Internet expert, an
understanding of Unix and its culture are indispensible.
The open-source community
The community that originally formed around the early Unix source distributions never went
away 鈥 after the great Internet explosion of the early 1990s, it recruited an entire new
generation of eager hackers on home machines.
Today, that community is a powerful support group for all kinds of software development.
High-quality open-source development tools abound in the Unix world (we'll examine many
in this book). Open-source Unix applications are usually equal to, and are often superior to,
their proprietary equivalents [Barton et al.]. Entire Unix operating systems, with complete
toolkits and basic applications suites, are available for free over the Internet. Why code from
scratch when you can adapt, reuse, recycle, and save yourself 90% of the work?
This tradition of code-sharing depends heavily on hard-won expertise about how to make
programs cooperative and reusable. And not by abstract theory, but through a lot of
engineering practice 鈥 unobvious design rules that allow programs to function not just as
isolated one-shot solutions but as synergistic parts of a toolkit.
Today, a burgeoning open-source movement is bringing new vitality, new technical
|