Showing posts with label GNU. Show all posts
Showing posts with label GNU. Show all posts

Tuesday, May 4, 2021

Free Software, Open-Source, Libre, FOSS and FLOSS: what are the differences?

Are these just different names for the same thing? Or there are differences?
Photo by Romain Vignes on Unsplash

We have been discussing free and open-source for some time and recently covered the actual differences between the expressions "free software" and "open source software". Interestingly, not only these terms are pretty common today as we're also seeing others growing including Libre, FOSS and FLOSS. Since there are still lots of misunderstandings about them, let's take some time to understand the similarities and differences between them.

Free Software

The term "free software" was created by Richard Stallman the creator of the GNU project and the Free Software Foundation. Free in "free software" is not about price, but freedom. Freedom to use and modify the software you use. According to the GNU Project, the four essential freedoms are:

  • Freedom 0: freedom to run the program as you wish, for any purpose.
  • Freedom 1: freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  • Freedom 2: freedom to redistribute copies so you can help others.
  • Freedom 3: freedom to distribute copies of your modified versions to others. 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.
In summary, free software is about freedom, not price.

Open-Source

The "open source" term was created by a group of folks who later formed the Open Source Initative (OSI) to distinguish from the more philosophically-focused term "free software." According to OSI's distribution terms, open-source software must comply with the following ten criterias:

  • Free redistribution
  • Access to the source code
  • Derived Works
  • Integrity of The Author's Source Code
  • No Discrimination Against Persons or Groups
  • No Discrimination Against Fields of Endeavor
  • Distribution of License
  • License Must Not Be Specific to a Product
  • License Must Not Restrict Other Software
  • License Must Be Technology-Neutral

Libre

Due to the ambiguity of the word free in the English language meaning both "for free" and "freedom", libre (in French, "free" as in freedom ) was chosen due to its equivalency to freedom. Today Libre is frequently (and correctly) used as a synonym/alternative for "free" as per Stallman's original definition Stallman's original definition of "free software" being about freedom, not price.

FOSS

FOSS is equivalent to free + open source software. If you understand they're not equivalent, certainly you agree that FOSS indeed goes beyond "free" and "open" capturing Stallman's original vision of freedom vision with OSI's more commercially-inclined vision of the with open source.

FLOSS

FLOSS goes even further by adding the L for Libre. As seen, libre is equal to "free" as in freedom so it adds just a little bit to the confusion, doesn't it? Anyhow, FLOSS is also a valid term these days and commonly used and a synonym for FLOSS.

Conclusion

On this post we reviewed the differences between Free Software, Open-Source, Libre, FOSS and FLOSS. We hope it helps!

References

See Also

Tuesday, April 13, 2021

How to get started with the Linux terminal

The terminal may seem scary for new Linux users. However, it's one of the tools that has the biggest potential on your Linux journey. Learn why
The Linux terminal on Ubuntu

On a previous post we discussed the benefits of using the Linux terminal. Today, let's review how to get started with Bash, the most common shell in GNU/Linux operating systems.

The history of Bash

But before we get hands-on, let's learn more a little about Bash. Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell (which is located in your system under /usr/bin/sh and is still widely used, especially in containers).

First released in 1989, it has been used as the default login shell for most Linux distributions including the most popular distributions such as UbuntuFedora, Arch, Debian and even on the Raspberry Pi.

But bash is way beyond a simple place to enter commands. It's a powerful command processor where commands can be entered. Bash can also read and execute commands from a file, called a shell script. Like other shells, it supports filename globbing (wildcard matching), piping, command substitution, variables, and control structures for condition-testing and loops.

To finish our introduction, the name Bash is an acronym for Bourne Again Shell, a pun on the name of the Bourne shell that it replaces (and extends).

Why learn Bash

Due to its popularity, power and ubiquity, we strongly recommend that you learn it if you want to be comfortable in Linux and computers in general. Many skills you'll learn in your bash/OSS-journey will definitely carry over to Macs, Windows and well into your professional life.

Bash on Windows

Today, Bash can also be found on Windows via the Windows Subsystem for Linux (WSL for short). We will review how to get started on WSL real soon. Keep tuned!

