Search Engine

Custom Search

Monday, July 14, 2008

Open Source Software

Open Source Software
Introduction
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.
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.
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.
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.
5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons.
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.
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.
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.
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.
10. License Must Be Technology-Neutral
No provision of the license may be predicated on any individual technology or style of interface.

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.
We in the open source community have learned that this rapid evolutionary process produces better software than the traditional closed model, in which only a very few programmers can see the source and everybody else must blindly use an opaque block of bits.
Open source software is an idea whose time has finally come. For twenty years it has been building momentum in the technical cultures that built the Internet and the World Wide Web. Now it's breaking out into the commercial world, and that's changing all the rules.

Ø Bigger picture:

· The fundamental characteristic of OSS/FS is its licensing, and an OSS/FS project that meets at least one customer’s need can be considered a success, However, larger OSS/FS projects are typically developed by many people from different organizations working together for a common goal. As the declaration Free Software Leaders Stand Together states, the business model of OSS/FS “is to reduce the cost of software development and maintenance by distributing it among many collaborators”.

Many have noted that OSS/FS approaches can be applied to many other areas, not just software. The Internet encyclopedia Wikipedia, and works created using Creative Commons licenses (Yahoo! can search for these), are other examples of this development approach.

· OSS/FS is also an example of the incredible value that can result when users have the freedom to tinker (the freedom to understand, discuss, repair, and modify the technological devices they own). Innovations are often created by combining pre-existing components in novel ways, which generally requires that users be able to modify those components. This freedom is, unfortunately, threatened by various laws and regulations such as the U.S. DMCA, and the FCC “broadcast flag”. It’s also threatened by efforts such as “trusted computing” (often called “treacherous computing”), whose goal is to create systems in which external organizations, not computer users, command complete control over a user’s computer (BBC News among others is concerned about this).
Ø Scope:
· operating system (OS) known as GNU/Linux (which many abbreviate as “Linux”), the Apache web server, the Mozilla Firefox web browser, and the OpenOffice.org office suite, since these are some of the most visible OSS/FS projects.
· Unix systems as well, though the situation with Unix is more complex; today’s Unix systems include many OSS/FS components or software primarily derived from OSS/FS components.

· An OSS/FS program must be released under some license giving its users a certain set of rights; the most popular OSS/FS license is the GNU General Public License (GPL). All software released under the GPL is OSS/FS, but not all OSS/FS software uses the GPL.

Ø Organization of this paper:
· The most popular web server has always been OSS/FS since such data have been collected. For example, Apache is the #1 web server with over three times the market share of its next-ranked (proprietary) competitor.

· A 2004 InformationWeek survey found that 67% of companies use OSS/FS products, with another 16% expecting to use it in 2005; only 17% have no near-term plans to support OSS/FS products.

· Businesses plan to increase their use of GNU/Linux.
A survey in May 2004 found that over 75% of all DNS domains are serviced by an OSS/FS program
· MySQL’s market share is growing faster than Windows’. An Evans Data survey released in January 2004 found that the use of OSS/FS database MySQL grew 30% over the year, vs. 6% for Microsoft’s SQL Server and Access databases, according to a survey of 550 developers.
· A February 2005 survey of developers and database administrators found that 64% use an Open Source database.
History

An important development to OSS/FS was the start of the ARPAnet, the early form of the Internet. Another critical development was the operating system Unix, developed by AT&T researchers, and distributed as source code (with modification rights) for a nominal fee. Indeed, the interfaces for Unix eventually became the basis of the POSIX suite of standards.
However, as years progressed, and especially in the 1970s and 1980s, software developers increasingly closed off their software source code from users. This included the Unix system itself; many had grown accustomed to the freedom of having the Unix source code, but AT&T suddenly increased fees and limited distribution, making it impossible for many users to change the software they used and share those modifications with others.
Richard Stallman, a researcher at the MIT Artificial Intelligence Lab, found this closing of software source code intolerable. In 1984 he started the GNU project to develop a complete Unix-like operating system which would be Free Software (free as in freedom, not as in price, as described above). In 1985, Stallman established the Free Software Foundation (FSF) to work to preserve, protect and promote Free Software


Reliability:

