2 The Free Software Movement

, by  Administrator , popularity : 100%

There are many similarities between the philosophy of convivial tools and that of the free software movement. Both aim to promote the autonomy and freedom of the users of technical means. And both cover so much ground that there are bound to be extensive areas of overlap. But to explain exactly what is covered by the term "free software" is almost as difficult as to explain what is covered by the term "convivial tools." It is necessary to begin with a few definitions.

Definitions: free software, freeware, shareware, open source software

There are so many different terms for free software that Wikipedia provides a whole article just on the subject of "Alternative terms for free software."

The following brief definitions are taken from the corresponding Wikipedia articles:

  • Free software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions only to ensure that end users have the same freedoms as the original authors.
  • Freeware is copyrighted computer software which is made available for use free of charge, for an unlimited time, as opposed to shareware where the user is required to pay (e.g. after some trial period or for additional functionality).
  • Shareware is a marketing method for computer software. Shareware software is typically obtained free of charge, often by downloading from the Internet or on magazine cover-disks. A user tries out the program, and thus shareware has also been known as "try before you buy". A shareware program is accompanied by a request for payment, and the software’s distribution license often requires such a payment.

Thus while all of the above can be used for free, in the case of shareware the free use is only temporary, and after the trial period a payment will be requested for continued use.

The difference between "free software" and "freeware" is in the form of license that is granted for use. To make software available as free software, the software has either to be accompanied by a free software licence, or to be in the public domain. Freeware by contrast is copyrighted.

A term closely related to free software is "Open Source", which is defined by Wikipedia as follows:

  • Open source software is computer software whose source code is available under a license (or arrangement such as the public domain) that permits users to use, change, and improve the software, and to redistribute it in modified or unmodified form. It is often developed in a public, collaborative manner.

The source code is the human-readable form of the program. According to Wikipedia, for software to be considered as free software, the source code must be made available. Thus free software is necessarily open source software.

However, the Free Software Foundation (FSF) recommends using the term "free software" and never "open source software," due to the open source community’s lack of emphasis on software freedom.

Contrary to what one might expect, everyone is free to sell copies of free software, to use it commercially, and to charge for distribution and modifications. However, the free software business model generally involves making the software available at no cost, and earning income on support services such as training, customisation, integration, and certification.

The above definitions present the commonly-accepted usage of the terms. There also exist more detailed definitions formulated by advocates of the free software movement, such as the Free Software Definition published by Free Software Foundation, and the Debian Free Software Guidelines. The intent of these more elaborate definitions is expressed as follows by Richard Stallman, who is considered the founder of the free software movement: "Free software is a matter of liberty, not price. To understand the concept, you should think of ’free’ as in ’free speech’, not as in ’free beer’". More specifically, free software means that computer users have the freedom to cooperate with whom they choose, and to control the software they use.

An additional essential term in the free software context is the "fork." A project fork occurs when software developers take the source code from a free software package and start independent development on it, creating a distinct piece of software.

Free software licenses

A free software licence must grant people all the freedoms listed in the more elaborate definitions of free software given above. The four freedoms listed in the Free Software Definition published by Free Software Foundation are numbered 0 to 3 as follows:

  • Freedom 0: The freedom to run the program for any purpose.
  • Freedom 1: The freedom to study and modify the program.
  • Freedom 2: The freedom to copy the program so you can help your neighbour [by passing along a copy].
  • Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.

This definition also notes that "access to the source code is a precondition" for freedoms 1 and 3.

The FSF distinguish the following main types of free software licenses:

  • Copyleft licenses, under which the author retains copyright and permits redistribution and modification under terms to ensure that all modified versions remain free for as long as the author wishes. The General Public License (GPL) is the most prominent Copyleft license.
  • BSD-style licenses, under which the author retains copyright protection solely to disclaim warranty and require proper attribution of modified works, but permits redistribution and modification in any work, even proprietary ones for as long as the author wishes. These are called BSD-style because they resemble the licenses applied to software distributed with the Berkeley Software Distribution (BSD), a version of the Unix operating system developed at the University of California, Berkeley, starting in the 1970s. BSD-style licenses are an example of permissive free software licenses.
  • Public domain software, under which the author has abandoned the copyright and cannot impose any sort of restriction on its use, even if he subsequently so desires.

