An understanding of the fundamentals of modern computer software technology will assist in an understanding of the open source movement. Software programmers typically write softwareprograms using a high level computer language such as Basic, C++, or Java. By using the words,symbols and numbers that make up these high-level computer languages, the programmer tells thecomputer what to do. For instance, the command "ADD (X, Y)" instructs the computer to add thevalue of the variable X to the variable Y. A computer program written in this high level languageis said to be in "source code" form. (8) Computers are incapable of reading the high-level instructions of source code, however. Rather, the computer responds to binary inputs -- either a "0" or a "1" -- that correspond to an openor closed electrical switch. The number "01001101" might tell a computer to add two numbers andsave the result, for example. Thus, after writing the program in source code, the programmerordinarily uses a compiler program to translate or "compile" the source code into the corresponding1s and 0s that the computer can read. Source code that has been compiled into this series of 1s and0s is called "object code." (9) Today, most computer programs are distributed in object code form. This distribution systemis often referred to as the "proprietary software" model. When a consumer purchases a copy of, forexample, WordPerfect software, that program comes on a CD-ROM into which the objectcode 1sand 0s have been encoded. One of the reasons that software developers distribute only the objectcode, and not the source code, is convenience. Software in object code format is ready for thecomputer to use. (10) This technique also protects the source code from disclosure. Because skilled programmers can easily read source code, a competitor could review this text in order to find out how a programworks. As a result, if software were distributed in source code form, rival firms could readily takeand reuse parts of the program in competing products. As this report discusses below, (11) thisappropriation of the original programmer's work may violate intellectual property laws. However,such violations may be difficult both to discover and stop. Distributing software in object code formis a more cost-efficient and effective means of preventing this infringement. (12) Some computer users have expressed dissatisfaction with the proprietary software model. End users of proprietary software must ordinarily rely upon the software publisher to fix mistakes in thecode and develop additional features. As free software advocate Richard Stallman has explained,the proprietary software model "keeps users helpless and divided: the inner workings are secret." (13) Stallman further opines that computer users "should be free to modify programs to fit their needs,and free to share software, because helping other people is the basis of society." (14) A loosely organized open source software community has resulted from this reaction to proprietary software development. (15) In contrastto proprietary software, the source code of "opensource" software is available to the public. (16) Computer users are therefore able to examine thehuman-readable instructions that the programmer wrote to create the software. A number ofwell-known programs are "open source," including a widely used Internet server program, Apache;a popular Internet programming language, Perl; the program that routes more than 80 percent of allInternet email messages worldwide, Sendmail; the program that is the basis for the domain namesystem, Bind; and the fastest growing operating system in the world, Linux. (17) Due to the open sourcestatus of these programs, members of the public may consult their source code as desired. It is important to note that the term "open source" implies more than merely distribution of source code along with the object code. In such circumstances, the publisher could continue to assertits intellectual property rights in the software, thereby limiting the ability of others to modify theprogram or redistribute it. Even though disclosed to the public, the source code would remain underthe control of the publisher. (18) As a result, publishers of open source software ordinarily do more than simply provide copies of both the source code and the object code when they distribute computer programs to the public. In addition, they establish the terms of use of the software by means of a license. A license is acontract through which the publisher allows recipients to use and modify the software, subject tocertain conditions specified in the license. For example, the license might require that anyone whoredistributes the software also make the source code of that software publicly available. Contractsthat provide users with a sufficient set of privileges to access and modify the software's source codeare deemed to be "open source licenses." The practice of preserving the rights of software users through a set of license provisions is sometimes called "copylefting." This term is a play on words on the term "copyright." (19) Under thissystem, the copyright holder licenses the recipient of a copy of the software. The license permits theredistribution of further copies of the software -- including software containing modifications --under the condition that those copies are subject to the same license. This legal framework ensuresthat derivatives of the licensed work remain open. If the licensee fails to distribute derivative worksunder the same license, then he may face legal consequences. In particular, the licensor couldterminate the license, leaving the licensee without permission to copy, distribute, or modify thesoftware. (20) Although no official definition specifies which software licenses qualify as open source licenses, an organization called the "Open Source Initiative," or OSI, has promulgated a widelyfollowed set of standards. (21) OSI describes itselfas a "non-profit corporation dedicated to managingand promoting the Open Source Definition" (22) through a certification program that it administers. (23) To satisfy the Open Source Definition, the license must satisfy certain conditions, including: 1. The publisher must provide both object and source code. 2. The publisher must allow modification and redistribution of the code (with or without modifications by the licensee). 3. The publisher must not limit distribution to certain fields of endeavor or products, or limit its use with other free software. (24) A number of different groups have promulgated a variety of open source licenses that OSI has certified as compliant with the Open Source Definition. Among these is the General Public License,or GPL. (25) As compared to the Open SourceDefinition, the GPL imposes additional restrictions uponsoftware publishers. As a result, a license may fulfill the conditions of the Open Source Definitionbut not qualify as a GPL. According to its sponsor, the Free Software Foundation, the GPLguarantees computer users the following "four freedoms": The freedom to run the program, for any purpose. The freedom to study how the program works, and adapt it to your needs. The freedom to redistribute copies so you can help your neighbor. The freedom to improve the program, and release your improvements to the public, so that the whole communitybenefits. (26) It is important to note that, in this context, the term "freedom" does not mean that the software has to be sold at no charge. Rather, it refers to permissible user activities, and in particular theprinciple that software should be openly available in all of its current and future forms to all thosedesiring to learn or benefit from it. (27) The chief distinction between the Open Source Definition and the GPL is that the Open Source Definition effectively allows users to appropriate privately any modifications that they make. (28) Forexample, under the Open Source Definition, a user could refuse to disclose publicly the source codeof any programs that include the user's modifications. The licensee could also claim intellectualproperty rights in any modifications they introduced into the software. (29) Of course, in such cases,the licensee's software would not qualify as open source. In contrast, the GPL requires that thesource code be kept open to the public, even if the recipient of the software made changes. Also,under the GPL, the licensee cannot restrict the ability of others to build upon any modifications thatthe licensee made. (30) For example, a computer programmer may use software under a license that minimally complies with the Open Source Definition. Suppose further that the programmer modifies thesoftware, and then licenses the object code of the modified version with the additional restriction thatno licensee could copy the modified version's object code. This practice is acceptable under theOpen Source Definition. This practice would not comply with the Free Software Foundation's GPL,however. As we have seen, both proprietary and open source software publishers rely upon theintellectual property laws to sustain their chosen development model. More specifically, the term"intellectual property laws" identifies a number of doctrines, including copyrights, patents and tradesecrets, that provide innovators with proprietary interests in their intangible creations. (31) Copyrightprovides authors with exclusive rights in their writings, visual works and other works of authorship;patents relate to products, processes and other useful inventions; while trade secret law concernssecret information that is of commercial value. (32) After briefly identifying the principal policyjustifications for the copyright, patent and trade secret law, this report summarizes the basicworkings of these legal disciplines. By providing individuals with exclusive rights to their inventive products and processes, the intellectual property laws allows authors and inventors to secure the economic benefits of theirdiscoveries. Absent the a system of intellectual property, competitors might readily be able toappropriate the benefits of an innovator's research and development efforts. Aware of thesepotential "free riders," firms might devote few, if any resources towards innovation. Copyrights,patents and trade secrets solve this market failure problem by providing economic incentives forindividuals and institutions to engage in research and development.