· IBM studies found GNU/Linux highly reliable. IBM ran a series of extremely stressful tests for 30 and 60 days, and found that the Linux kernel and other core OS components -- including libraries, device drivers, file systems, networking, IPC, and memory management -- operated consistently and completed all the expected durations of runs with zero critical system failures. Linux system performance was not degraded during the long duration of the run, the Linux kernel properly scaled to use hardware resources (CPU, memory, disk) on SMP systems, the Linux system handled continuous full CPU load (over 99%) and high memory stress well, and the Linux system handled overloaded circumstances correctly.

· An in-depth analysis (published in the Communications of the ACM) found good evidence that OSS/FS code quality appears to be at least equal and sometimes better than proprietary software.

Performance:
· Comparing GNU/Linux and Microsoft Windows performance on equivalent hardware has a history of contentious claims and different results based on different assumptions. OSS/FS has at least shown that it’s often competitive, and in many circumstances it beats the competition.
· Microsoft themselves found that two OSS/FS operating systems, Linux and FreeBSD, had better performance than Windows by many measures.
IBM found that GNU/Linux had better performance than Windows for pipes (an input/output mechanism), and also process and thread creation.
TPC-C database measures found that a Linux based system was faster than a Windows 2000 based system.
Scalability
· GNU/Linux dominates in supercomputing: it is used in 78% of the world’s 500 fastest supercomputers use GNU/Linux, most of the world’s ten fastest supercomputers... including the world’s most powerful supercomputer.

· GNU/Linux and NetBSD (both OSS/FS) support a wider range of hardware platforms and performance than any other OS.
Governments and OSS/FS
Practically all governments use OSS/FS extensively, and many have policies or are considering policies related to OSS/FS. Motivations vary; for many governments, the overriding rationale for considering OSS/FS is simply to reduce costs. Such governments will still take a variety of other factors into account such as reliability, performance, and so on, just like a commercial firm would do. Some governments may also consider the special privileges granted to them by OSS/FS; e.g., there are direct advantages to users if they can examine the source code, modify the software to suit them, or redistribute the software at will.
In contrast, some governments also consider OSS/FS as a way of supporting other national policies. Here is a list of some of the other considerations that have been reported by various governments:
supporting industrial policy -- a government may choose to support OSS/FS to encourage the development of local companies who can train, support, and tailor products. Proprietary software products can only be maintained by a single company, who are often foreign and do not allow the best software jobs to be performed in that country (and only that company can maintain the product).
increasing competition / reducing dependence on, or control by, any one company -- a government may wish to prevent any one company from completely controlling the computing infrastructure of the government or its country; this is especially of concern to many if that one company is foreign. This is not necessarily the same as supporting industrial policy; the goal may be to simply support improved competition, foreign or not. After all, the effective monopolies in various software markets can be viewed as a market failure that requires correction. Lawrence Lessig’s Code and Other Laws of Cyberspace argues that “code is law” -- as computers become increasingly embedded in our world, what their code does, allows, and prohibits controls what we may or may not do in very a powerful way. “If code is law, who are the lawmakers? What values are being embedded in the code? Both questions are fundamentally about sovereignty. Who should be building this [electronic] world, and who should be specifying the values that this world will build into itself?” Governments may be increasingly skeptical of a world where increasingly its laws are rendered irrelevant by the controls of code from a single company. Proprietary vendors can also threaten governments into doing what they want, by threatening to withhold the product from that country -- are only possible because of the monopoly powers granted to proprietary vendors. They can also threaten to pull out of countries, a threat again made stronger because of their monopoly power.
security -- many are concerned about the security of software they depend on. Often proprietary products are bought and later found to be full of security vulnerabilities; OSS/FS products at least provide governments with the option of detailed review of the source code, and to fix problems themselves without waiting for the vendor. Microsoft does have a “shared source” program for its operating system, allowing governments to look at source code, but this program does not generally permit the worldwide analysis and discussion that OSS/FS permits, nor does it permit changes and redistribution by end-users. In many cases, the proprietary vendor is foreign or has foreign developers, which for some governments raises additional concerns -- can the foreign company’s product be trusted? For example, a special key in Microsoft Windows called NSAKEY was identified years ago, and whether or not this was a “back door” into Windows, it did reveal that this was a concern of many governments. Obviously, any developer can make a mistake leading to a security flaw, and a malicious developer could write subversive OSS/FS software as well. But many believe the additional (worldwide) transparency provided by OSS/FS, and the ability to repair and redistribute OSS/FS programs immediately, provides additional protection.
record longevity -- OSS/FS reveals exactly how data is stored, so that important data is not lost. Governments using proprietary data formats risk loss of critical records if the company folds or stops supporting a particular format, stops supporting a particular version of a format. Unfortunately, this occurs distressingly often.
transparency of government data -- OSS/FS enables complete review of exactly what is done and what data is stored, so that the public can freely receive that data without being required to buy products from any particular vendor.
localization -- OSS/FS can also be trivially localized, a critical advantage where there are languages with a smaller number of speakers. With OSS/FS, users do not need to convince a vendor to support their language, they can simply add that capability themselves.
Licenses
There are dozens of OSS/FS licenses, but the vast majority of OSS/FS software uses one of the four major licenses: the GNU General Public License (GPL), the GNU Lesser (or Library) General Public License (LGPL), the MIT (aka X11) license, and the BSD-new license. Indeed the Open Source Initiative refers to these four licenses as the classic open source licenses. The GPL and LGPL are termed “copylefting” licenses ( also called “protective” licenses), that is, these licenses are designed to prevent (protect) the code from becoming proprietary.
Here is a short description of these licenses:
The GPL allows anyone to use the program and modify it, but prevents code from becoming proprietary once distributed and it also forbids proprietary programs from “linking” to it.
The MIT and BSD-new licenses let anyone do almost anything with the code except sue the authors. One minor complication: there are actually two “BSD” licenses, sometimes called “BSD-old” and “BSD-new”; new programs should use BSD-new instead of BSD-old.
The LGPL is a compromise between the GPL and the MIT/BSD-new approaches, and was originally intended for code libraries. Like the GPL, LGPL-licensed software cannot be changed and made proprietary, but the LGPL does permit proprietary programs to link to the library, like the MIT/BSD-new licenses.

