Open Source - eMyTextBooks

Search:  

Free online books - just read it!

See live article   •   Open Source
 

Open Source

This book is intended to be an introduction to the Open source software movement. It still getting organized. At the moment a basic outline is available below, once there is some content for each section, and it looks like the outline is more or less stable, the various chapters will be moved into proper sections to conform to wikibook standards. Please take a moment to read the introduction to understand the direction this book is intended to take (at least as of this writing). --Ahc 16:03, 4 Jan 2005 (UTC)

Cover Art Created by Lobster

Table of contents

Introduction

In the last decade the Open Source movement has changed the face of computing more then almost anyone would have thought possible. Many people in the computer industry believe that these changes are the most important changes in computing since IBM contracted Microsoft to write an operating system for their personal computers. This book is intended to provide more detail than the Wikipedia articles on Open Source and Free Software, along with covering information that does not fit into the Wikibook on Freeware. Please feel free to add/correct information throughout the book. This book is not meant to be a listing of projects nor a guide to picking the best software to use (although some pointers are provided later in the book).

What is Open Source?

Open Source or open-source software is different from commercial software. In Open Source, the source code used in the software is available to anyone to examine, evaluate, and adapt. Open source has had an important impact on the way many developers view and create software. End users often use the term open-source to cover a variety of free and open source software.

The Open Source Initiative has this for a definition of open-source software:

Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:

1. Free Redistribution

The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.

Rationale: By constraining the license to require free redistribution, we eliminate the temptation to throw away many long-term gains in order to make a few short-term sales dollars. If we didn't do this, there would be lots of pressure for cooperators to defect.

2. Source Code

The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost–preferably, downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.

Rationale: We require access to un-obfuscated source code because you can't evolve programs without modifying them. Since our purpose is to make evolution easy, we require that modification be made easy.

3. Derived Works

The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.

Rationale: The mere ability to read source isn't enough to support independent peer review and rapid evolutionary selection. For rapid evolution to happen, people need to be able to experiment with and redistribute modifications.

4. Integrity of The Author's Source Code

The license may restrict source-code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.

Rationale: Encouraging lots of improvement is a good thing, but users have a right to know who is responsible for the software they are using. Authors and maintainers have reciprocal right to know what they're being asked to support and protect their reputations.

Accordingly, an open-source license must guarantee that source be readily available, but may require that it be distributed as pristine base sources plus patches. In this way, "unofficial" changes can be made available but readily distinguished from the base source.

5. No Discrimination Against Persons or Groups

The license must not discriminate against any person or group of persons.

Rationale: In order to get the maximum benefit from the process, the maximum diversity of persons and groups should be equally eligible to contribute to open sources. Therefore we forbid any open-source license from locking anybody out of the process.

Some countries, including the United States, have export restrictions for certain types of software. An OSD-conformant license may warn licensees of applicable restrictions and remind them that they are obliged to obey the law; however, it may not incorporate such restrictions itself.

6. No Discrimination Against Fields of Endeavor

The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

Rationale: The major intention of this clause is to prohibit license traps that prevent open source from being used commercially. We want commercial users to join our community, not feel excluded from it.

7. Distribution of License

The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.

Rationale: This clause is intended to forbid closing up software by indirect means such as requiring a non-disclosure agreement.

8. License Must Not Be Specific to a Product

The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.

Rationale: This clause forecloses yet another class of license traps.

9. License Must Not Restrict Other Software

The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.

Rationale: Distributors of open-source software have the right to make their own choices about their own software.

Yes, the GPL is conformant with this requirement. Software linked with GPLed libraries only inherits the GPL if it forms a single work, not any software with which they are merely distributed.

10. License Must Be Technology-Neutral

No provision of the license may be predicated on any individual technology or style of interface.

