|< Free Open Study >|| |
Linux systems are generally open source software, meaning that their source code is readily available and freely redistributable. However, many people don't understand what it actually means to be open source; even more, many people don't understand just how fundamental the open source ethos is to the evolution of Linux. This chapter will discuss open source and free software, and explore what these concepts mean to GNU and Linux. Readers who are already well versed in open source and free software may wish to skim or skip this chapter, and move on to Chapter 3.
There is a great deal of passion and rhetoric surrounding open source and free software. There are several basic arguments that appear in various forms, which establish the foundations for open source and free software. The philosophical issue of free software remains largely subjective, and an argument that one person considers valid may not work for someone else. In other words, it's a touchy issue. This section will attempt to outline the basic tenets of the various following arguments, as objectively as possible. However, readers should take this section with a grain of salt, and remember that it's just one humble author's perspective.
Software development isn't easy. It takes knowledge and skill, and most of all, time. For these reasons, software development has a cost. For commercial organizations, it's expensive financially; even for free software developers, it's expensive in terms of effort. For these reasons, it makes a lot of sense to share as much as possible. In that respect, software development is just like any other scientific or technical discipline. Scientists share information about their work with one another, and work together as a community to advance the state of the art, building on each others' work.
In contrast, companies have a profit motive, and strive to make as much profit as they can. Companies that sell products must, of course, perform the research and development that creates these products. However, companies have no motive to share this information with anyone else; after all, if they did, another organization might be able to profit from it as well, which is profit that the company could have had for themselves.
Normally, this two-faceted model works fine: scientists in academia (and sometimes in industry) produce theories and discoveries, perform experiments, and share their findings. Engineers, meanwhile, take this information and use it to build actual products that companies sell. The companies exist in order to marshal and manage the resources required to bring those products to market—a task which is usually beyond the capability of a single person.
However, like so many others, this model breaks down when applied to software. The primary difficulty is that software itself has no intrinsic value. A tangible piece of equipment such as a car has value, essentially because it cost something to build. That is, even if you have the full schematics for a car, you still must have the raw materials to build it, and those raw materials are not free. Thus, the car has an intrinsic value, separate from the cost it took to design it.
A software program, however, costs nothing to build. Once you have it written, you can replicate it endlessly, effortlessly, and exactly (with never any errors). A car, on the other hand, has costs in raw materials and fabrication. Cars and software programs both cost money to develop, of course; however, once the R&D is done, the actual cars must still be manufactured, while the software is simply copied. Since software has no cost of replication, its only cost is the effort spent to develop it. Thus, unlike a car, software has no intrinsic value. Because of this, the concept of a "software company" that actually sells software is incredibly bizarre, if you stop to think about it. It's like selling air.
Now, it's still true that software developers have to recoup their R&D costs. However, this kind of R&D is really just an overhead cost of the main product. For vendors of hardware that includes software (such as web servers, cellular phones, or personal digital assistants) the software is viewed as simply a necessary cost of developing the product. For service-oriented companies such as web site developers and network support companies, the software is simply an overhead cost of providing the service. In neither case is software being sold for its own value. When you think of things this way, the notion of selling software seems more and more odd the longer you think about it.
Of course, this whole argument is a generalization and isn't always true. Specifically, it's only true of horizontal software. The concept of a horizontal software product is described in its own section a little later in this chapter.
The upshot of all this is that since the only cost of many types of software is the cost to develop it, there is no rational reason for a company to exist for the purpose of marshalling and managing the resources required to manufacture it. This argument—or at least similar notions—form the foundation for activists who believe in a very different philosophy for software development.
Richard Stallman is an activist and computer scientist who founded the Free Software Foundation and the GNU project in order to foster a sharing culture for software development. The FSF fosters sharing and collaboration—the scientific ethic—for software development. All of the FSF's software is released along with its source code and a license that ensures its continued openness.
Stallman describes software developed in this way as free software. In what has become an old saw in the open source community, the "free" in "free software" is "free" as in "free speech", not "free" as in "free beer." That is an important distinction. Software that is given away without source code (such as some web browsers), is not free software, but is merely "no-cost" software.
The arguments presented in this chapter are largely based on vaguely economic, philosophical, and political notions. While this book strives for objectivity, readers should realize that there are many different perspectives on these issues, and are highly encouraged to read Stallman's (and this FSF's) own arguments and documentation on the subject. One of the best sources of such information is obviously the Free Software Foundation's web site, at http://www.fsf.org. At that site, you can find the official positions of the FSF, and all their arguments on these issues.
|< Free Open Study >|| |