The difference between the first two types seems to be that the Copyleft or GPL license insists that all modified versions must remain free, while the BSD-type license only requires proper attribution of modified works.

Both Free Software Foundation and Open Source Initiative publish lists of licenses that they find to comply with their definition of free software and open-source software respectively:

These lists are necessarily incomplete, because many specific licenses remain unknown by either organization. While the free software and open source movements have a somewhat different point of view, it is rare that a license is announced as being in-compliance by one and not by the other

Roots of the Free Software Movement

The roots of the Free Software Movement can be found in the software communities of the late sixties and early seventies, in universities such as the Massachusetts Institute of Technology, and in the large user groups formed around hardware made by IBM and the Digital Equipment Corporation (see the Wikipedia article on "History of free software.")

During that period most software was produced by academics and corporate researchers working in collaboration, and was not seen as a commodity. The source code of operating systems, such as early versions of UNIX, was widely distributed, allowing users to fix bugs or add new functionalities. Users who received for free early versions of UNIX could not however redistribute or distribute modified versions, so this was not what is now called free software.

Richard Stallman, who was later to give major impetus to the free software movement, worked at the MIT Artificial Intelligence laboratory in the early 1970s, during the heyday of MIT "hacker culture." One of Stallman’s major contributions there was to improve the line editor known as TECO by adding display-editing and macro features, creating together with Guy Steele a new editor called EMACS, which rapidly became the standard editing program at the AI Lab. The wide distribution of source code for such software however raised the danger of too much customization and de-facto forking. Stallman therefore set certain conditions for usage, which he later described as follows: "EMACS was distributed on a basis of communal sharing, which means all improvements must be given back to me to be incorporated and distributed."

In the late 1970s the hacker culture began to fragment as companies stopped distributing source code and began using copyright and restrictive software licenses. Significantly, the change of the times was signalled by a conflict between Bill Gates and the hacker community.

This conflict centred around software made for the Altair, generally considered to be the first personal computer. In 1975 appeared the advertisement in Popular Electronics magazine that set thousands of hobbyists ordering the MITS Altair kit. Ed Roberts of MITS received a letter from a Seattle company asking if he would be interested in buying its BASIC programming language for the machine. He called the company and reached a private home, where no one had heard of BASIC. The letter had in fact been sent from the Boston area by two students at Harvard, Bill Gates and Paul Allen. They called Roberts to follow up and told him they had programs that would run BASIC on the Altair. Roberts was interested, so Gates and Allen who did not actually have the programs written, immediately set out to write them.

Gates and Allen first wrote a program on a Harvard PDP-10 minicomputer that would simulate the limited capabilities of the Altair’s 8080 chip. They then started making their BASIC interpreter, using the simulator to test it. They estimated they had 30 days before someone else beat them to it. In about six weeks they had a version that worked on the simulator. Allen flew to Albuquerque to deliver Altair BASIC on a paper tape. The first time it was run, it displayed "Altair Basic," and then crashed. The next day he brought in a new paper tape and it ran. (However, it only worked on the more sophisticated lab version of the Altair at MITS rather than on the stripped-down version sold to the general public.) Gates and Allen soon thereafter founded their company, Microsoft, to market the Altair BASIC.

Contrary to the Hacker Ethic of the previous period, Microsoft and MITS felt that people should pay for the BASIC software just as they paid for any add-on card. Many hackers had in fact put in orders for BASIC, but had to wait for the order to be shipped due to the backlog at MITS. During a show put up by MITS, someone got hold of and copied a paper tape containing Altair BASIC. The tapes were duplicated and passed around freely. Since Gates and Allen were actually paid a commission for each copy of BASIC that MITS sold, Gates responded by writing his now-famous “Open Letter to Hobbyists.” Gates’ message was that what hackers call "sharing" should be considered "stealing."