Rationale: This provision is aimed specifically at licenses which require an explicit gesture of assent in order to establish a contract between licensor and licensee. Provisions mandating so-called "click-wrap" may conflict with important methods of software distribution such as FTP download, CD-ROM anthologies, and web mirroring; such provisions may also hinder code re-use. Conformant licenses must allow for the possibility that (a) redistribution of the software will take place over non-Web channels that do not support click-wrapping of the download, and that (b) the covered code (or re-used portions of covered code) may run in a non-GUI environment that cannot support popup dialogues.

Free software is open-source software, but not all open-source software is free.

What is Free Software?

Free software is software that adheres to the concept of the four freedoms of software, as articulated by the GNU Project. These four freedoms are as follows:

  • The user is free to use the software for any purpose.
  • The user is free to study the mechanisms by which the program operates and to adjust these mechanisms to a specific purpose.
  • The user is free to redistribute the software to another user.
  • The user is free to adapt and improve the program and release these adaptations and improvements to the public.

Free Software shares much of its philosophy with Open-Source software, but many people within the open source community feel that there are important distinctions between the terms, as described in the section Free Software vs. Open-source software.

Often Free Software is referred to as "free as in speech, not as in beer", stressing the idea that the Free-software movement is concerned with freedom, not with price. Throughout this book the reader should assume that the word "free" is referring to freedom.

Free Software vs. Open Source software

The primary distinction of open source software is that it's not about freedom, it's about what software does things better.

This requirement is not true of all open source licenses. In this book we hope to provide enough information so that the reader can understand what the two are and make choices accordingly.

As a whole the movement is often called "Free and Open-Source software" (FOSS). While many people point to the differences between the two, this book will focus on what unites the two. For the purposes of clarity the abbreviation FOSS will be used when describing issues that apply to all open source software projects, whereas OSS will be used when describing issues that apply only to software with open-source licenses that allow future developers to close the source code, and FSS will be used when talking about issues that apply only to software with free licenses requiring future developers maintain the previous style of licensing (if not the license itself).

Public Domain Software

Another common form of open-source software is software that has entered into the public domain. This is software that is unrestricted by copyright or licenses, and therefore free to use for any purpose. Before the rise of the open-source software movement a great deal of software written in academic circles was released into the public domain for peer-review. This practice has changed with the rise of a more intentional open-source movement, resulting in much software that was once public domain, now being released as FOSS. The public domain is where many resources used in open-source projects come from, but there are few (if any) major projects that operate totally within the public domain.

FOSS does not mean no cost

This is a common misunderstanding about FOSS, in no small part because nearly all FOSS programs are available free of charge. For example when the text editor Emacs was first released Richard Stallman charged from time to time to get copies. Developers have the choice to charge under most FOSS licenses, although they rarely choose to. The only requirement to be a truly FOSS project is that the publisher provides the source code with the program, and to allow the user to edit that code.

On top of the initial cost of purchasing software, there are other ongoing costs associated with all software. This can come in the form of support agreements, the cost of customization, training costs support personnel and other sources. This is true of both traditional commercial software and FOSS programs. There is a large and active debate about which type of software is more expensive over the long run for large corporations, for individual users there is little to no question that FOSS is cheaper by far.

History

The history given here is not intended to be a complete, and perfect rendering of the history of the open source movement. Indeed it would be quite impossible to do so, as we are currently in the middle of the movement, and proper histories cannot be written about current events. Instead this chapter is intended to give the reader a general understanding of how the open source movement got started, so they can better understand the current debates.

In the beginning (1960's and 1970's) nearly all code was provided as a form of open-source. Since you had to get programs to run on many different machines, companies that wanted customers to be able to run their software they had to provide the source code to compile themselves. Frequently this code was not encumbered by licensing agreements, or those licenses were never enforced. Often the users would notice flaws in the programs, fix them, and provide the improvements back to the publisher at no charge. Unix user groups often shared code with each other as well, creating an even larger body of code to work from. At the time most companies believed that hardware would always generate far more profit than software.

At the same time when academics wrote programs as part of their research, they would often release the code into the public domain to others to learn from their work. The first email server, ftp server, and web server were all public domain projects that were created by academics and shared as public domain software.

