Open Source Software / Free Software (OSS/FS or FLOSS) References
This short paper gives links to important pages related to
Open Source Software / Free Software (OSS/FS), also called
Free-Libre / Open Source Software (FLOSS) or FOSS.
This idea / movement / community has risen to prominence, and I've
found it very interesting.
The following are the links I've found most helpful to understanding it.
The word "free" has many different meanings, and these different meanings
often make it harder to understand OSS/FS.
The term "Free software" (as used in OSS/FS literature) is based on the word
"freedom" (the word "libre" is used in some other languages).
However, "free" can also mean "no cost", and sometimes "no cost" products come
with a "catch" that in fact is the opposite of freedom.
A LinuxToday posting
found a simple way to express these different meanings of the word
free, which I'll slightly paraphrase here:
Free can mean:
Free, as in free speech.
Free, as in free beer.
Free, as in free cocaine ("the first one is on me").
- They are not all the same.
Indeed, the notion of being "free from control by another"
is a concept that many OSS/FS advocates or sympathizers emphasize.
For example, ZDNet's article by David Berlind titled
Who gave Microsoft control of your IT costs? You did, states that
"Let this be a lesson: The minute you get you or your company hooked
on a proprietary technology, you put the vendor of that technology
in control of a lot of things that I'm certain you'd prefer to control..."
This is publicly known to be Microsoft's approach;
as reported by Cnet (July 2, 1998), Bill Gates said that
"about 3 million computers get sold every year in China,
but people don't pay for the software... Someday they will, though.
As long as they are going to steal it, we want them to steal ours.
They'll get sort of addicted, and then we'll somehow figure out how
to collect sometime in the next decade."
Colin Stefani noted on August 1, 2002, that the license for
Windows update "SP3" now requires that users give automatic consent
to send to Microsoft not only their product identification number, but
the names and version numbers of every software package, and
the id's of every hardware device.
Many people fear this kind of loss of privacy.
At one time, it was widely understood that while commercial off the shelf
(COTS) products were useful, you needed to stick with standards so
that you had the freedom to switch to competing products when necessary.
That lesson has had to be re-learned by some people quite painfully.
Don't confuse ``open source software'' or ``free software''
with ``non-commercial'' software -- there are many examples
of commercial open source / free software, and OSS/FS must be
usable for commercial purposes.
Antonyms of OSS/FS are ``closed'' and ``proprietary'' software.
Essentially all of today's software is licensed; to be OSS/FS, the software
license has to follow certain rules.
As noted above, although there are two different definitions
(for open source software and
free software),
in practice a license either meets or doesn't meet both definitions.
The license you choose defines the social contract you wish to set up among your co-developers and users ...
Who counts as an author can be very complicated, especially for software that has been worked on by many hands. This is why licenses are important. By setting out the terms under
which material can be used, they grant rights to the users that protect them from arbitrary actions by the copyright holders.
In proprietary software, the license terms are designed to protect the copyright. They're a way of granting a few rights to users while reserving as much legal territory is possible for
the owner (the copyright holder). The copyright holder is very important, and the license logic so restrictive that the exact technicalities of the license terms are usually unimportant.
In open-source software, the situation is usually the exact opposite; the copyright exists to protect the license. The only rights the copyright holder always keeps are to enforce the
license. Otherwise, only a few rights are reserved and most choices pass to the user. In particular, the copyright holder cannot change the terms on a copy you already have.
Therefore, in open-source software the copyright holder is almost irrelevant -- but the license terms are very important.
There are dozens of OSS/FS licenses, but nearly all 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, that is,
these licenses are designed to prevent the code from becoming proprietary.
See Perens' paper for more information comparing 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 MIT/BSD-new approaches and
is primarily 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.
The most popular OSS/FS license by far is the GPL.
For example, Freshmeat.net reported on April 4, 2002
that 71.85% of the 25,286 software branches (packages) it tracked
are GPL-licensed (the next two most popular were LGPL, 4.47%,
and the BSD licenses, 4.17%).
Sourceforge.net reported on April 4, 2002 that the GPL accounted
for 73% of the 23,651 ``open source'' projects it hosted
(next most popular were the LGPL, 10%, and the BSD licenses, 7%).
In my paper
More than a Gigabuck:
Estimating GNU/Linux's Size,
I found that Red Hat Linux, one of the most popular GNU/Linux distributions,
had over 30 million physical source lines of code in version 7.1,
and that 50.36% of the lines of code were licensed solely
under the GPL (the next most common were the MIT license, 8.28%,
and the LGPL, 7.64%).
If you consider the lines that are dual licensed
(licensed under both the GPL and another license, allowing
users and developers to pick the license to use),
the total lines of code under the GPL accounts for 55.3% of the total.
My paper
on GPL compatibility discusses these figures further.
The popularity of the GPL is easy to explain, indeed,
for many OSS/FS projects the GPL is a good license.
An OSS/FS program using a non-copylefting
license like the MIT or BSD-new license
can be taken by a large company, extended in incompatible ways,
and made proprietary .
Over time the proprietary version may have so many
features needed by customers (or be incompatible with the original)
that all users, including the original developers, have to buy and become
dependent on that other company for what was originally the original
developers' work.
This technique is sometimes called "embrace, extend, extinguish".
Whether or not this is a problem depends, of course, on the goals of
the program developers.
A program licensed under the GPL or LGPL, which are copylefting licenses,
has a much lower risk of this occurring (again, program developers
may not perceive this as a risk).
Many people writing libraries want proprietary programs to be able to call
them, so for them the LGPL is a popular choice.
Note that a GPL or LGPL program can be used for commercial gain - you just
can't distribute binaries without distributing their source code.
Of course, if it's your desire that people be able modify the code
and create a proprietary version of it,
then a non-copylefting license should be used instead
(in that case, I'd suggest using the MIT license, which is simpler and clearer
than the BSD licenses).
Some projects are "dual licensed", that is, they are available under multiple
licenses.
Most OSS/FS developers shouldn't create their own licenses; creating
a good license requires a good lawyer, and the probability of
unintentional incompatibility is great.
Even large organizations are usually poorly served by creating their own
license, since doing so will greatly reduce the amount of possible code reuse
and the size of developers willing to aid the project.
In summary, if you want to develop OSS/FS software,
consider the GPL for applications, the LGPL for libraries (if you want
proprietary applications to call it), and the MIT license if you want your
code incorporated into others' proprietary code.
The BSD-new license is a reasonable alternative to the MIT license.
In particular, it's unwise to create an OSS/FS project using a license
incompatible with the GPL, because such a license bars code sharing with a vast
amount of OSS/FS software;
see my article for more information on
why
OSS/FS developers should select a GPL-compatible license.
The LGPL, MIT, and BSD-new licenses are compatible with the GPL.
Here are some especially useful descriptions of open source/free software,
including philosophical approaches, how it's used in practice, history,
and so on:
Microsoft inadvertently gave open source a boost
when some of its internal documents were leaked, exposing that Microsoft
was far more concerned than it claimed.
This set of documents is termed the
"Halloween" documents.
The Jargon File
is useful because it provides insight into how open source/free software
came to be and into the people involved.
If nothing else, it clearly shows that this "new" phenomenon has
a long history.
It's possible to read a number of political approaches into OSS/FS;
at one time some tried to claim that open source was essentially communistic.
Ganesh Prasad's How Does the Capitalist View Open Source?
ruins this argument by showing
that OSS/FS easily fits into a free market / capitalistic viewpoint.
Rebel Code: Inside Linux and the Open Source Revolution by
Glyn Moody (Perseus Publishing) is a good book on the history of OSS/FS
in general.
Free as in Freedom by Sam Williams is an interesting biography of
Richard Stallman.
Microsoft has attacked open source, particularly the
GNU General Public License (GPL) - the most widely-used of such software
licenses.
This prompted a letter by Bruce Perens and many other OSS/FS leaders
titled
Free Software Leaders Stand Together.
This letter explains, for example,
that ``the business model of Open Source
is to reduce the cost of software development and maintenance by distributing
it among many collaborators.
The success of the Open Source model arises from
copyright holders relaxing their control in exchange for
more and better collaboration.
Developers allow their software to be freely redistributed and modified,
asking only for the same privileges in return.''
Several of these documents are available as a single collection titled
The Open Source Reader; I suggest looking at this if you want to
print a collection of works directly from the web.
Web projects around the world often use
LAMP,
an abbreviation for
Linux, Apache, MySQL (sometimes replaced with PostgreSQL), and PHP/Perl/Python.
More complex web projects may use major libraries or frameworks, such as
PHP-Nuke (based on PHP) and Zope (based on Python).
There isn't really one place to find ``all about GNU/Linux'';
you could do worse than looking at the
linux.org information.
For information on other packages, you could go to places which track
OSS/FS projects like
Freshmeat
(which lists new software available for GNU/Linux and other systems),
the
FSF list of free software, and the
BerliOS SourceWell.
Few people will want to do all the packaging work for entire
operating systems based on GNU/Linux.
Thus, ``Linux distributors'' sprung up, who do that work and sell
support, extra services, and so on.
Major distributions of GNU/Linux include:
Red Hat (#1 in the U.S. by most measures),
Ubuntu (a derivative of Debian that is one of the widely-used desktop distributions worldwide),
Debian (#1 non-commercial distribution),
Novell/SuSE (a major force in Europe),
and
Mandrake;
there are many others.
If you're just starting up, I'd suggest trying out
Fedora (sponsored by Red Hat) and
and
Ubuntu.
It's tricky to figure out the market share of GNU/Linux distributions.
An IDC study of copies of GNU/Linux sold in 1999
(Red Hat
holds huge Linux lead, rivals growing)
found that
Red Hat shipped 48% and SuSE sold 15%.
However, while the market grew 89%, Red Hat's share grew only 69%,
suggesting that Red Hat will have more competition ahead.
The fundamental failure of these numbers is that they only count sales.
Debian is not usually "sold" in the traditional manner.
A copy of a Linux distribution
can in many cases be downloaded for free (see
LinuxISO.org for one source), and/or
installed on as many computers as you wish.
Thus, this measure is useful to show that Red Hat is widely used, but
it's less useful in showing true market shares.
Open source / free software is a community and culture, not just an idea.
Thus, you can get news and cultural information from some of the following:
Linux Weekly News (LWN), in my opinion one of the
best news sources; the summarized weekly news comes out every Thursday,
but they release news as it happens.
Other useful news sources include
LXer (pronounced Elexer, it tries to
link to any related articles on other sites),
and
NewsForge (similar).
LinuxSecurity.com
concentrates on security-related information.
Honorable mentions go to
Linux Today (which tries to
link to every related article on other sites),
Linux World,
Linux News,
Open for Business, and
ZDNet.com's Open Source blog.
The best source for news specific to the Linux kernel (in my opinion) is
Kernel Traffic, which provides a
weekly summary of the linux-kernel mailing list
(see the
linux-kernel mailing list FAQ
for general information about this).
Another useful site about the Linux kernel is the
Linux Kernel Archives
(for Linux kernel source code), and
Linux Weekly News covers this very well also.
Slashdot. It's eclectic, but many
scoops get here first.
For a collection of various rants, look at
OSViews.com (this is
the successor to "OS Opinion").
SourceForge provides free hosting
for OSS projects, and hosts a vast number of them.
The Interchange of Data between Administrations (IDA) programme
is managed by the European Commission, with a
mission to "coordinate the establishment of
Trans-European telematic networks between administrations."
IDA has developed
The IDA Open Source Migration Guidelines
to describe how to migrate from proprietary programs
to OSS/FS programs.
This paper includes a list of suggested OSS/FS programs.
An interesting site is
Advogato, which provides free
personal sites and uses an experimental ``group trust'' metric to
rank people.
The
Loads of Linux Links site
contains a vast number of categorized websites related to GNU/Linux;
the database of links (and the tools for processing it)
are themselved GPL'ed.
The Rise
of ``Worse is Better'' by Richard Gabriel
describes an approach often used by open source advocates.
Basically, emphasizing simplicity of both design and implementation
tends to produce software that's available first (acquiring the market)
and is also more flexible (because there's less to change when requirements
change).
Open
Source as ESS by David Rysdam, which applies game theory concepts
to software licenses and argues that the GPL fundamentally
``wins'' over other licenses.
Evan Leibovitch's opinion piece
License
to FUD (comparing GPL and BSD) examines the GPL and BSD licensing
approaches.
He argues that many of the new and most actively developed
open-source projects use the GPL license (instead of the BSD or MIT licenses)
because of various fears.
Programmers fear that their work would be used in a manner
they did not support, and companies fear that their work would be used
by competitors against them.
He argues that the BSD (MIT) approach works best in scenarios such as
being reference implementations, but for most other uses, GPL or
full proprietary is perferred in the not-so-kind computing environment
of today.
Another interesting opinion piece is
Enter Late - and Dominate by Daniel Mezick
(aka "Mezick's Theorem"), which argues that
open source projects are the last step in the
final development of mature, commoditized markets
He opines that "GPL software offerings that enter immature
markets will not gain significant market share until
the target market shakes out - and one vendor emerges" - after which point
they eventually dominate.
Tim O'Reilly's "The Open Source Paradigm Shift"
(May 2004) is a very interesting piece arguing that OSS/FS
is an expression of three trends:
the commoditization of software, network-enabled collaboration, and
software customizability (software as a service).
Thom Wysong has written a nontechnical introduction to Open Source and Free Software.
Another source is
http://www.free-soft.org,
who also has an interesting image titled
Software Wars.
A large set of free software links is available at
Teak.
The Cluetrain Manifesto
posits that
``Networked markets are beginning to self-organize faster
than the companies that have traditionally served them.
Thanks to the web, markets are becoming better informed, smarter,
and more demanding of qualities missing from most business organizations.''
It's not dependent on OSS/FS (or vice versa), but many OSS/FS leaders
agree with its concepts.
The
Open-Source Software Institute
promotes the development and implementation of
open-source software solutions within U.S. Federal and
State government agencies and academic entities.
Its founder, John Weathersby, stated that
"I believe Open Source will find its true strength in public service"
An explanation about how they work is in
Advocating Open Source the 'good old boy' way.
Linux International is a
non-profit association of groups, corporations and others that work towards the promotion of growth of the GNU/Linux operating system and the
GNU/Linux community
(most of their work has been with companies, but they're not limited to that).
Some are experimenting with applying open source/free software approaches to
areas other than software and its documentation.
Even many OSS/FS leaders are skeptical, since the attributes of software
that make OSS/FS work are often untrue in other areas, and they fear that
if it doesn't work in these other areas people might unreasonably assume it
can't work in software either.
Still, it will be interesting to see the results of these experiments.
See the New Scientist article
The Great Giveaway by Graham Lawton, which discusses
OpenCola,
the Open Audio License (OAL),
Wikipedia,
and the OpenLaw project
(at the Berkman Center for Internet and Society at Harvard Law School).
The article makes a minor mistake: the GPL is the most common OSS/FS license,
but it's not the only such license.. but that mistake doesn't really
detract from the point of the article.
ck12 is developing "flexbooks" -
"Using a collaborative and web-based compilation model that can
be manifested as an adaptive textbook - termed the "FlexBook" - CK-12
intends to pioneer the creation and distribution of high quality
educational web texts both as traditional print and online medium."
The Wired article
Open Source Everywhere makes the same point.
Another group is tackling tropical diseases using OSS approaches.
The Creative Commons group
has developed a set of licenses for written material of any kind, many
of them clearly based on OSS/FS concepts (i.e., the ones that allow
modifications and commercial uses of the work).
This article discusses 'open' hardware.
David Kirkpatrick's Fortune article
"Why 'Bottom Up' Is On Its Way Up" argues that
as the Internet's influence grows, a "bottom-up" decentralizing
economy is gaining, where customers migrate to businesses
that see them as participants in a process (instead of just as consumers).
NIH research will finally be made freely available to the public - this
should have happened years ago, it was a scandal that the U.S. government
allowed private companies to gain exclusive rights to publish the
U.S. people's research results
(they didn't pay for the underlying research; in fact, they didn't even
have to pay anything to gain these exclusive rights).
Personally, I believe an activity is going to be far more successful
copying open source methods
when copying the item is essentially free and where collaboration
is like to be produce a better results.
This is more likely to be true for software programs, designs,
documents, and so on, and less true for physical objects.
For example, I don't think the OpenCola work will go very far, but the
Wikipedia seems to be doing very
well (it's really extraordinary given how young it is).
If you have problems or questions, there's a right and wrong way to ask them,
and only the right way will get a helpful response.
To learn the right way, consult
Eric Raymond
and Rick Moen's paper on ``How to ask smart questions''.
Another useful essays is
Karl Fogel's "Recognizing rudeness in the open source culture",
which argues that "One of the defining characteristics of
open source culture is its distinctive notions of what
does and does not constitute rudeness. While the conventions
described below... would be familiar to anyone working in mathematics,
the hard sciences, or engineering disciplines....
[in OSS/FS] these conventions are especially likely to
be encountered by people unfamiliar with them...
Technical criticism, even when direct and unpadded, is not rude [and]
Blunt, unadorned questions, are not rude either. Questions that in
other contexts might seem cold, rhetorical, or even mocking,
are often intended seriously, and have no hidden agenda other
than eliciting information as quickly as possible.
The famous technical support question "Is your computer plugged in?"
is a classic example of this. The support person really does
need to know if your computer is plugged in...
The intent is not to insult the recipient, but to quickly rule
out the most obvious (and perhaps most common) explanations."
If you intend to contribute to a project, make sure you learn what the
rules are;
for example,
Andrew Morton has written some tips on how to contribute to the
Linux kernel.