Around the same time Dick Whipple and John Arnold in Tyler, Texas developed Tiny BASIC, a similar interpreter that would fit into only 2K of memory because it had a reduced set of BASIC functions. Tiny BASIC was distributed freely in PCC magazine, and other people sent in for publication improvements and programs developed in Tiny BASIC. This eventually led to the creation of Dr. Dobb’s Journal, edited by Jim Warren, which distributed free or very inexpensive software.

Another version of Tiny BASIC was written by Tom Pittman for the Motorola 6800 microprocessor. Although he sold it to AMI for $3,500, he retained the rights to sell it to others. He decided to charge only $5 for it, and received many orders. He even received money from people who had already obtained a copy and simply wanted to pay him for his efforts.

GNU and Linux

Although free software had thus been an issue among hackers for years, what is now called the "free software movement" began in 1983 when Richard Stallman launched the GNU Project. GNU is a recursive acronym that stands for "GNU’s Not Unix".

During the years immediately preceding the launching of the GNU Project, Richard Stallman had been involved in a software-related conflict. Richard Greenblatt of the MIT AI Lab founded Lisp Machines Incorporated (LMI) in 1980 to market Lisp machines. Greenblatt rejected outside investment, believing that the proceeds from the sale of a few machines could support the growth of the company, while other Lab members who wanted to use venture capital funding founded a competing company called Symbolics. While both companies delivered proprietary software, Stallman sided with Greenblatt, and from 1982 to the end of 1983 he singlehandedly duplicated the efforts of the Symbolics programmers in order to prevent them from gaining a monopoly on the lab’s computers.

On September 27, 1983, Stallman publicly announced on several email newsgroups his plan to build the GNU free software operating system. The founding goal of the project was, in the words of its initial announcement, to develop "a sufficient body of free software ... to get along without any software that is not free." Software development began on January 5, 1984, when Stallman quit his job at Massachusetts Institute of Technology so that they could not claim ownership or interfere with distributing GNU as free software.

In 1985, Stallman published the GNU Manifesto. Soon after, he started a non-profit corporation called the Free Software Foundation (FSF) to employ free software programmers and provide a legal infrastructure for the free software movement. The same year, Stallman invented and popularized the concept of copyleft, which was first implemented in the GNU Emacs General Public License.

The initial plan was for GNU to be Unix-compatible, while adding enhancements where they were useful. In order to make a whole free operating system, it was necessary to write from scratch much of the needed software, but Stallman tried to use existing free software when possible. There was not much of it the 1980s, but existing free software components such the X Window System for graphical display, the TeX typesetting system, and the Mach micro kernel were integrated into GNU. By 1990, the GNU system had an extensible text editor (Emacs), a very successful optimizing compiler (GCC), and most of the core libraries and utilities of a standard Unix distribution.

The main missing element was a Unix-style kernel. In 1990, members of the GNU project began a kernel called GNU Hurd. But by producing software tools needed to write software, and by developing a general copyleft license, Stallman had helped make it easier for others to write free software. Linus Torvalds, a Finnish student, used such tools to produce the Linux kernel in 1991. This could be combined with the GNU system to make a complete operating system. The goal of making a free software operating system was thus achieved in 1992 when Linux was released as free software. Most people use the name Linux to refer to the combination of the Linux kernel plus the GNU system, but Stallman insists that the system should be called "GNU/Linux", which he pronounces "GNU Slash Linux."

Recent developments

Recent years have seen dramatic expansion of the free software offer. In addition to the Linux operating system, some notable examples are:

  • OpenOffice office suite
  • TeX and LaTeX typesetting and document preparation systems
  • Mozilla and Firefox web browsers
  • Mediawiki collaborative content management system
  • PHP and Perl programming languages
  • MySQL relational database system
  • Apache web server

One current issue concerning free software is the debate over the security of free software packages in comparison to that of proprietary software. Free software advocates argue that the ability to view and modify the software provides many more people who can analyze the code, thereby generating a higher rate of finding bugs and of developing defences against take-over of the software user’s computer by spyware.