Over time the hardware became more standardized. This allowed software publishers to tighten up on what segments of code they would allow their users to see and edit. This tightening started to frustrate users, especially academics, since they could no longer fix the problem they found, and from time to time found that they couldn't use the hardware or software they wanted to. This trend mostly continued in main stream software, strengthed by the rise of Microsoft.

During the late 1970's Bill Gates (the founder of Microsoft) realized that software, not hardware, held the greatest source of profit in computing. When IBM needed an operating system for their personal computers instead of writing their own, they licenced DOS from Microsoft. This choice changed the face of computing by creating a standard operating system that most personal computers would run on, it lead directly to Microsoft's dominance of personal computing, and later allowed them major access to the server side market as well. Microsoft has grown into the largest software producer in the world, competing in almost every segment of the market. There are many people that feel that the only way to compete with Microsoft is through open source projects which leverage a far larger support base then most companies can provide.

In this sea of activity the FOSS movement primarily grew out of two places: the Berkley System Distribution and Richard Stallman's Free Software Foundation.

BSD

During the 1970s, several research groups at University of Berkley began to create an operating system based on the Unix operating system being created by AT&T at Bell Labs, but with many extensions and improvements. The researchers at Berkley frequently ran into the shortcomings in the versions of Unix available at the time. The first work they did was a collaboration with the programmers at Bell Labs to solve basic hardware incompatibilities in Unix. Over time the operating systems research group at Berkley found ways to improve the basic Unix kernel, and add more powerful features. Concurrently, AT&T made improvements of their own, causing the two products to move in different (although similar) directions. As development progressed on the Berkley version of Unix it grew further and further from the core work that AT&T was doing on their version (the last version of which was System V). In the early 1990s there was a major legal skirmish over the Berkley Software Distribution (BSD) between AT&T, the University of California Berkley and Unix System Laboratories (USL) a retailer of BSD. This suit resulted in most of BSD being released unencumbered by restrictions from the authors of the original code. By the mid-1990s the group that had been heading up the BSD project released 4.4BSD-Lite, Release 2 as their final product. This BSD project was the root of the various versions of BSD that are common today, FreeBSD, NetBSD and OpenBSD. Throughout its development BSD was developed in an open manner, resulting in contributions from many different developers.

The Free Software Foundation and the GNU Project

In 1983 Richard Stallman (then of MIT) became frustrated with the growing limitations imposed on users of software and began to create software that gave control to users. His vision was to create a complete operating system totally free of the restrictions being imposed by proprietary licensing. He started with the first piece of software he would need, the code editor, and GNU Emacs was born.

In 1985 Stallman founded the Free Software Foundation (FSF) to help generate support for the GNU Project. FSF has grown into one of the most important organizations in the FOSS movement. While the primary mission of the FSF continues to be the completion of the GNU operating system, FSF has also taken on the role of "free-software evangelist" by protecting and supporting free software as best as they can. FSF also holds the copyrights to much of the source code written for the GNU project to help ensure that it always remains free.

Over the next 10 years Stallman gathered a group of people to develop all of the core utitilies found on a Unix-like operating system (of which there are hundreds if not thousands of small programs). This project is still ongoing and known as the GNU Project. Many of these programs have become standard fare on the BSD variants (see above). In 1994 Linus Torvalds released the first version of the Linux kernel, and when combined with the GNU utilities already created by the GNU Project the Linux operating system was born. The Debian distribution of Linux is called GNU/Linux to recognize that the GNU Project provides many of the essential utilities. The GNU Project continues slow progress on their own operating system kernel known as Hurd. Hurd is intended to be offered as the official GNU replacement for the Unix kernel, though it is currently under active development.

While the FSF has become a controversial organization, no one can deny that the GNU Project and the FSF have had a major impact on computing. Millions of copies of GNU software are used every day throughout the world.

For More Information

Much of the information for this article came from the following sources. They also contain more information about their areas of open source history if you are interested.

Wikipedia Articles:

Outside Sources:

Philosophy

