FOSS A General Introduction/Introduction

From Wikibooks, open books for an open world
Jump to navigation Jump to search

What is Free/Open Source Software?[edit | edit source]

David Wheeler:

Briefly, OSS/FS programs are programs whose licenses give users the freedom to run the program for any purpose, to study and modify the program, and to redistribute copies of either the original or modified program (without having to pay royalties to previous developers). [1]

Free and Open Source Software (FOSS) has become an international phenomenon, moving from relative obscurity to being the latest buzzword in a few short years. However, there is still a lack of understanding about what really constitutes FOSS and the ramifications of this new concept. To better explain this phenomenon, we will examine the philosophy and development methods behind FOSS.

The FOSS philosophy[edit | edit source]

There are two major philosophies in the FOSS world: the Free Software Foundation (FSF) philosophy and the Open Source Initiative (OSI) philosophy. We begin with the FSF philosophy, due to its historical precedence (see the following section, “A Brief History of FOSS”) and pioneering position in the movement.

According to the FSF, free software is about protecting four user freedoms:

  • The freedom to run a program, for any purpose;
  • The freedom to study how a program works and adapt it to a person’s needs. Access to the source code is a precondition for this;
  • The freedom to redistribute copies so that you can help your neighbour; and
  • The freedom to improve a program and release your improvements to the public, so that the whole community benefits. Access to the source code is a precondition for this.[2]

At the heart of FSF is the freedom to cooperate. Because non-free (free as in freedom, not price) software restricts the freedom to cooperate, FSF considers non-free software unethical. FSF is also opposed to software patents and additional restrictions to existing copyright laws. All of these restrict the four user freedoms listed above. For a more detailed explanation of why software needs to be free, please refer to the FSF explanation, “Why Software Should Be Free”, found at http://www.gnu.org/philosophy/shouldbefree.html

The OSI philosophy is somewhat different:

The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.[3]

The OSI is focused on the technical values of making powerful, reliable software, and is more business-friendly than the FSF. It is less focused on the moral issues of Free Software and more on the practical advantages of the FOSS distributed development method.

While the fundamental philosophy of the two movements are different, both FSF and OSI share the same space and cooperate on practical grounds like software development, efforts against proprietary software, software patents, and the like. As Richard Stallman says, the Free Software Movement and the Open Source Movement are two political parties in the same community.

The FOSS development method[edit | edit source]

The FOSS development model is unique and became possible only with the advent of the Internet and the communication boom caused by it. The cathedral and bazaar analogies are used to contrast the FOSS development model with traditional software development methods.[4]

Traditional software development is likened to the way cathedrals were built in ancient times. Small groups of skilled artisans carefully planned out the design in isolation and everything was built in a single effort. Once built, the cathedrals were complete and little further modification was made. Software was traditionally built in a similar fashion. Groups of programmers worked in isolation, with careful planning and management, until their work was completed and the program released to the world. Once released, the program was considered finished and limited work was subsequently done on it.

In contrast, FOSS development is more akin to a bazaar, which grows organically. Initial traders come, establish their structures, and begin business. Later traders come and establish their own structures, and the bazaar grows in what appears to be a very chaotic fashion. Traders are concerned primarily with building a minimally functional structure so that they can begin trading. Later additions are added as circumstances dictate. Likewise, FOSS development starts off highly unstructured. Developers release early minimally functional code to the general public and then modify their programs based on feedback. Other developers may come along and modify or build upon the existing code. Over time, an entire operating system and suite of applications develops and evolves continuously.

The bazaar method of development has been proven over time to have several advantages:

Reduced duplication of effort
By releasing programs early and granting users the right to modify and redistribute the source code, FOSS developers reuse the work produced by compatriots. The economies of scale can be enormous. Instead of five software developers in 10 companies writing a single networking application, there is the potential for the combined efforts of 50 developers. The reduced duplication of effort allows FOSS development to scale to massive, unheard of levels involving thousands of developers around the world.
Building upon the work of others
With the availability of existing source code to build on, development times are reduced. Many FOSS projects rely on software built by other projects to supply needed functionality. For example, instead of writing their own cryptographic code, the Apache web server project uses the OpenSSL project’s implementation, thereby saving thousands of hours of coding and testing. Even in cases where source code cannot be directly integrated, the availability of existing source code allows developers to learn how another project has solved a similar problem.
Better quality control
"Given enough eyeballs, all bugs are shallow” [5] is an oft-cited quotation in the FOSS world. It means with enough qualified developers using the application and examining the source code, errors are spotted and fixed faster. Proprietary applications may accept error reports but because their users are denied access to the source code, users are limited to reporting symptoms. FOSS developers often find that users with access to the source code not only report problems but also pinpoint the exact cause and, in some cases, supply the fixes. This greatly reduces development and quality control time.
Reduced maintenance costs
Maintenance of any software package can often equal or exceed the cost of initial software development.[6] When a single organization has to maintain software, this can be an extremely expensive task. However, with the FOSS development model, maintenance costs can be shared among the thousands of potential users of a software application, reducing per-organization costs. Likewise, enhancements can be made by the organization/individual with the best expertise in the matter, which results in a more efficient use of resources.

What is the history of FOSS?[edit | edit source]

A Brief History of Free/Open Source Software Movement: [7]

The free/open source software movement began in the "hacker" culture of U.S. computer science laboratories (Stanford, Berkeley, Carnegie Mellon, and MIT) in the 1960's and 1970's.

The community of programmers was small, and close-knit. Code passed back and forth between the members of the community--if you made an improvement you were expected to submit your code to the community of developers. To withhold code was considered gauché--after all, you benefited from the work of your friends, you should return the favor.

A Brief History of Free/Open Source Software Movement[edit | edit source]

The FOSS movement dates back to almost the very beginning of the computer industry, although it was not then formally defined or conceptualized. It was only in the late 1970s and early 1980s that the sharing of software began to really come in conflict with proprietary software. One of the earlier references to proprietary software was made by William H. Gates III in his now-famous “An Open Letter to Hobbyists.[8] In this letter, dated 3 February 1976, he rails against the prevailing culture of software sharing:

Why is this? As the majority of hobbyists must be aware, most of you steal your software. Hardware must be paid for, but software is something to share. Who cares if the people who worked on it get paid?

Proprietary software would gain momentum over the years. At the pioneering MIT Artificial Intelligence Lab in the early 1980s, a company called Symbolics was formed and took what was freely available code (the LISP programming language) and made it proprietary. In the process, it wiped out the software-sharing culture of the MIT lab at the time.[9] This destruction, however, would eventually result in the creation of the FSF and the FOSS culture today.

Richard Stallman, one of the MIT lab members at the time, was appalled at the turn of events. It would shape his view of proprietary software and instill in him the resolve to create a free operating system. The GNU (recursive acronym for GNU is Not Unix) project was born in January 1984 and over the next decade, it created a variety of critical tools that formed a portion of the operating system. The FSF was created a year later to promote Free Software and the GNU project. However, up until 1991, the GNU project had yet to produce a totally free software system due to a missing critical piece: the kernel.

The kernel is the heart of the operating system. In 1991, Linus Torvalds, who at the time was a second year graduate student at the University of Helsinki, wrote and distributed a Unix-like kernel. In the manner of FOSS development, it was distributed widely, improved upon and soon adapted to become the core of the GNU/Linux operating system.

There were other FOSS projects in progress at the time, including BIND, Perl and the BSD operating systems. All of these projects eventually ended up merging or cross-pollinating.

The GNU/Linux operating system would continue to grow steadily in features and capabilities. In 1997 Linux exploded into the press limelight, with International Data Corp (IDC) noting that GNU/Linux already owned 25 percent of the server market [10] and was growing at an annual compound growth rate of 25 percent.

In 1998, in response to Netscape’s release of its Netscape Navigator code as FOSS, a group of FOSS developers came together and the label “Open Source” was created. This led to the formation of the Open Source Initiative and the Open Source Definition. The primary purpose of this initiative was to get the corporate world to pay attention to the FOSS development process and steer a path away from the “confrontational” attitude of the Free Software movement.[11]

In 1999, the massively successful IPO of GNU/Linux distributor Red Hat gave it a market capitalization of US$4.8 billion. Other successful IPOs that year were VA Linux (US$7 billion), Cobalt Networks ($3.1 billion) and Andover.net ($712 million).[12] As the poster child of FOSS, GNU/Linux's success meant that FOSS had truly arrived.

Footnotes[edit | edit source]

  1. Wheeler, David, “Why OSS/FS? Look at the Numbers!” [home page online]; available from http://www.dwheeler.com/oss_fs_why.html ; Internet; accessed on November 7, 2003.
  2. “The Free Software Definition”[home page online]; available from http://www.fsf.org/philosophy/free-sw.html Internet; accessed on November 9, 2003.
  3. Open Source Initiative [home page online]; available from http://www.opensource.org ; Internet; accessed November 8, 2003.
  4. Raymond, Eric S., “The Cathedral and the Bazaar” [home page online]; available from http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ ; Internet; accessed on November 7, 2003.
  5. Raymond, Eric S., “The Cathedral and the Bazaar” [home page online]; available from http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html; Internet; accessed on November 7, 2003.
  6. Bengtsson, Lassing, Bosch, van Vliet, “Analyzing Software Architectures for Modifiability”; available from http://www.cs.rug.nl/~bosch/papers/SAAModifiability.pdf ; Internet; accessed on November 7, 2003.
  7. “A Brief History of Free/Open Source Software Movement” [home page online]; available from http://www.openknowledge.org/writing/open-source/scb/brief-open-source-history.html; Internet; accessed on November 7, 2003.
  8. “An Open Letter To Hobbyists by Bill Gates – 1976”; available from http://www.tranquileye.com/cyber/1976/gates_open_letter_to_hobbyists.html; Internet; accessed on November 7, 2003.
  9. Moody, Glyn, “Rebel Code”, Penguin Books, London, England, 2001.
  10. Rasch, Chris, “A Brief History of Free/Open Source Software Movement”; available from http://www.openknowledge.org/writing/open-source/scb/brief-open-source-history.html ; Internet; accessed on November 7, 2003.
  11. “History of the OSI” [home page online]; available from http://www.opensource.org/docs/history.php ; Internet; accessed on November 7, 2003.
  12. Scannell, Ed. “Linux takes the operating system scene by storm”, Infoworld.com; available from http://archive.infoworld.com/supplements/99poy_drv/99poy_linux.html ; Internet; accessed on November 7, 2003.