Conclusions
OSS/FS has significant market share in many markets, is often the most reliable software, and in many cases has the best performance. OSS/FS scales, both in problem size and project size. OSS/FS software often has far better security, perhaps due to the possibility of worldwide review. Total cost of ownership for OSS/FS is often far less than proprietary software, especially as the number of platforms increases. These statements are not merely opinions; these effects can be shown quantitatively, using a wide variety of measures. This doesn’t even consider other issues that are hard to measure, such as freedom from control by a single source, freedom from licensing management (with its accompanying risk of audit and litigation), Organizations can transition to OSS/FS in part or in stages, which for many is a far more practical transition approach.
Realizing these potential OSS/FS benefits may require approaching problems in a different way. This might include using thin clients, deploying a solution by adding a feature to an OSS/FS product, and understanding the differences between the proprietary and OSS/FS models. Acquisition processes may need to change to include specifically identifying OSS/FS alternatives, since simply putting out a “request for proposal” may not yield all the viable candidates. OSS/FS products are not the best technical choice in all cases, of course; even organizations which strongly prefer OSS/FS generally have some sort of waiver process for proprietary programs. However, it’s clear that considering OSS/FS alternatives can be beneficial.
However, users of Windows who are looking for desktop software often try programs such as OpenOffice.org (OSS/FS office suite), Firefox (OSS/FS web browser), and Thunderbird (OSS/FS mail browser). Projects like The OpenCD project creates CDs that include those (and other) OSS/FS programs for Windows with nice installers and so on. Many OSS/FS programs aren’t available for Windows, though, or do not work as well on Windows. Those interested in trying out GNU/Linux operating system often start with a simple CD that doesn’t touch their hard drive, such as Gnoppix or Knoppix. They then move on to various Linux distributions such as Red Hat (inexpensive Fedora Core or professionally-supported Red Hat Enterprise Linux), Novell/SuSE, Mandriva (formerly MandrakeSoft), or Ubuntu (nontechnical users may also be interested in pay-per-month distributions like Linspire, while technically knowledgeable users may be interested in distributions like Debian).

References:
http://www.dwheeler.com/contactme.html
http://www.dwheeler.com

No comments: