Выбрать главу

When I speak about regulating the code, I’m not talking about changing these core TCP/IP protocols. (Though in principle, of course, they could be regulated, and others have suggested that they should be.[13]) In my view these components of the network are fixed. If you required them to be different, you’d break the Internet. Thus rather than imagining the government changing the core, the question I want to consider is how the government might either (1) complement the core with technology that adds regulability, or (2) regulates applications that connect to the core. Both will be important, but my focus is on the code that plugs into the Internet. I will call that code the “application space” of the Internet. This includes all the code that implements TCP/IP protocols at the application layer — browsers, operating systems, encryption modules, Java, e-mail systems, P2P, whatever elements you want. The question for the balance of this chapter is: What is the character of that code that makes it susceptible to regulation?

A Short History of Code on the Net

In the beginning, of course, there were very few applications on the Net. The Net was no more than a protocol for exchanging data, and the original programs simply took advantage of this protocol. The file transfer protocol (FTP) was born early in the Net’s history[14]; the electronic message protocol (SMTP) was born soon after. It was not long before a protocol to display directories in a graphical way (Gopher) was developed. And in 1991 the most famous of protocols — the hyper text transfer protocol (HTTP) and hyper text markup language (HTML) — gave birth to the World Wide Web.

Each protocol spawned many applications. Since no one had a monopoly on the protocol, no one had a monopoly on its implementation. There were many FTP applications and many e-mail servers. There were even a large number of browsers[15]. The protocols were open standards, gaining their blessing from standards bodies such as the Internet Engineering Task Force (IETF) and, later, the W3C. Once a protocol was specified, programmers could build programs that utilized it.

Much of the software implementing these protocols was “open”, at least initially — that is, the source code for the software was available along with the object code[16]. This openness was responsible for much of the early Net’s growth. Others could explore how a program was implemented and learn from that example how better to implement the protocol in the future.

The World Wide Web is the best example of this point. Again, the code that makes a web page appear as it does is called the hyper text markup language, or HTML[17]. With HTML, you can specify how a web page will appear and to what it will be linked.

The original HTML was proposed in 1990 by the CERN researchers Tim Berners-Lee and Robert Cailliau[18]. It was designed to make it easy to link documents at a research facility, but it quickly became obvious that documents on any machine on the Internet could be linked. Berners-Lee and Cailliau made both HTML and its companion HTTP freely available for anyone to take.

And take them people did, at first slowly, but then at an extraordinary rate. People started building web pages and linking them to others. HTML became one of the fastest-growing computer languages in the history of computing.

Why? One important reason was that HTML was always “open.” Even today, on most browsers in distribution, you can always reveal the “source” of a web page and see what makes it tick. The source remains open: You can download it, copy it, and improve it as you wish. Copyright law may protect the source code of a web page, but in reality it protects it very imperfectly. HTML became as popular as it did primarily because it was so easy to copy. Anyone, at any time, could look under the hood of an HTML document and learn how the author produced it.

Openness — not property or contract but free code and access — created the boom that gave birth to the Internet that we now know. And it was this boom that then attracted the attention of commerce. With all this activity, commerce rightly reasoned, surely there was money to be made.

Historically the commercial model for producing software has been different[19]. Though the history began even as the open code movement continued, commercial software vendors were not about to produce “free” (what most call “open source”) software. Commercial vendors produced software that was closed — that traveled without its source and was protected against modification both by the law and by its own code.

By the second half of the 1990s — marked most famously by Microsoft’s Windows 95, which came bundled Internet-savvy — commercial software vendors began producing “application space” code. This code was increasingly connected to the Net — it increasingly became code “on” the Internet. But for the most part, the code remained closed.

That began to change, however, around the turn of the century. Especially in the context of peer-to-peer services, technologies emerged that were dominant and “open.” More importantly, the protocols these technologies depended upon were unregulated. Thus, for example, the protocol that the peer-to-peer client Grokster used to share content on the Internet is itself an open standard that anyone can use. Many commercial entities tried to use that standard, at least until the Supreme Court’s decision in Grokster. But even if that decision inspires every commercial entity to abandon the StreamCast network, noncommercial implementations of the protocol will still exist.

The same mix between open and closed exists in both browsers and blogging software. Firefox is the more popular current implementation of the Mozilla technology — the technology that originally drove the Netscape browser. It competes with Microsoft’s Internet Explorer and a handful of other commercial browsers. Likewise, WordPress is an open-source blogging tool that competes with a handful of other proprietary blogging tools.

This recent growth in open code builds upon a long tradition. Part of the motivation for that tradition is ideological, or values based. Richard Stallman is the inspiration here. In 1984, Stallman began the Free Software Foundation with the aim of fueling the growth of free software. A MacArthur Fellow who gave up his career to commit himself to the cause, Stallman has devoted the last twenty years of his life to free software. That work began with the GNU project, which sought to develop a free operating system. By 1991, the GNU project had just about everything it needed, except a kernel. That final challenge was taken up by an undergraduate at the University of Helsinki. That year, Linus Torvalds posted on the Internet the kernel of an operating system. He invited the world to extend and experiment with it.

People took up the challenge, and slowly, through the early 1990s, marrying the GNU project with Torvald’s kernel, they built an operating system — GNU/Linux. By 1998, it had become apparent to all that GNU/Linux was going to be an important competitor to the Microsoft operating system. Microsoft may have imagined in 1995 that by 2000 there would be no other server operating system available except Windows NT, but when 2000 came around, there was GNU/Linux, presenting a serious threat to Microsoft in the server market. Now in 2007, Linux-based web servers continue to gain market share at the expense of Microsoft systems.

GNU/Linux is amazing in many ways. It is amazing first because it is theoretically imperfect but practically superior. Linus Torvalds rejected what computer science told him was the ideal operating system design[20], and instead built an operating system that was designed for a single processor (an Intel 386) and not cross-platform-compatible. Its creative development, and the energy it inspired, slowly turned GNU/Linux into an extraordinarily powerful system. As of this writing, GNU/Linux has been ported to at least eighteen different computer architecture platforms — from the original Intel processors, to Apple’s PowerPC chip, to Sun SPARC chips, and mobile devices using ARM processors.[21] Creative hackers have even ported Linux to squeeze onto Apple’s iPod and old Atari systems. Although initially designed to speak only one language, GNU/Linux has become the lingua franca of free software operating systems.

вернуться

13.

The fights over encryption at the link level, for example, are fights over the TCP/IP protocols. Some within the network industry have proposed that encryption be done at the gateways, with a method for dumping plain text at the gateways if there were proper legal authority — a kind of "private doorbell" for resolving the encryption controversy; see Elizabeth Kaufman and Roszel Thomsen II, "The Export of Certain Networking Encryption Products Under ELAs," available at http://www.cisco.com/web/about/gov/downloads/779/govtaffs/archive/CiscoClearZone.doc (cached: http://www.webcitation.org/5J6iFdx8M). This has been opposed by the Internet Architectural Board (IAB) as inconsistent with the "end-to-end" architecture of the Internet; see IAB statement on "private doorbell" encryption, available at http://www.iab.org/documents/docs/121898.html (cached: http://www.webcitation.org/5J6iHv95Y). Since Code v1_,_ there has been an explosion of excellent work extending "layer theory." Perhaps the best academic work in this has been Lawrence B. Solum and Minn Chung, "The Layers Principle: Internet Architecture and the Law," University of San Diego Public Law Research Paper No. 55, available at http://ssrn.com/abstract=416263 (cached: http://www.webcitation.org/5J6iKFgUO). Solum and Chung have used the idea of Internet layers to guide regulatory policy, locating appropriate and inappropriate targets for regulatory intervention. This is an example of some of the best work integrating technology and legal policy, drawing interesting and important implications from the particular, often counter intuitive, interaction between the two. I introduce "layers" in my own work in The Future of Ideas: The Fate of the Commons in a Connected World (New York: Random House, 2001), 23–25. See also Yochai Benkler, The Wealth of Networks: How Social Production Transforms Markets and Freedom (New Haven: Yale University Press, 2006), 391–97. For other very useful work extending this analysis, see Craig McTaggart, "A Layered Approach to Internet Legal Analysis," McGill Law Journal 48 (2003): 571; Thomas A. Lane, "Of Hammers and Saws: The Toolbox of Federalism and Sources of Law for the Web," New Mexico Law Review 33 (2003): 115; Jane Bailey, "Of Mediums and Metaphors: How a Layered Methodology Might Contribute to Constitutional Analysis of Internet Content Regulation," Manitoba Law Journal 30 (2004): 197.

вернуться

14.

See Hafner and Lyon, Where Wizards Stay up Late, 174.

вернуться

15.

A 1994 HTML manual lists twenty-nine different browsers; see Larry Aronson, HTML Manual of Style (Emeryville, Cal.: Ziff-Davis Press, 1994), 124–26.

вернуться

16.

Source code is the code that programmers write. It sometimes reads like a natural lan guage, but it is obviously not. A program is (ordinarily) written in source code, but to be run it must be converted into a language the computer can process. This is what a "compiler" does. Some source code is converted on the fly — BASIC, for example, is usually interpreted, meaning the computer compiles the source code as it is run. "Object code" is machine-readable. It is an undifferentiated string of 0s and 1s that instructs the machines about the tasks it is to perform.

вернуться

17.

Hypertext is text that is linked to another location in the same document or in another document located either on the Net or on the same computer.

вернуться

18.

T. Berners-Lee and R. Cailliau, WorldWideWeb: Proposal for a HyperText Project, 1990, available at http://www.w3.org/Proposal (cached: http://www.webcitation.org/5J6iMja8s).

вернуться

19.

Of course, not always. When commercial production of computers began, software was often a free addition to the computer. Its commercial development as proprietary came only later; see Ira V. Heffan, "Copyleft: Licensing Collaborative Works in the Digital Age," Stanford Law Review 49 (1997): 1487, 1492–93.

вернуться

20.

At the time Linux was developed, the dominant thinking among computer scientists was against a monolithic operating system operating out of a single kernel and in favor of a "microkernel"-based system. MINIX, a microkernel system, was the primary competitor at the time. Torvalds consciously rejected this "modern" thinking and adopted the "traditional" model for Linux; see "The Tanenbaum-Torvalds Debate," in Open Sources: Voices from the Open Source Revolution, edited by Chris DiBona et al. (Sebastopol, Cal.: O'Reilly and Associates, 1999), 221–51.

вернуться

21.

See the lists, "Ports of Linux" and Linux Online, "Hardware Port Projects" available at http://www.cyut.edu.tw/~ckhung/l/linux_ports.html (cached: http://www.webcitation.org/5J6iPa5rx) and http://www.linux.org/projects/ports.html (cached: http://www.webcitation.org/5J6iSED4b).