1.3 Lesson 1
Certificate: |
Linux Essentials |
---|---|
Version: |
1.6 |
Topic: |
1 The Linux Community and a Career in Open Source |
Objective: |
1.3 Open Source Software and Licensing |
Lesson: |
1 of 1 |
Introduction
While the terms free software and open source software are widely used, there are still some misconceptions about their meaning. In particular, the concept of “freedom” needs closer examination. Let’s start with the definition of the two terms.
Definition of Free and Open Source Software
Criteria of Free Software
First of all, “free” in the context of free software has nothing to do with “free of charge”, or as the founder of the Free Software Foundation (FSF), Richard Stallman, succinctly puts it:
To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”.
What is free software?
Regardless of whether you have to pay for the software or not, there are four criteria which constitute free software. Richard Stallman describes these criteria as “the four essential freedoms”, the counting of which he starts from zero:
-
“The freedom to run the program as you wish, for any purpose (freedom 0).”
Where, how and for what purpose the software is used can neither be prescribed nor restricted.
-
“The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.”
Everyone may change the software according to their ideas and needs. This in turn presupposes that the so-called source code, i.e. all files of which a software consists, must be available in a form readable by programmers. And, of course, this right applies to a single user who may want to add a single feature, as well as to software companies that build complex systems such as smartphone operating systems or router firmware.
-
“The freedom to redistribute copies so you can help others (freedom 2).”
This freedom explicitly encourages each user to share the software with others. It is therefore a matter of the widest possible distribution and thus the widest possible community of users and developers who, on the basis of these freedoms, further develop and improve the software for the benefit of all.
-
“The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.”
This is not only about the distribution of free software, but about the distribution of modified free software. Anyone who makes changes to free software has the right to make the changes available to others. If they do so, they are obliged to do so freely as well, i.e. they must not restrict the original freedoms when distributing the software, even if they modified or extended it. For example, if a group of developers has different ideas about the direction of a specific software than the original authors, it can split off its own development branch (called a fork) and continue it as a new project. But, of course, all obligations associated with these freedoms remain.
The emphasis on the idea of freedom is also consistent insofar as every freedom movement is directed against something, namely an opponent who suppresses the postulated freedoms, who regards software as property and wants to keep it under lock and key. In contrast to free software, such software is called proprietary.
Open Source Software vs. Free Software
For many, free software and open source software are synonyms. The frequently used abbreviation FOSS for Free and Open Source Software emphasizes this commonality. FLOSS for Free/Libre and Open Source Software is another popular term, which unmistakably emphasizes the idea of freedom also for other languages other than English. However, if one considers the origin and development of both terms, a differentiation is worthwhile.
The term free software with the definition of the described four freedoms goes back to Richard Stallman and the GNU project founded by him in 1985 — almost 10 years before the emergence of Linux. The name “GNU is not Unix” describes the intention with a wink of the eye: GNU started as an initiative to develop a technically convincing solution — namely the operating system Unix — from scratch, to make it available to the general public and to improve it continuously with the general public. The openness of the source code was merely a technical and organizational necessity for this, but in its self-image the free software movement is still a social and political — some also say ideological — movement.
With the success of Linux, the collaborative possibilities of the Internet, and the thousands of projects and companies that emerged in this new software cosmos, the social aspect increasingly receded into the background. The openness of the source code itself changed from a technical requirement to a defining feature: as soon as the source code was visible, the software was considered “open source”. The social motives gave way to a more pragmatic approach to software development.
Free software and open source software work on the same thing, with the same methods and in a worldwide community of individuals, projects and companies. But since they have come together from different directions — one social and one pragmatic-technical — there are sometimes conflicts. These conflicts arise when the results of the joint work do not correspond to the original goals of both movements. This happens especially when software reveals its sources but does not respect the four freedoms of free software at the same time, for example when there are restrictions on disclosure, change, or connections with other software components.
The license under which the software is available determines which conditions a software is subject to with regard to use, distribution and modification. And because requirements and motives can be very different, countless different licenses have been created in the FOSS area. Due to the much more fundamental approach of the free software movement, it is not surprising that it does not recognize many open source licenses as “free” and therefore rejects them. Conversely, this is hardly the case due to the much more pragmatic open source approach.
Let’s take a brief look at the actually very complex area of licenses below.
Licenses
Unlike a refrigerator or a car, software is not a physical product, but a digital product. Thus, a company cannot actually transfer ownership of such a product by selling it and changing the physical possession — rather, it transfers the rights of use to that product, and the user contractually agrees to those rights of use. Which rights of use these are and above all are not is recorded in the software license, and thus it becomes understandable how important the regulations contained therein are.
While large vendors of proprietary software, such as Microsoft or SAP, have their own licenses that are precisely tailored to their products, the advocates of free and open source software have from the outset striven for clarity and general validity of their licenses, because after all, every user should understand them and, if necessary, use them himself for his own developments.
However, it should not be concealed that this ideal of simplicity can hardly be achieved because too many specific requirements and internationally not always compatible legal understandings stand in the way of this. To give just one example: German and American copyright law are fundamentally different. According to German law there is one person as author (more precisely: Urheber), whose work is his intellectual property. While the author can grant permission to use his work, he can not assign or give up his authorship. The latter is alien to American law. Here, too, there is an author (who, however, can also be a company or an institution), but he only has exploitation rights which he can transfer in part or in full and thus completely detach himself from his work. An internationally valid licence must be interpreted with respect of different legislation.
The consequences are numerous and sometimes very different FOSS licenses. Worse, still, are different versions of a license, or a mix of licenses (within a project, or even when connecting multiple projects) which can cause confusion or even legal disputes.
Both the representatives of free software and the advocates of the clearly economically oriented open source movement created their own organizations, which today are decisively responsible for the formulation of software licenses according to their principles and support their members in their enforcement.
Copyleft
The already mentioned Free Software Foundation (FSF) has formulated the GNU General Public License (GPL) as one of the most important licenses for free software, which is used by many projects, e.g. the Linux kernel. In addition, it has released licenses with case-specific customizations, such as the GNU Lesser General Public License (LGPL), which governs the combination of free software with modifications made to code where the source code for the modifications do not have to be released to the public, the GNU Affero General Public License (AGPL), which covers selling access to hosted software, or the GNU Free Documentation License (FDL), which extends freedom principles to software documentation. In addition, the FSF makes recommendations for or against third-party licenses, and affiliated projects such as GPL-Violations.org investigate suspected violations of free licenses.
The FSF calls the principle according to which a free license also applies to modified variants of the software copyleft — in contrast to the principle of restrictive copyright which it rejects. The idea, therefore, is to transfer the liberal principles of a software license as unrestrictedly as possible to future variants of the software in order to prevent subsequent restrictions.
What sounds obvious and simple, however, leads to considerable complications in practice, which is why critics often call the copyleft principle “viral”, since it is transmitted to subsequent versions.
From what has been said it follows, for example, that two software components that are licensed under different copyleft licenses might not be combinable with each other, since both licenses cannot be transferred to the subsequent product at the same time. This can even apply to different versions of the same license!
For this reason, newer licenses or license versions often no longer grasp the copyleft so rigorously. Already the mentioned GNU Lesser General Public License (LGPL) is in this sense a concession to be able to connect free software with “non-free” components, as it is frequently done with so-called libraries. Libraries contain subroutines or routines, which in turn are used by various other programs. This leads to the common situation where proprietary software calls such a subroutine from a free library.
Another way to avoid license conflicts is dual licensing, where one software is licensed under different licenses, e.g. a free license and a proprietary license. A typical use case is a free version of a software which might only be used when respecting the copyleft restrictions and the alternative offering to obtain the software under a different license which frees the licensee from certain restriction in return for a fee which could be used to fund the development of the software.
It should therefore become clear that the choice of license for software projects should be made with much caution, since the cooperation with other projects, the combinability with other components and also the future design of the own product depend on it. The copyleft presents developers with special challenges in this respect.
Open Source Definition and Permissive Licenses
On the open source side, it is the Open Source Initiative (OSI), founded in 1998 by Eric S. Raymond and Bruce Perens, which is mainly concerned with licensing issues. It has also developed a standardized procedure for checking software licenses for compliance with its Open Source Definition. More than 80 recognized open source licenses can currently be found on the OSI website.
Here they also list licenses as “OSI-approved” that explicitly contradict the copyleft principle, especially the BSD licenses group. The Berkeley Software Distribution (BSD) is a variant of the Unix operating system originally developed at the University of Berkeley, which later gave rise to free projects such as NetBSD, FreeBSD and OpenBSD. The licenses underlying these projects are often referred to as permissive. In contrast to copyleft licenses, they do not have the aim of establishing the terms of use of modified variants. Rather, the maximum freedom should help the software to be as widely distributed as possible by leaving the editors of the software alone to decide how to proceed with the edits — whether, for example, they also release them or treat them as closed source and distribute them commercially.
The 2-Clause BSD License, also called Simplified BSD License or FreeBSD License, proves how reduced such a permissive license can be. In addition to the standardized liability clause, which protects developers from liability claims arising from damage caused by the software, the license consists of only the following two rules:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Creative Commons
The successful development concept of FLOSS and the associated technological progress led to attempts to transfer the open source principle to other, non-technical areas. The preparation and provision of knowledge, as well as the creative cooperation in solving complex tasks, are now regarded as evidence of the extended, content-related open source principle.
This led to the need to create reliable foundations in these areas as well, according to which work results can be shared and processed. Since the available software licenses were hardly suitable for this, there were numerous attempts to convert the specific requirements from scientific work to digitized works of art “in the spirit of open source” into similarly handy licenses.
By far the most important initiative of this kind today is Creative Commons (CC), which summarizes its concerns as follows:
Creative Commons is a global nonprofit organization that enables sharing and reuse of creativity and knowledge through the provision of free legal tools.
With Creative Commons, the focus of rights assignment goes back from the distributor to the author. An example: In traditional publishing, an author usually transfers all publishing rights (printing, translation, etc.) to a publisher, who in turn ensures the best possible distribution of the work. The significantly changed distribution channels of the Internet now put the author in a position to exercise many of these publishing rights herself and to decide for herself how her work may be used. Creative Commons gives the opportunity to determine this simply and legally reliably, but Creative Commons wants more: authors are encouraged to make their works available as a contribution to a general process of exchange and cooperation. Unlike traditional copyright, which gives the author all the rights that they can transfer to others as needed, the Creative Commons approach takes the opposite approach: the author makes her work available to the community, but can choose from a set of features those that need to be considered when using the work — the more features she chooses, the more restrictive the license.
And so the “Choose a License” principle of CC asks an author step by step for the individual properties and generates the recommended license, which the author can last assign to the work as text and icon.
For a better understanding, here is an overview of the six possible combinations and licenses offered by CC:
- CC BY (“Attribution”)
-
The free license that allows anyone to edit and distribute the work as long as they name the author.
- CC BY-SA (“Attribution-ShareAlike”)
-
As CC BY, except that the modified work may only be distributed under the same license. The principle reminds of the copyleft, because the license is “inherited” here as well.
- CC BY-ND (“Attribution-NoDerivatives”)
-
Like CC BY, except that the work may only be passed on unmodified.
- CC BY-NC (“Attribution-NonCommercial”)
-
The work may be edited and distributed by naming the author, but only under non-commercial conditions.
- CC BY-NC-SA (“Attribution-NonCommercial-ShareAlike”)
-
As BY-NC, except that the work may only be shared under the same conditions (i.e. a copyleft-like license).
- CC BY-NC-ND (“Attribution-NonCommercial-NoDerivatives”)
-
The most restrictive license: the distribution is allowed with attribution of the author, but only unchanged and under non-commercial conditions.
Business Models in Open Source
In retrospect, the triumph of FLOSS acts like a grassroots movement of technophile idealists who, independent of economic constraints and free of monetary dependencies, put their work at the service of the general public. At the same time, companies worth billions have been created in the FLOSS environment; to name just one, the US company Red Hat founded in 1993 with annual sales of over 3 billion USD (2018), which was taken over by the IT giant IBM in 2018.
So let’s take a look at the tension between the free and mostly free-of-charge distribution of high-quality software and the business models for its creators, because one thing should be clear: The countless highly qualified developers of free software must also earn money, and the originally purely non-commercial FLOSS environment must therefore develop sustainable business models in order to preserve its own cosmos.
A common approach, especially for larger projects in the initial phase, is the so-called crowdfunding, i.e. the collection of money donations via a platform like Kickstarter. In return, the donors receive a pre-defined bonus from the developers in the event of success, i.e. if previously defined goals are achieved, be it unlimited access to the product or special features.
Another approach is dual licensing: free software is offered in parallel under a more restrictive or even proprietary license, which in turn guarantees the customer more extensive services (response times in the event of errors, updates, versions for certain platforms, etc.). One example among many is ownCloud, which is being developed under the GPL and offers business customers a “Business Edition” under a proprietary license.
Let us also take ownCloud as an example of another widespread FLOSS business model: professional services. Many companies lack the necessary in-house technical knowledge to set up and operate complex and critical software reliably and, above all, securely. That’s why they buy professional services such as consulting, maintenance or helpdesk directly from the manufacturer. Liability issues also play a role in this decision, as the company transfers the risks of operation to the manufacturer.
If a software manages to become successful and popular in its field, it is peripheral monetization possibilities such as merchandising or certificates that customers acquire and thus point out its special status when using this software. The learning platform Moodle offers the certification of trainers, who document their knowledge to potential clients, for example, and this is just one example among countless others.
Software as a Service (SaaS) is another business model, especially for web-based technologies. Here, a cloud provider runs a software like a Customer Relationship Management (CRM) or a Content Management System (CMS) on their servers and grant their customers access to the installed application. This saves the customer installation and maintenance of the software. In return, the customer pays for the use of the software according to various parameters, for example the number of users. Availability and security play an important role as business-critical factors.
Last but not least, the model of developing customer-specific extensions into free software by order is particularly common in smaller projects. It is then usually up to the customer to decide how to proceed with these extensions, i.e. whether he also releases them or keeps them under lock and key as part of his own business model.
One thing should have become clear: Although free software is usually available free of charge, numerous business models have been created in their environment, which are constantly modified and extended by countless freelancers and companies worldwide in a very creative form, which ultimately also ensures the continued existence of the entire FLOSS movement.
Guided Exercises
-
What are — in a nutshell — the “four freedoms” as defined by Richard Stallman and the Free Software Foundation?
freedom 0
freedom 1
freedom 2
freedom 3
-
What does the abbreviation FLOSS stand for?
-
You have developed free software and want to ensure that the software itself, but also all future works based on it, remain free as well. Which license do you choose?
CC BY
GPL version 3
2-Clause BSD License
LGPL
-
Which of the following licenses would you call permissive, which would you call copyleft?
Simplified BSD License
GPL version 3
CC BY
CC BY-SA
-
You have written a web application and published it under a free license. How can you earn money with your product? Name three possibilities.
Explorational Exercises
-
Under which license (including version) are the following applications available?
Apache HTTP Server
MySQL Community Server
Wikipedia articles
Mozilla Firefox
GIMP
-
You want to release your software under the GNU GPL v3. What steps should you follow?
-
You have written proprietary software and would like to combine it with free software under the GPL version 3. Are you allowed to do this or what do you have to consider?
-
Why did the Free Software Foundation release the GNU Affero General Public License (GNU AGPL) as a supplement to the GNU GPL?
-
Name three examples of free software, which are also offered as “Business Edition”, i.e. in a chargeable version.
Summary
In this lesson you have learned:
-
Similarities and differences between free and open source software (FLOSS)
-
FLOSS licenses, their importance and problems
-
Copyleft vs. permissive licences
-
FLOSS business models
Answers to Guided Exercises
-
What are — in a nutshell — the “four freedoms” as defined by Richard Stallman and the Free Software Foundation?
freedom 0
run the software
freedom 1
study and modify the software (source code)
freedom 2
distribute the software
freedom 3
distribute the modified software
-
What does the abbreviation FLOSS stand for?
Free/Libre Open Source Software
-
You have developed free software and want to ensure that the software itself, but also all future results based on it, remain free as well. Which license do you choose?
CC BY
GPL version 3
X
2-Clause BSD License
LGPL
-
Which of the following licenses would you call permissive, which would you call copyleft?
Simplified BSD License
permissive
GPL version 3
copyleft
CC BY
permissive
CC BY-SA
copyleft
-
You have written a web application and published it under a free license. How can you earn money with your product? Name three possibilities.
-
Dual licensing, e.g. by offering a chargeable “Business Edition”
-
Offering hosting, service, and support
-
Developing proprietary extensions for customers
-
Answers to Explorational Exercises
-
Under which license (including version) are the following applications available?
Apache HTTP Server
Apache License 2.0
MySQL Community Server
GPL 2
Wikipedia articles (English)
Creative Commons Attribution Share-Alike license (CC-BY-SA)
Mozilla Firefox
Mozilla Public License 2.0
GIMP
GPL 3
-
You want to release your software under the GNU GPL v3. What steps should you follow?
-
If necessary, secure yourself against the employer with a copyright waiver, for example, so that you can specify the license.
-
Add a copyright notice to each file.
-
Add a file called
COPYING
with the full license text to your software. -
Add a reference to the license in each file.
-
-
You have written proprietary software and would like to combine it with free software under the GPL version 3. Are you allowed to do this or what do you have to consider?
The FAQs of the Free Software Foundation provide information here: Provided that your proprietary software and the free software remain separate from each other, the combination is possible. However, you have to make sure that this separation is technically guaranteed and recognizable for the users. If you integrate the free software in such a way that it becomes part of your product, you must also publish the product under the GPL according to the copyleft principle.
-
Why did the Free Software Foundation release the GNU Affero General Public License (GNU AGPL) as a supplement to the GNU GPL?
The GNU AGPL closes a license gap that arises especially with free software hosted on a server: If a developer makes changes to the software, he is not obliged under the GPL to make these changes accessible, since he allows access to the program, but does not “redistribute” on the program in the GPL sense. The GNU AGPL, on the other hand, stipulates that the software must be made available for download with all changes.
-
Name three examples of free software, which are also offered as “Business Edition”, e.g. in a chargeable version.
MySQL, Zammad, Nextcloud