Starting the Terminal

To start the terminal on Ubuntu (or any GNOME-based distro), simply type terminal on the Activities tab. KDE and Xfce users should also have equivalent terminal apps in their systems.

On Ubuntu, type terminal to open your first terminal

Clicking on the terminal icon should open a new terminal for you:

Your bash terminal on Linux

You can confirm that it's running bash by running the following command:

echo $SHELL
/bin/bash

Entering Commands

Entering commands in your terminal is straightforward, just type them. For example, here are some basic ones:

  • pwd - lists the current directory
  • ls - lists the files in the current directory
  • cd - change the current folder
  • cat - prints the contents of a file
  • cp - copies a file
  • mv - moves a file
  • rm - removes a file
  • mkdir - creates a new directory
Some simple commands on the terminal
The above list may seem a lot for a new user. Don't stress, with time you'll learn these tools and soon they'll be part of your muscle memory

Manual Page

Linux also has an interesting utility called man that is used for reading the manuals (documentation) of the programs, tools and libraries available on your system. To view Bash's manual, type:

man bash

To go the extra mile, we also recommend checking this related manual page:

man bash-builtins

Follow up video

To finish, we would like to point you to an online resource that will teach you Bash better than we could. Feel free to watch it at your own pace to get familiar with it. For the record, we have absolutely no affiliation we the video below, we just want you to learn Bash and Linux 😊

Conclusion

On this article we learned a little more about the Linux terminal and Bash. Bash is a fantastic tool that any Linux user should learn. We hope it helps!

See Also

Monday, January 25, 2021

FOSS/FLOSS: what's the difference?

One L. Is that all the difference between FOSS and FLOSS?
Photo by Syd Wachs on Unsplash

On a recent post, we discussed the differences between Free Software, Open-Source, Libre, FOSS and FLOSS. Today, let's review the differences and similarities between both. 

FOSS / FLOSS

The first thing to know is that either FOSS and FLOSS are acronyms, where:

  • F/O/S/S: Free + Open Source + Software
  • F/L/O/S/S: Free + Libre + Open Source + Software

If that didn't help much, don't worry! Let's review what they mean. 

Free Software

The term "free software" was created by Richard Stallman the creator of the GNU project and the Free Software Foundation. Free in "free software" is not about price, but freedom. Freedom to use and modify the software you use. According to the GNU Project, the four essential freedoms are:

  • Freedom 0: freedom to run the program as you wish, for any purpose.
  • Freedom 1: freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  • Freedom 2: freedom to redistribute copies so you can help others.
  • Freedom 3: freedom to distribute copies of your modified versions to others. 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.
In summary, free software is about freedom, not price.

Open-Source

The term "open source" was created by a group of folks who later formed the Open Source Initative (OSI) to distinguish from the more philosophically-focused term "free software." According to OSI's distribution terms, open-source software must comply with the following ten criterias:

  • Free redistribution
  • Access to the source code
  • Derived Works
  • Integrity of The Author's Source Code
  • No Discrimination Against Persons or Groups
  • No Discrimination Against Fields of Endeavor
  • Distribution of License
  • License Must Not Be Specific to a Product
  • License Must Not Restrict Other Software
  • License Must Be Technology-Neutral

Libre

Due to the ambiguity of the word free in the English language meaning both "for free" and "freedom", libre (which in French means "free" as in freedom) was chosen given its equivalency to freedom. Today Libre is frequently (and correctly) used as a synonym/alternative for "free" as per Stallman's original definition.

Difference between FOSS and FLOSS

With all that said let's discuss the difference between FOSS and FLOSS: one L. As seen above, because Libre and Free are synonyms (as per the author's original intention however on different languages), FOSS and FLOSS are equivalents.

However, some people view FLOSS as more inclusive than FOSS which we totally disagree. Whoever created the expression FLOSS, didn't understand that F stands for freedom (not "for free" as in costs zero dollars).

Conclusion

On this post we discussed the potential differences between FOSS and FLOSS. Since both F and L are about freedom, not price, both are literally synonyms as intended by the creator of the "free software" expression. That said, FOSS and FLOSS can be considered equivalents with FLOSS being redundant at most.