There is no one philosophy that brings people to open-source software. There are however two main branches of thought in which many people share some similar views and have helped create a strong movement. To understand the open-source movement as a whole you need to understand both of these main philosophies.

Software Freedom

A large subset of the people involved in the open-source software movement are motivated by the idea of software freedom. The advocates of this philosophy prefer to call their subset of the open-source world Free Software. Although there is some debate over its precise definition, there are generally three primary components of software freedom.

  • Freedom to Use

Many believe that software should not have limitations on their private use, aside from restrictions on the creator's liability. In contrast, some commercial packages (like Microsoft Windows) disallow certain usages while a more expensive product allows such a use. According to US copyright law, this right is implicit unless limited by private contracts.

  • Freedom to modify

Possibly more important than the freedom to use is the freedom to modify existing programs. Although certainly related to the overall open-source ideal, this freedom also implies that your modifications remain yours. Some open-source licences require the modifier to assign the rights to their work to the originator of the license (Microsoft's Shared Source program is generally considered one example). Obviously, very few completely commercial software packages give users this freedom. In US copyright law, this is an implicit exclusive right of the creator of a work. To give others this right, the creator must agree to do so.

  • Freedom to distribute

A final key freedom is the ability to distribute software, modified or unmodified. Software packages that limit their distribution limit others freedom to do with it what they will. It can also prevent them from providing their improvement to the community. Similar to the freedom to modify, some open-source licences also limit the freedom to distribute, often requiring changes to be submitted back to some central repository. As with the right to modify, this is an exclusive right of the creator.

Notably absent from these freedoms is the requirement that free software be economically free. Several licences do not prevent merchants from selling the software whether modified or unmodified. In fact, several groups have historically charged for various pieces of software which are generally considered free software. Depending on the licence, the merchant may still be under other restrictions.

An example of a licence that provides software freedom with some restrictions on the distributer of the software is the GNU General Public Licence, or GPL. The GPL was written by Richard Stallman et al., for of the GNU Project. The GPL has all of the above freedoms listed within. The most important difference from the above baseline is what the Creative Commons calls a "Share and Share Alike" clause. If you distribute a modification to a particular software package under the GPL, then you must agree that your portion of the work is also licenced by the GPL. For more information about the GPL there is more information in the licenses section of this book

Open Source Development Model

The second main branch of open-source philosophy revolves around the opportunity for a new software development model. Open-source is also about sharing ideas, and spreading the effort of creating software over a large number of interested developers. This sharing can lead to better software in shorter development times. It also allows for better feedback directly to the developers than is often present in traditional development models. Major companies like Apple and IBM have recognized that there can be a significant advantage to writing software in this way. Apple by way of the Darwin project and IBM through several significant donations of software and patents to open source groups have paved the way for other companies to seriously consider using this development model.

Licences and Patents

What Is A License?

In legal theory, a license is the permission or right granted to engage in some act without which the act might be otherwise unlawful. A license must be granted by a person, institution, or government that has the legal authority to do so. The term "license" also refers to the document that specifically describes these permissions and rights.

Important FOSS Licenses

While there are many open source licenses in use today, a few have emerged as more popular (and therefore more important) than most. We will take some time here to examine these important licenses in some detail. They are listed here in alphabetical order.

For an extensive list of open source licenses see the GNU Project's list of licenses (http://www.gnu.org/philosophy/license-list.html).

Apache

The Apache Software Foundation (ASF) is a non-profit corporation to support Apache software projects. Apache's projects are characterized by a collaborative, consensus based development process, an open and pragmatic software license. Among the ASF's objectives are to provide legal protection to volunteers working on Apache projects, and to protect the Apache brand name from being used by other organizations.

There are currently two forms of the Apache in wide use today: versions 1.1 and 2.0. While 2.0 is considered by ASF to be the current version and most users have happily switched, a few large groups objected to new clauses inserted into 2.0 regarding patents, and have refused to use any software with the new license (most notable the OpenBSD project).

BSD

BSD is both a license, and a class of licenses (generally referred to as BSD-like). The modified BSD license (in wide use today) is very similar to the license originally used for the BSD version of Unix (see BSD history above). The BSD license is a simple license that merely requires that all code licensed under the BSD license be licensed under the BSD license IF redistributed in source code format. BSD (unlike some other licenses) does not require that source code be distributed at all.

BSD is actually very close, though still distinct, from a public domain licence. Like works in the public domain, BSD-like licences permit nearly free modification and distribution of a work. There are only two significant ways in which BSD-like licences differ from public domain. First, the BSD licence carries the requirement that the licence, along with it's statement of copyright, is carried along with the work, or modified copies. This does not however limit code under different licences from being combined with it. Second, the BSD-like licences have a standard disclaimer of guarantees, such as fitness for a particular use and merchantability. This latter portion should not come as any surprise, since practically all software packages carry a clause nearly identical to this one.

In summary, the major difference between BSD-like licences and the public domain is that BSD licenced works must remain attributed to the original creator(s). Some BSD licences take this further, and require similar copyright statements in advertising materials for a distributed software product. Most however are simply limited this basic requirement.

For those who are opposed to the GPL for its limitations on modification and distribution, the BSD licence is often quite acceptable. Due to the inherent lack of limitations, BSD code can be incorporated into any other project, commercial or otherwise, removing a lot of the worries of licencing issues from code. Similarly, for those who endorse the licences such as the GPL for their ability to protect software freedoms, the BSD is looked upon as a step in the right direction, but not enough to guarantee said freedoms. They often encourage the use of more GPL like licences for this reason.

GPL

The GNU General Public License is a free software license, created by the Free Software Foundation (FSF); version 2 was released in 1991. It is usually abbreviated to GNU GPL, or, simply, GPL. FSF recently announced that they are started work on version 3 of this license.

The GPL protects the 3 main articles of software freedom as defined in the section on Software Freedom. The GPL also contains a clause requiring publishers of GPL licensed programs, that make modifications to the software, to distribute that modification under the GPL. This clause which causes others to give the GPL the label "viral", since it apparently "infects" any code which it touches. In practice, this clause is not that invasive. If such a violation is found, detaching the GPLed code from the modified code by placing it in a different file is generally sufficient to return to compliance with the license.

It is important to note that the GPL is not a contract, in the same way that End User License Agreements are. It provides no restrictions on use aside from those already set by copyright law. However, to utilize any rights which are not explicitly given to you, you have to accept the conditions of the GPL. For example, you cannot distribute a work without the creator's consent. If the work is under the GPL, then the GPL lists the conditions under which the creator has agreed to give you consent.

LGPL

An important corner-case of the GPL requires that only GPL code can link with with GPL libraries, even if the library is contained in a separate file, and the code which uses it contains no GPL code unto itself. This is seen by some as too strict, since such an action could be considered a "use" of the library, not as a modification. In order to allow for such a distinction, the LGPL was created. The LGPL fixes precisely this problem: If someone uses an LGPL work as a library which is symbolically linked with a project, the rest of the project does not have to be put under the LGPL. On the other hand, if any modifications are made to the LGPL'ed work which are distributed along with the software package as a whole, the changes must be made public, similar to the rules of the GPL. The "L" in the LGPL stands for different things for different people. Initially it was considered as a "Library" licence, since the clause specifically dealt with issues of linking. However, the GNU Foundation describes this as the "Lesser" GPL, since it gives fewer protections to the work than the GPL does. While the GNU Foundation does not frown upon the use of the LGPL, it encourages the use of the GPL when possible.


A brief note about copyrights and lefts

Software licensing should not be confused with copyright protections. Open-source licensing relies on copyright protections to be effective. The author of software can limit the use of the code since the code can be treated as a written work, and can limit the use of the software through the license. Copyright protections allow the author to be sure the code remains under the protections of the license they select (unless the license allows changes).

The concept of copyleft also grew out of the work by GNU and others in the open source movement. Where copyrights are intended to protect written works from unauthorized use, copyleft encourages unauthorized use.

Note: Wikibooks is made available under the copyleft GNU Free Documentation License (http://www.gnu.org/copyleft/fdl.html).

Patents

In the past few years the issue of software patents has become one of the most pressing to those in the open-source movement. In the United States and some other countries software is subject to patent protections. While only some other countries have placed similar restrictions on the production of software the patent system in the US has become problematic worldwide.

Economics of FOSS

Free doesn't mean no Cost

Problems with traditional commercial software

Before we go into the problems with commercial software it should be noted that the commercial software industry is one of the largest and most important industries in the world. The rise of the Open Source movement does not necessarily mean that the commercial software industry will fail. In fact many people argue that commercial software can be strengthed by the use of open-source techniques. Commercial software is designed to provide a product worth paying for and most of it is (that's why the industry is so big). Commercial software, however much it is worth paying for, is not perfect.

Often commercial products suffer from requirements that the software needs to be 'improved' to meet marketing needs. These needs to lead to software practices that rearrange and rewrite the software too frequently, or release beta versions as commercial endeavours resulting in high rates of bugs in early versions. Some commercial programs are over designed and written in poor languages by inexperienced or sloppy coders leading to bloated slow running programs. Open Source is driven by the needs of the end users, and the skills of coders taking personal pride in what they do, not rushing to meet artificially imposed deadlines (except their own).

Another problem with traditional commercial software (from the view of Open Source advocates) often forces users to follow upgrade paths they may not wish to follow. To keep using data files you are often forced to continue to use the same program. If you wish to share files with users that have upgraded, you often have to upgrade yourself or be written off as irrelevant. Since open source software allows competing programs to share data file types, therefore you are not trapped with one program. If a newer version has a new file time, often converters can easily be written to allow users of older versions to keep up more easily.

Internationalization

The open nature of Open Source Software allows for extensive internationalization of software. OS's can be modified for any language, for example recently a version of Linux was translated into Welsh (spoken in Wales). While many major commercial projects are provided in multiple languages, it is often too expensive to translate them into more than 3 or 4 languages. Many FOSS projects are available in 10 or more languages, as the translation can be done by a programmer who wants the package to be available in their native tongue.

Case Studies

Probably the four best known Open Source projects in the world today are: the Apache web server, the BSD operating system, the Linux kernel, and the Mozilla web browser (or its spin off, Firefox).

Apache

The Apache web server is currently the most popular web server in the world. Nearly 70% of all web sites are served by Apache.

The Apache project grew out of an attempt to improve upon the original web server httpd. httpd, was a public domain software project that was largely abandoned in the early 1990's. At that time it was the most popular web server in use, and several developers recognized that development needed to continue. Since httpd was in the public domain they were able to continue work on the program and include a great number of improvements. They quickly organized themselves into the Apache Foundation, to have a stable organization to oversee the on-going work on their new web server. Apache's version of httpd quickly overtook the original httpd as the most popular browser in use.

Over time the Apache Foundation grew to house many related open source projects. Including Tom Cat, a popular Java serverlet server, and many others.

After many years of developing Apache 1.x, the Apache Foundation found that some of the original architecture of Apache was starting to show it's age, and further extensions were becoming impossible. Therefore a team of mostly volunteer developers started to develop Apache 2. Apache 2 is a complete rewrite of Apache, and has allowed the Apache Foundation to add new flexibility of their flagship product.

The stature of the Apache Foundation has also allowed them to become a repository for significant donations of software to the open source community. Most notably 2 large donations from IBM to the Apache Foundation in 2004.

BSD

BSD (short for Berkley Software Distribution) is a family of three free Unixes, namely OpenBSD, FreeBSD and NetBSD. They all are all successors of BSD 4.4.

Linux

The Linux kernel is currently one of the most active, and important open source development projects. In the early 1990's Linus Torvalds released the first versions of the Linux kernel because he wanted a Unix-like opperating system that would work on his computer. Since then the Linux kernel has been used in several distributions that are currently supported by companies like IBM and Novell.The Linux kernel is the official kernel used in the GNU/Linux operating system and is currently in its 2nd major version.the official home page of the Linux kernel project is kernel.org (http://www.kernel.org)

Mozilla (Firefox)

Mozilla and the more recent Firefox are open source derivatives of the Netscape Navigator web browser. As a result of the release of Firefox 1.0 the web saw the first major shift in web browser usage in 5 years.

Starting and Maintaining an Open Source Project

Getting Started

Vapourware is software that is 'floated' to see if there is interest. Many projects, if donated to the open source methodology would find usage, development and markets much quicker. Lost code might be resurrected and enhanced. More and more computer users are learning to use the excellent development tools created and enhanced by programmers. If you have a good idea, open source is a way of making it happen.

Project Management

Version Numbers

Many new users find the FOSS projects often use strange version numbering systems. For instance it is very common to see software in wide distribution that has a version number less than 1.0. For example the web browser Firefox was widely used by version 0.6, more than a year before version 1.0 was finished. In the world of FOSS software it is generally considered important to work out all the known bugs before releasing version 1.0. While this is not a totally attainable goal, many users find early versions of software much more stable than early versions of their commercial counterparts.

Generally FOSS projects break their version numbers into 3 pieces: major version, minor update, point release. Major version is the first number in the version number; it is rare to see a free software project have a major version greater then 2 (although GNU Emacs is currently on version 21, so it is not unheard of). The minor update is the second number (the x in 2.x). A change in the number often signifies a significant update of the program. The third number (the y in 2.x.y) generally indicates a small update to fix a bug, or security problem. These numbers get very high, often over 30 or 40 over time. When a software project is well established most of their updates will come in the form of point releases.

Version numbers many also carry extra meanings. For instance ever since the Linux kernel went to version 2, it has been the practice of the design team to use odd numbers for development kernels, and even numbers for stable kernels. Therefore while it is common to see 2.2, 2.4, and 2.6 all in use today, 2.1, 2.3, 2.5 are almost no where to be seen. There are still teams that work on supporting bug/security fixes to the 2.0, 2.2, 2.4 and 2.6 kernels. As or March 2005, this policy was under review by the primary authors of the Linux kernel, however there are many projects that use similar numbering schemes, and so it holds as a useful example.

When a software project changes the major version number, this generally indicates a complete rewrite of the software, or at least an extensive over haul. The Apache web server started a version 2.0 in 2003, after many years of 1.3.x versions. Apache2 is a near total rewrite of Apache, which provides many new features, and significantly improved the underlying code base. The apache foundation still maintains the 1.3.x code base, although most efforts for new code are done on the 2.0.x code base.

Writers of software may completely rewrite a program, improve software or unnecessarily inflate perfectly good software. If software works then there is little need to upgrade.

Also upgrading may solve some problems and add new ones. To give you an example 'Abi Word' is a fine word processor but it crashed on me. The complete package in Open Office has never done this nor has notepad or WordPad. New improved 'notepads' have occasionally crashed. So I stopped being seduced by what has many features. Any software that has the hidden feature of crashing is a liability. I have used Miranda IM without problem, others find it does not work.

Open Source Hardware

Open Source Hardware (http://opencollector.org/Whyfree/) is developing free BIOS and CPU specs and electronic designs.

Future Developments

FOSS is creating a new outlook. The attitude is of particular benefit to the commercial sector who obtain code and tools to commercialise. Developing nations and people can use no cost materials and resources. The developer community is trying out new systems and most importantly leaving a legacy that will be available for generations to come.

Ideas in use outside of technology

Grass roots organizers have started to take on some of the ideas generated by the Free software movement. By encouraging more transparency and sharing of ideas grass roots groups have found they can motivate more people with less effort.

Projects like Wikipedia and Wikibooks were founded with many of these same principals in mind.

Tips for picking software

There is no one best way place to find FOSS projects that will best serve your needs. There are several rules of thumb you can use to help you make informed decisions.

  • Do you already have something that will do the job well?
Before you hunt up new software, make sure you do not already have a program that will do the job nicely. Many users don't realize the tools they already have installed (particularly if you use Windows and MS Office), and don't need anything new.
  • Does the program do what you want?
While this might seem obvious, every IT support person can tell you stories of users that came to them asking for help using a particular tool because a friend recommended it, but it is the wrong tool for the job.
  • Do you care about the ideologies behind free software and open source software?
There are many people that feel that using free software is an important part of how they live and work. This is similar to why some people choose to be vegan, and can be an important part of the selection process.
  • Do you know other people that already use it?
Online reviews are great, but there is still nothing like talking to someone you know about a program they use every day. Real user can tell you how the program has performed over the long run. Your friend may have discovered that while it worked great a first it was missing an important feature for a project you have in mind. Also if you are doing a common task with a program that no one else is using, there's probably a reason (and it's not likely that you're smarter then everyone else...sorry).
  • Is the current version over a year old?
If yes, then the project has most likely died or stagnated. Active projects tend to produce new updates every few weeks or months. While old releases may be a sign of a well written program, that needs little to no updating, often it is a sign that the programmers have moved on to other endeavours and abandoned the project.
  • Are there user support mailing lists you can join?
Particularly when you are new to a program it is nice to be able to get support learning your way around. Email lists or web discussion boards are often excellent sources of support for FOSS programs. Also look at the list's archives, if they are active lists you can get a sense of what the common problems, and how many people are using the program.

Other Frequently Asked Questions

Is Open Source software always of better quality than other types of software?

Far from it. The same is true of freeware, shareware and commercial software.

Programmers may still be learning, and provide their projects in an open-source venue as a means of quicker development by opening the project to others. Lack of interest may result in abandoned projects. If the need and idea is good open source is rapidly and effectively developed. The original developer may benefit from their experience as well as faster bug discovery by others in the community. Expect many minor releases from Free and Open Source software.

Where can I find Open Source Software?

If after all you are interested in finding Open Source software, please see the wikibook on Freeware. The Freeware book contains a growing list of freeware programs including many Open Source software projects. Also see www.gnu.org for a list of projects sponsored by the Free Software Foundation. The Open CD (http://theopencd.sunsite.dk/index.php) is a good introduction for Windows users interested in a sample of high quality open source software.

Other Resources

Contributors

  • Lobster: started and split this book into two - the other book became Freeware Sept 2004
  • ahc: Took over/reshaped when the book was mostly abandoned. Started work fall 2004


Also helps finding: OpenSource, olen, cource, oen, sourced, ope, sorce, opin, sourse, opn, souce, opne, soure, ppen, sourde

   
 
  
Add to bookmarks
Related Articles
 
Open Culture
A Neutral Look at Operating Systems/Proprietary OSs
Windows © OS, Inside OUT!
Freeware
Wikiversity:Welcome
XBasic
Open Source
Programming:Python Overview
Main Page/test
Programming:C
Top Articles
 
Ada Programming/Keywords/and
Ada Programming/Keywords/pragma
Ada Programming/Keywords/with
Cookbook:Chicken
Cookbook:Flour
Cookbook:Pepper
Cookbook:Sugar
Cookbook:Tablespoon
Cookbook:Teaspoon
GAT: A Glossary of Astronomical Terms
General Biology
Mishnah
Programming:C
Robotics
SA NCS:Accounting
SA NCS:Agricultural Science
SA NCS:Life Orientation
SA NCS:Life Sciences
SA NCS:Mathematical Literacy
SA NCS:Visual Arts
The Golden Bough
Search LiveJournal blogs for Open Source
 

Wordpress Themes  •  Credit Consolidation  •  Find jobs  •  Valentine's Day Gifts •  Loans

Copyright @ 2005 eMyTextBooks.com
This article is from Wikibooks. All text is available under the terms of the GNU Free Documentation License.