Free and Open Source Software

by Valentino Giudice on

I am not a lawyer and this is not legal advice.

You have probably heard of free and open source software before.

Software plays an increasingly relevant role in our lives. We delegate important tasks to computers. We store our memories, along with critical personal information, as well as assets we’ve worked for tens of hours on, on our digital devices. We use them to communicate, to trade, to work, to stay informed and to entertain ourselves. Ensuring that the programs we use are actually serving us, rather than someone else, is critical.

In principle, software, like all written knowledge and all sorts of digital assets, could be reproduced and shared infinitely, without deteriorating, at virtually no cost, so that the same programming problem never has to be solved twice, furthering innovation. It’s also flexible enough that skilled users could tweak it to their needs.

In practice, because of legal and technical restrictions, what you can actually do with the programs you use is usually very limited. In this article, I provide an overview of the scope of those limitations and how they can be lifted by software freedom.

Restrictions on software

Programmers typically create software by writing source code, as text, in a programming language. This may then need to be converted (or “compiled”) into object code. The result is still the same program, just represented in a different way, which is not human-readable.

Legally, original literary and artistic works of authorship, such as poems and paintings, are automatically covered by copyright (or “author’s rights”) as soon as they exist. In general, making copies of a work, preparing derivatives and conveying it to the public are actions that require an authorization from the copyright holder. Software programs are protected as literary works.

Suppose you receive a program as object code. You cannot study its internal functioning in detail, because you don’t have the corresponding source code to read. You aren’t legally allowed to distribute copies. You may be unable to modify the program to your liking for both legal and technical reasons.

Restrictions on software, legal or technical, exist beyond just copyright and withholding source code. In an ever more digitalized world, they give rightholders a lot of power and substantial control on users.

Free Software

Free software is software which any user, in any field of endeavour, is free to run, copy, distribute, study and modify. This means that it is provided alongside with its source code, as well as an appropriate licence.

In the ’80s, the GNU project, aimed at creating a free operating system, was announced by Richard Stallman. Stallman then founded the Free Software Foundation, a non-profit organization which supports GNU and other initiatives. The FSF also maintains the Free Software Definition, based on four essential freedoms:

In “free software”, the word “free” refers to freedom (as in “free speech”), not to price (as in “free beer”). This ambiguity is specific to the English language. Sometimes the Spanish and French word “libre” is used, instead of “free”, so as to avoid confusion. While free software is typically distributed at no cost (partly because anyone can pass it on), a lot of software available without charge is not free software.

The free software movement supports software freedom on moral grounds, based on the idea that non-free (“proprietary”) software is controlled by its owner, rather than the user, and that this constitutes an instrument of unjust power over users’ computing. It is, however, possible to use and endorse free software for more pragmatic reasons, even without agreeing with this philosophy.

Open Source

Open source is the same category of programs (and licences) as free software. The reason for the double name is historical.

Eric Raymond and Bruce Perens (leader, at the time, of the Debian project, a free operating system, as successor of its founder Ian Murdock) started the Open Source Initiative in 1998, as president and vice-president respectively. The idea was to promote free software under a different name, leveraging a more pragmatic approach.

The open source movement differs from the free software movement in that it favors more utilitarian tactics over moral dogma and focusses heavily on the benefits of cooperation and software quality. It has been extraordinarily successful at making open source software widespread.

The Open Source Definition, maintained by OSI, is based on the Debian Free Software Guidelines (written by Perens). It is equivalent, in substance, to the Free Software Definition by the FSF, expressing the same concepts with different words.

Sometimes the phrase “free and open source software” is used to remain neutral between the two alternatives. It can also be shortened to “FOSS” or “FLOSS” (where the L stands for “libre”). It’s possible to use “free software” and “open source” interchangeably, to refer to the same class of programs, as the Debian community currently does.

Open source is not to be confused with software which is merely source available. Whenever source code is provided, the program is indeed source available, but, in order for it to be open source, an appropriate licence, one which grants software freedom, is also necessary.

Licences

Because of legal restrictions, such as copyright, an appropriate licence (synonym of “authorization” and of “permission”) is necessary for software freedom.

Free software licences are public (granted to anybody who receives a copy of the program). They are typically written as reusable documents, which helps to prevent proliferation.

Most licences come under some conditions (only applying as long they are met). What terms are compatible with software freedom is largely settled and well understood.

Requirements such as that of retaining attribution notices when distributing the program are permissible and ubiquitous in free software licences, as are disclaimers of warranty and liability. On the other hand, restrictions against commercial use or which limit the freedom to run the program cannot be part of a free licence.

The FSF and OSI each maintain a list of free and open source licences. In general, however, few of them, such as the MIT licence, the Apache 2.0 licence and the GNU GPL, dominate the free software licensing landscape.

Copyleft

Of all conditions that are permissible in a free software licence, copyleft (a mechanism pioneered by Stallman) is arguably the most restrictive, interesting and discussed one.

A copyleft licence allows distributing one’s own modifications to the program only as free software, without additional restrictions. In essence, it ensures that software freedom is preserved when modified versions of the program are passed on.