Do you disagree? Reach out to us on twitter to let us know!

References

See Also

Monday, January 18, 2021

Free Software and Open-Source: what are the differences?

Contrarily to what you think, free software and open-source are not the same thing
Photo by JESHOOTS.COM on Unsplash

On recent posts, we have been discussing free and open-source software and related licenses. Contrarily to what you may think, free software and open-source are not the same thing. Today we will discuss what are the differences between both.

Free Software

In order to understand the differences between both terms, it's important to recap the definition of both. So let's start with this statement from Richard Stallman, the creator of the GNU project and the Free Software Foundation:

When we call software “free,” we mean that it respects the users' essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.”

But which are the four essential freedoms? According to the GNU Project, they are:

  • Freedom 0: freedom to run the program as you wish, for any purpose.
  • Freedom 1: freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  • Freedom 2: freedom to redistribute copies so you can help others.
  • Freedom 3: freedom to distribute copies of your modified versions to others. 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.
In summary, free software is not about price, but about your freedom.

Open-source software

It's important to understand the origin of the expression "open-source" so we can distinguish it from "free software". The “open source” label was created on February 3rd, 1998, to distinguish it from the more philosophically-focused label "free software." With the label, the Open Source Initative (OSI) was also created to explain and protect the "open source" label. The adoption of the term was swift, with early support from figures in the community, like Linus Torvalds, and by many key individuals, including the founders of, Perl, Python, Apache, and representatives from other organizations.

According to OSI's distribution terms, open-source software must comply with the following ten criterias:

  • Free redistribution
  • Access to the source code
  • Derived Works
  • Integrity of The Author's Source Code
  • No Discrimination Against Persons or Groups
  • No Discrimination Against Fields of Endeavor
  • Distribution of License
  • License Must Not Be Specific to a Product
  • License Must Not Restrict Other Software
  • License Must Be Technology-Neutral

Differences

Despite similarities, there are differences between free and open source software. Here's a quick summary:
  • Free software: more flexible licensing model, more geared towards users and their communities, more about your freedom to run the apps you need, distribute the software as you wish and your freedom to distribute copies of it and help the community around you.
  • Open source: free redistribution but with a more restrictive licensing model, more restrictive licenses, can carry "nonfree" conditions, users cannot modify the program they run.
For more information about the differences, read this article.

Implications

So let's finalize with concrete, objective remarks: what are the implications of using "open-source" or "free software" for consumers and for organizations?

Implications for Consumers

But what are the implications to consumers for each license. In theory, open source licenses are a little more strict than free software licenses on the freedom aspect (not on the price). That said, if you don't expect to modify that open source program you just installed, it should be fine.

Implications for Developers and Organizations

If for consumers are not directly affected by the subtle differences between the diverse types of licenses, the maintainers should definitely take the differences  carefully into account. As discussed in our post about open-source licenses, when releasing free/open software, it’s essential that companies understand the differences between the multiple existing licenses — including proprietary ones — and choose the one that best fits the objective of the project.

Another important aspect is how much control they want to have on their project. The free software movement places all the cards on the user while the open source initiative is usually more geared towards commercial organizations.

Critics

Let's finish by discussing the critics both movements got with time. They are:

  • Free Software: too political, too philosophical, not much financially/commercially inclined.
  • Open Source: too commercial (primarily following the goals of businesses), does not reach the general population, or when it reaches is used for their exploitation (not our own words) by collecting information and even manipulating the user. 
To some extent, the above critics make sense, especially when we consider two critical problems of free/open source projects: funding and developer burnout. Neither of the options addresses those problems.

Conclusion

On this post we reviewed how "free software" differs from "open-source". There's way more differences between the terms "free software" and "open source" than most people imagine but it would be safe to say that most "free software" could be categorized as "open source", but not the contrary. Despite the contrasts, free/open source is the most effective way to build products/services today. As a consumer, understanding the differences between the multiple licenses available would definitely help you in your free/open source journey.

For more information on the topic, please consider reading the references below.

References

See Also

Monday, January 4, 2021

What is Free Software?

Would you be able to correctly define free software? Is free software really always free? Do you know which are the four essential freedoms of the free software movement?
Photo by Fuu J on Unsplash

On a previous post we discussed what is open-source. Today we will understand what is "free software" as per definition from the original founders and understand the difference between free and open-source software.

History of the Free Software Movement

To understand free software, it's important to understand the history of the free software movement.

The GNU Project has been campaigning for the free software movement and for users' freedom since 1983. The launch of the free GNU operating system  in 1984 as an alternative to non-free/proprietary operating systems was the first step. During the next decade, the GNU project only developed the essential components of the operating system and the GNU General Public License (GNU GPL), a license to release those components designed specifically to protect freedom for all users of a program.

Free Software Definition

So let's jump straight to the topic and define "free software". According to the Richard Stallman, the creator of the GNU Project, the GNU General Public License (GNU GPL) and the Free Software Foundation:

When we call software “free,” we mean that it respects the users' essential freedoms: the freedom to run it, to study and change it, and to redistribute copies with or without changes. This is a matter of freedom, not price, so think of “free speech,” not “free beer.”

With that said, here is what you should observe:

  • "free" in the "free software" expression isn't equal to zero dollars but to freedom of speech
  • free software is much more than price. It's about principles.

So let's learn more about the essential freedoms.

The four essential freedoms

According to the GNU Project, a program is free software if the program's users have the four essential freedoms:

  • Freedom 0: freedom to run the program as you wish, for any purpose.
  • Freedom 1: freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  • Freedom 2: freedom to redistribute copies so you can help others.
  • Freedom 3: freedom to distribute copies of your modified versions to others. 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.

Free Software x Open-Source software

With all the definitions satisfied, the only question that remains is: is free software equal to open-source? Long story short, no! But it's a long and complex topic which we'll cover in a future post.

Conclusion

On this post we learned about "free software", its origin and the contributions it had from the GNU Project, the GNU General Public License (GNU GPL) and the Free Software Foundation. The free software movement plays an extremely important role in today's broader consumer/enterprise landscape and its extremely important for growing Linux and open-source software.

For more information on the topic, please consider reading the references below.

Further References

See Also

Tuesday, December 15, 2020

Open-Source Licenses: All you need to know

Understanding free/open-source licenses is not an easy task. Learn what they are, how they are created and which one is best for your project.
Photo by Annie Spratt on Unsplash

One important aspect of open-source software is its license. It's common for free/open-source software to be governed by a license and you will at some point hear about them. An open-source license allows the source code to be used, modified and/or shared under defined terms and conditions. Understanding the licences is critical to any open-source project.

Today there are 100+ open-source licenses and 90+ free-software licenses so it's really easy to get lost. Since when using Linux you may be exposed to licenses, we prepared this summary to help you understand why they exist, how they're created and why we need them.

For a quick guide about the most common open-source licenses, please read: Choose a License.

What's an open-source License?