Most free and open source licences are not copyleft. When, if ever, to use a copyleft licence is, ultimately, a matter of subjective choice and priorities.

Copyleft can be used strategically as a way to promote the release of free software by others. On the other hand, it can lead to licence incompatibility, which may prevent mixing pieces of software under different licences.

Remixing software

There are several ways in which software can be “remixed”. These include, among others, forks, libraries and patches.

It’s always possible to independently modify and then distribute a free program under the same licence. When doing so, one creates a fork.

Programmers almost never start from scratch. A library is a collection of software modules which can be reused as components of larger programs.

Software is often developed cooperatively. Maintainers of a project can publish its source code online. Independent programmers can then contribute by sending patches (suggested modifications), which maintainers can choose to merge (apply) or not.

As a result of mutual cooperation and exercise of software freedom, one program can have hundreds of authors and copyright holders, each licensing one’s own rights to the user. Those that decide to work together on the same software may each do so for widely different motives.

Motivations

At this point in the article, you might be wondering why anyone would even write free software. There are plenty of motivations and this section will mention a few.

Software freedom is not anti-money. Indeed, the only business models it precludes are those that require restricting the user. Many strategies exist to earn by releasing free software, which also happens to be good publicity (for a company) and, often, a way to get contributions from the community.

In the case of non-profit organizations seeking to make the world a better place and governments serving the interests of their citizens, software freedom is the obvious choice, as it maximizes utility.

Besides money, individuals often code simply for fun or as a learning experience. People can also choose to share programs out of altruism, to help others, or for ideological reasons.

Individuals and organizations alike often contribute back to programs they themselves use, to their own benefit. Also, those that develop software for their own use often share it free, which costs nothing to do.

Users don’t need to concern themselves with the reasons any particular program was developed. As long as it is free, anyone can enjoy the benefits of software freedom.

Advantages

Software freedom leads to many advantages for the user, such as:

You can use free software the way you see fit, share it with others and, with the right tools, tweak it to your needs. You can run it privately, for any purpose, without yielding control to someone else. You can cooperate with others who don’t want to be restricted either. A free program won’t suddenly stop existing, nor will it force you to make an update you don’t want. It won’t make your files, your digital life, accessible only at the erratic whim of a third party, nor will it lock them behind the gate of a file format which can only be opened with the approval of some company.

When a piece of proprietary software is made available, it’s only a step forward for its own rightsholders, because it’s only “available” to those that accept their conditions. When a piece of free software is shared, however, when it is publicly shared of the world, it’s a step forward for everyone.

The advantages of free software are relevant for individual users and also, possibly much more, for companies and enterprise users. They are, however, even greater for government-run institutions.

Governments

Software freedom is especially important when it comes to government entities. It helps states achieve technological sovereignty and stay in control of their processes and data. It also makes good use of public money. Furthermore, citizens often need to run software on their own devices for bureaucratic reasons. Forcing them to accept the terms of a proprietary licence would be an injustice.

Multiple governments have adopted policies on free and open source software.

The federal government of the United States runs an online platform where it shares open source software, in line with the Federal Source Code Policy. This includes programs by the Department of Defense, which provides a FAQ document on open source and policies on the matter.

The Public Money? Public Code! campaign, in Europe, asks for legislation requiring that publicly financed software developed for the public sector be published as free software.

The European Union has adopted an Open Source Software Strategy to leverage the power of open source, which has resulted in a platform for open source development. The EU has also written its own free licence: the EUPL and runs Joinup, which also provides resources on open source software.

Italian law requires that public administrations consider free software solutions. It also mandates that they publish custom-built software as open source. Agenzia per l’Italia Digitale, an Italian public agency, has guidelines on the matter. The government also maintains a platform to share and develop open source software for public administrations.

The Italian region of Piedmont has a law on the adoption and diffusion of free software and portability of digital documents.

Sometimes public entities use licences that provide a similar level of freedom for non-software works as well, such as digital documents.

Non-software assets

Software programs aren’t the only digital assets that can be distributed under a free licence. Artworks, books, music and all sorts of other works are also subject to copyright.

The Definition of Free Cultural Works and the Open Definition (by the Open Knowledge Foundation) independently provide definitions that can be used to establish if any given licence is “free” or “open”. The relevant freedoms are the same as those for free and open source software, just translated out of the software domain.

Creative Commons is a non-profit organization which writes public licences, some of which are free. These include CC0 (a public domain declaration), CC BY and CC BY-SA. Other organizations have written the Free Art License and the GNU GPL (which, while mainly designed for software, can also be used for other works).

It should be noted that digital files can be stored in multiple formats, which encode the same information in different ways. Some file formats are secret or have legal restrictions and can only be used through proprietary software. Free file formats give control back to the user.

Examples

There are several well-known cross-platform free and open source programs, publicly available at no charge, which you may be familiar with. Here are just a few:

Besides high-level applications, you have probably heard of Linux: a free kernel (the core component of an operating system). Linux is used by Debian, Android and many more. It’s an important part of the open source ecosystem.

As for free cultural content, Wikipedia is a free (libre) encyclopaedia: its articles are available under the CC BY-SA licence.

Additional resources