An open-source license is a license for software (but can also be applied to other products as we'll see below) that allows review, use, modification and sharing under certain conditions. Open-source licenses usually allow companies to modify and use the source code under their needs.

Are open-source licenses always free?

No. Most open-source licenses allow software to be available for free, however there are also non-free licenses. Note that non-free licenses may conform to open-source, but NOT to free-software, a common misconception since most people think open-source and free-software the same, which they are not.

Who oversees the licenses?

There are two bodies that oversee licenses: The Open Source Initiative which governs open-source licenses (free/non-free) and the Free Software Foundation which maintains a list of free software licenses.

Types of Licenses

As we saw, open-source licenses apply to much more than just software. The GNU Project's License Page website contains an extensive list of licenses in different categories:

How are licenses created?

If you find that none of the 100+ open-source licenses and the 90+ free-software licenses suits your needs, you can create your own license. For free software licenses, check the GNU License page for more information.

For your license to be recognized as an open-source license, you'd have to submit your license to the Open Source Initiative so it can be reviewed by the OSI Board. The review is a transparent and relatively quick process (usually done under 60 days) and is necessary to ensure that licenses and software labeled as "open source" conform to existing community norms and expectations. The review also:

How licenses are classified

In short, in free, non-free, proprietary or open-source licenses. Free software licenses are governed by the GNU project which classifies them:

  • Whether it qualifies as a free software license.
  • Whether it is a copyleft license.
  • Whether it is compatible with the GNU GPL. Unless otherwise specified, compatible licenses are compatible with both GPLv2 and GPLv3.
  • Whether it causes any particular practical problems
Open-source licenses are governed by the Open Source Initiative and have to comply with the Open Source Definition which imposes restrictions on:
  • Free redistribution
  • Source code
  • Derived works
  • Integrity of the author's source code
  • No discrimination against persons or groups
  • No discrimination against fields of endeavor
  • Distribution of license
  • License must not be specific to a product
  • License must not restrict other software
  • License must be technology-neutral

Most Popular Licenses

As previously mentioned, there are 100+ licenses so let's quickly review the most popular open-source/free-software licenses in use today are:

  • GNU General Public License (GPL) v3: the recommended license by the Free Software Foundation and by the GNU Project
  • Mozilla Public License 2.0: a weak copyleft license conditioned on making available source code of licensed files and modifications of those files under the same license.
  • Apache License 2.0: a permissive license whose main conditions require preservation of copyright and license notices.
  • MIT License: a short and simple permissive license with conditions only requiring preservation of copyright and license notices.
  • No license: According to the GNU project, cannot be considered free-software (see below).

For a throughout review of the licenses, consider reviewing in details the licenses on the GNU Licenses and OSI Licenses & Standards pages.

What about no License?

According to the GNU project, software without license cannot be considered free-software:

if source code does not carry a license to give users the four essential freedoms, then unless it has been explicitly and validly placed in the public domain, it is not free software.

Some developers think that code with no license is automatically in the public domain. That is not true under today's copyright law; rather, all copyrightable works are copyrighted by default. This includes programs. Absent a license to grant users freedom, they don't have any. In some countries, users that download code with no license may infringe copyright merely by compiling it or running it.
Content accessed on Sep 28, 2020  

Which license is best for my project?

In order to choose which software license is right for your next project, it's important to understand first if you want to target free or open-source software. For free software licenses consider studying the Free Software Foundation’s License List. For open-source licenses , check the Open Source Initiative’s Licenses & Standards for more information.

When in doubt, consider using one of the licenses suggested above or check the Choose a License website for more information.

Conclusion

Understanding free/open-source licenses is not an easy task but it's critical to any open-source project. Since there are 100+ open-source licenses and 90+ free-software licenses we hope this summary helps you understand this complex topic a little more.

Further References

See Also

Tuesday, December 1, 2020

What is Open-Source?

Today, the term open-source is pretty popular. But it also means a lot of things. Would you like to understand more about it? Learn more on this post.
Photo by Chang Duong on Unsplash

Nowadays, the term open-source is pretty popular. But it also means a lot of things. Let's learn about its history and how it changed not only how we use software and services today, but also how it changed the society as a whole.

A little bit of History

The history of the free software/open-source mixes with the history of early computing and Unix itself so it's important to provide a little of context first.

Some say that it was Dr. Donald Knuth the first person to release a program's source code (TeX) to the public for free, but Richard Stallman, another brilliant developer who since his early years in the Harvard, then MIT labs believed (and later campaigned) that software should be open (ie., with its source code open to the public) and free (as in speech, not as in beer). His initiative soon would be known as the free software movement

The Free Software Movement

Before the term open-source became popular, the term "free software", created and popularized by Richard Stallman, was more prevalent. Stallman, who in 1983 started the the GNU operating system with the goal of creating a "complete Unix-compatible software system" composed entirely of free software.

Stallman who working in MIT's AI lab in the early 1970s became frustrated with the spread of proprietary software, saw it as a violation of people’s rights to innovate and improve existing software. His experiences with proprietary software made him an activist in defense of free software. Today it's difficult to imagine Linux, free and open-source software today without his contributions.

Speaking of contributions, some of Stallman's contributions to humankind are: the GNU Project, the Free Software Foundation, the GNU Compiler CollectionEmacs and the GPL / GNU General Public License.

Open-Source as a term

But Stallman's vision of free software had opposition from those who thought that the requirements imposed by the the free software movement were much too rigid. That group composed of influent people such as Todd Anderson, Larry Augustin, Jon Hall, Michael Tiemann and Eric S. Raymond endorsed the adoption of the term open-source proposed by Christine Peterson as a broader and better alternative.

Soon, other influential names such as Linus Torvalds, Phil Hughes, Larry Wall, Brian Behlendorf, Eric Allman, Guido van Rossum, Michael Tiemann, Paul Vixie, Jamie Zawinski, and Eric S. Raymond would be aligned with the new term raising awareness and industry-wide adoption.

Licenses

Licenses are an essential aspect of open-source software. The most common are:
  • GNU General Public License: the license created by Stallman himself. Today there are mainly three GNU licenses: AGPLv3, GPLv3, LGPLv3
  • Mozilla Public License 2.0: Permissions of this weak copyleft license are conditioned on making available source code of licensed files and modifications of those files under the same license
  • Apache License 2.0: A permissive license whose main conditions require preservation of copyright and license notices.
  • MIT License: A short and simple permissive license with conditions only requiring preservation of copyright and license notices.
Understanding the licenses is critical to any open-source project and is definitely a complex subject. We will address this in a more detailed post in the future.

Broader Open-Source Reach

Today, the term "open-source" goes beyond software and reaches many segments, including:

The world without Free/Open software

The world we live today would be drastically different if we didn't have these initiatives by Richard Stallman, Linux Torvalds, the others previously mentioned and millions of anonymous contributors worldwide.

Below, some of the ways in which free/open-source software changed the world:

  • the Internet: pretty much all the infrastructure of the internet today (routers, switches, firewalls, etc) runs Linux or open-source software. Not to mention the web servers (Apache, Nginx), databases (PostgreSQL, Redis, MySQL) and even most of the programming languages and libraries used to develop the tools and services you use are open-source.
  • Services: cloud services are built on top of the above list and use container technologies such as Docker, Kubernetes, containerd, KVM, QEMU which are also open-source.
  • Faster time to market: open-source also fosters and is essential for a faster time to market, critical to business today. 
  • Reduced development cost: it's probable that Google, Spotify, Tesla and even Amazon wouldn't exist today without open-source. It's impossible to imagine how to develop so complex products and services without the broad diversity of open tools available today.
  • Education: education also benefits significantly from free/open-source software. The contributions range from the device learners are using (Android, Chrome OS for example) to the services, infrastructure and broad range of technologies that support them.
  • IoT: the next age of computing will reach virtually every digital device around us. And Linux/open-source software is the 
  • Robotics: robotics also heavily utilizes open-source technologies (including hardware). 
  • Supercomputers: all of the supercomputers today run Linux. These computers are used for researches and are critical to the evolution of humankind.
  • And everything else: from agriculture to rockets, spaceships and nuclear plants, open-source runs everywhere.

Famous open-source initiatives

Today, there are many, many initiatives and projects that are extremely successful and follow the open-source. Some of the most biggest projects today are:

Linux and Open-Source

The GNU General Public License was the tool Linus Torvalds needed to grow his project. Without the open-source model, the distributed and collaborative nature of open-source and its ever growing audience of fellow contributors and sponsors, it's impossible to imagine that Linux would have have reached 30 million lines of code and US$ 5 billion in value.

And without the GNU operating system, we wouldn't have a solid foundation to build the fantastic Linux distributions we have available for free today.

Conclusion

The world as we know today would be radically different without the contributions of those pioneers back in the 80's. Between them, Richard Stallman was definitely the most important proponent of the free-software agenda which was later extended by the open-source movement reaching wider audiences and gaining corporate endorsement.

Today, Linux is the biggest open-source project in the world and rules the cloudthe Internet, mobiles phones and even supercomputers. Without Linux and open-source, it's difficult to imagine how far would the society be today. Definitely we'd be behind, way behind.

References

See Also

Featured Article

Free Software, Open-Source, Libre, FOSS and FLOSS: what are the differences?

Are these just different names for the same thing? Or there are differences? Photo by Romain Vignes on Unsplash We have been discussing...

Popular this Week