Difference between revisions of "Free software"

From LibrePlanet
Jump to: navigation, search
m (category)
m (Undo revision 68947 by Kompowiec2 (talk))
(Tag: Undo)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Why should I care about software?  =
+
== Why should I care about software?  ==
  
 
Our daily lives are increasingly mediated by digital technologies. Everything that powers our society—our media, medical devices, voting machines, communication, and so much more—depends on devices running software to control them. The way that software functions is determined by its "source code", and whoever owns that in turn controls our technology and has immense influence over our lives. When that source code is owned by someone else and kept secret, there's no way to know what it's doing or how it works. When someone else controls your software, you give them ultimate control over your computing.  
 
Our daily lives are increasingly mediated by digital technologies. Everything that powers our society—our media, medical devices, voting machines, communication, and so much more—depends on devices running software to control them. The way that software functions is determined by its "source code", and whoever owns that in turn controls our technology and has immense influence over our lives. When that source code is owned by someone else and kept secret, there's no way to know what it's doing or how it works. When someone else controls your software, you give them ultimate control over your computing.  
  
= How can we trust our technology?  =
+
== How can we trust our technology?  ==
  
 
We've seen the incredible advancements and social movements enabled by digital technology, but we must be mindful of its effects. Software ultimately leaves users at the mercy of whoever owns it, but we don't have to give up freedom for progress. Software shouldn't work against its users for profit and control. You should own your software. You should be in control.  
 
We've seen the incredible advancements and social movements enabled by digital technology, but we must be mindful of its effects. Software ultimately leaves users at the mercy of whoever owns it, but we don't have to give up freedom for progress. Software shouldn't work against its users for profit and control. You should own your software. You should be in control.  
Line 9: Line 9:
 
Using '''free software''' is the only way to guarantee that. By using free software, you gain autonomy over your own computing and are protected from the surveillance, monopolism, and other malicious features in non-free software.
 
Using '''free software''' is the only way to guarantee that. By using free software, you gain autonomy over your own computing and are protected from the surveillance, monopolism, and other malicious features in non-free software.
  
= What is free software?  =
+
When it comes to software, there's a world of possibilities that opens up when you embrace the concept of free (as in freedom) software. Free software empowers you, giving you control over your digital life and respecting your rights as a user.
The aim of this article is to explain it completely, that is, after reading this chapter, not only that you understand this yourself, but you would be able to explain it to others comfortably later. I know this is an ambitious assumption, but we will try to do it.
 
  
Definition:
+
Unlike proprietary software, which limits your ability to modify or share the software, free software grants you the freedom to use, study, modify, and distribute it as you see fit. Let me highlight some of the key benefits and reasons why free software is a game-changer:
  
'''Free Software''' (''freedom granting software'', or also ''libre software'') is computer software distributed under terms that allow users to run the software for any purpose as well as to study source code, change, distribute it and improve any adapted versions.
+
* Empowerment: With free software, you have the power to understand how the program works, make changes to suit your needs, and contribute back to the community. You're not just a passive user; you can actively shape the future of the software you rely on.
  
of course, at first we know nothing with the definition, but soon everything will become clear. At first, you can get lost in the flow of these words, but you must have noticed the word '''free'''. You may already be confused at this stage - but how is it free? and why does it have several names?
+
* Privacy and Security: Free software is often developed with a strong focus on security and privacy. The open and transparent nature of its development allows for thorough peer review and auditing, reducing the risks associated with hidden vulnerabilities or malicious code.
  
'''Free''' is a matter of liberty, not price; we're concerned with your freedom. all users are legally free to do what they want with their copies of a free software (including profiting from them) regardless of how much is paid to obtain the program, and we sometimes say spanish borrowed word "libre" to show that. I will use this word later in this article to avoid confusing/ambiguity and semantic chaos.
+
* Collaboration and Community: Free software fosters a vibrant and collaborative community of like-minded individuals who share their knowledge, expertise, and passion for technology. By joining this community, you can learn from others, engage in discussions, and contribute to projects that align with your interests.
  
'''computer''' is a universal machine that can be programmed to carry out sequences of arithmetic or logical operations automatically. Modern computers can perform generic sets of operations known as programs. These programs enable computers to perform a wide range of tasks.
+
* Cost Savings: One of the most significant advantages of free software is its cost-effectiveness. You don't have to pay expensive licensing fees or worry about recurring subscription costs. This accessibility makes it an excellent choice for individuals, businesses, educational institutions, and non-profit organizations alike.
  
'''software'''  is a collection of instructions that tell a computer how to work. By writing the right program, you can make it do almost anything.
+
* Longevity and Independence: With free software, you're not at the mercy of a single vendor or company. Even if a project is discontinued or a company goes out of business, the software remains available for users to continue maintaining and improving. This long-term sustainability ensures that you're not locked into a specific product or service.
  
'''Users''' are the entry point.
+
So, whether you're a developer looking to contribute to an open-source project, a user concerned about privacy and control, or a business seeking flexibility and cost savings, free software offers an incredible value proposition.
  
:With software, there are two possibilities: users control the program or program controls the users. It's inevitably one or the other. In order for the users to control the program, they need 4 essential freedoms.
+
== What is free software?  ==
 +
Free software is software that you can use, study, share, and improve without any restrictions. It's like a toy that you can play with and share with your friends, but you're also allowed to take it apart and see how it works.
  
* Freedom 0: The freedom to '''run''' the program ''''for any purpose.'''
+
Imagine you have a puzzle that you really like. You can put the puzzle together as many times as you want, and you can even give it to your friends to play with. But you're also allowed to take the puzzle apart and see how it's made, or even change it and make it better. That's what free software is like - you can use it and share it with others, but you're also allowed to look at the code and change it if you want to.
* Freedom 1: The freedom to '''study''' how the program works, and change it to make it do what you wish.
 
  
But what is '''source code'''? In computing, source code is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source code. The source code is often transformed by an assembler or compiler into binary machine code that can be executed by the computer. The machine code might then be stored for execution at a later time. Alternatively, source code may be interpreted and thus immediately executed.
+
Free software is different from other software that you might have to pay for, or that has strict rules about how you can use it. With free software, you have freedom - the freedom to use it, study it, share it, and improve it. That's why it's called "free" software.
  
Most application software is distributed in a form that includes only executable files. If the source code were included it would be useful to a user, programmer or a system administrator, any of whom might wish to study or modify the program.  
+
The term "free" does not necessarily mean that the software is available at no cost, although many free software programs are also available for free.
  
:If you all get is the executable, it's a horrible pain in the neck to the figure out what it does, and even harder to change it, so to give you the real possibility to study and change it, they've got the give you to source code, that's the requirement. it's the individual control.
+
===How it works?===
 +
Let’s say I’m a carpenter. While I’m working on the furniture for a dining room someone asked me to produce, I stumble across the need of inventing something that allows people in the room to sit down. So I come up with a chair. It’s a rather simple chair, with no armrests and nothing fancy, but it suits my need: allow people to sit down. Yay, problem solved. Now, I can keep my brilliant invention secret and be jealous about my precious, OR I can share it with the world of carpenters.
  
:But what if are not a programmer? You look at the source code, and you don't understand it.  Individual control isn't enough.  We also need collective control, which means any group of users are lbre to work together to adapt the program to what they want.  Of course, in the group, some of them are programmers.  They're the ones who actually write the changes, but they're doing it as part of the group for what the group wants.  Of course, the group doesn't have to be everybody.  Others can use it some other way.  They're all libre to do that.  Collective control requires two more essential freedoms.
+
Why would you share it?
  
* Freedom 2: The freedom to re'''distribute''' and make copies so you can help your neighbour.
+
Because it could help someone solving the same problem I encountered. Because after, say, a few days, or months, or even years, my chair could come back to me with a good ol’ pair of armrests, that were made by another carpenter out there in the world. Someone who borrowed my chair, worked on it and shared its improvements back in turn. That can happen over and over, the more problems my chair solves, the more people will work to improve it, maybe giving it a more comfortable back or more functional legs. That way we can develop together the best chair possible for that particular situation. And because it feels so good to take part in something like that.
* Freedom 3: The freedom to '''improve''' the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits
 
  
:Basically freedom three is similar, but it's for your modified versions. You're libre to make copies, and then give them or sell them when you wish.  If you do have these freedoms, then it's libre software, the users control the program. But if any of those freedoms is missing, then the users don't control the program. Instead, the program controls the users and the developer controls the program. So, that means this program is an instrument of unjust power for its developer over the users.  That means the users don't have freedom, that's non-libre, proprietary software which we've got to get rid of.
+
It is this part of community, but it is not the most important part of all of this. The key reason is that the program is not solely controlled by its owner. And here we come to a certain abstraction which in this breakneck analogy may raise objections: But why should the owner of the chair not have the right to dispose of his property?!. This is not the point. He can use it in any way he wants, the problem begins when the owner dictates how to use the chair he distributes, others. This is where the problem of the Free Software Foundation, founded by Richard Stallman, begins.
  
All inserts that start with a colon, are quotes from Richard Stallman's TED 2014 talk under CC-BY-ND license, borrowed under the right to quote.
+
Who gives the instructions to your computer<ref>a '''computer''' is a universal machine that can be programmed to automatically perform a sequence of arithmetic or logic operations. Modern computers can perform general sets of operations known as programs. These programs enable computers to perform a wide range of tasks.</ref>? You may think that he is following your instructions when he really obeys someone else first, and only as much as the program owner allows him to listen. In the case of software, there are two possibilities: Either the users control the program, or the program controls the users. It is inevitable one or the other. For users to be able to control a program, they need four fundamental freedoms:
  
==How do people make money?==
+
* Freedom 0: The freedom to use the program for any purpose.
:main article: [https://en.wikipedia.org/wiki/Business_models_for_open-source_software Business models for open-source software]
+
* Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
 +
* Freedom 2: The freedom to redistribute and make copies so you can help your neighbor.
 +
* Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.
  
*Not Selling Code
+
The first and third freedoms can only be fulfilled when the source code<ref>'''Source code''' - You already know what a program is, you already know what a programming language is, and now I will tell you about a concept that naturally arises from the previous two, i.e. what a code is source. Simply put, it's just the content of all the instructions that we type in to make the program work. And such source code is usually written in a specific programming language in which it is understandable by a human. In other words, it is the set of program instructions, the content of all those instructions, what a programmer needs to type in order for our program to run. Basically, most programming languages are plain text.</ref> of the software<ref>'''computer program''' and related term '''software''' - is a set of instructions that tells a computer or other device what to do. It's like a recipe that tells you how to make a cake - the recipe is a set of instructions that tells you what ingredients to use and what steps to follow in order to make the cake. In the same way, software is a set of instructions that tells a computer what to do. For example, if you want to play a video game on your computer, you need to have the right software installed. The software is like the instructions that tell the computer how to run the game, display the graphics, and play the sound. Software can be used for all kinds of things, from running games and applications to controlling robots and medical devices. It's an important part of how computers and other devices work, and it helps us do all kinds of things that wouldn't be possible without it.</ref> is available
**Professional services - selling "support"
+
 
**Branded merchandise - selling knick-nacks
+
Each program usually takes two forms. It is in a form that you can read and understand if you know the programming language<ref>'''Programming language''' - instructions (programs) for a computer are most often written using a programming language, so you cannot write these instructions in any way, for example in Polish, English or a normal human language, it must be written in such a way that the computer understands it. So you need some programming language to write this whole set of instructions.</ref>. This is the source code. This is what the programmers write and change. Then there's the executable, which is a set of numbers that even a programmer can't figure out. If all you get is an executable<ref>'''Executable file''' or '''machine code''' - This is the language understood by the computer's processor. The processor is in every computer, be it a desktop computer or a smartphone, it all works thanks to the fact that it has a processor and all this machine code, it is the language in which our equipment works, the language in which our processor works. First of all, it is a language intended for the machine, unreadable for a human, i.e. the processor is able to read and understand this machine code, but we will rather have problems with that, it will be rather unreadable for us. And above all, the very commands that we write in plain programming language are converted into machine code that the computer can understand. Because the computer only understands this machine code, it does not understand directly all the instructions that we write in any programming language, they just have to be converted from this normal programming language to the output machine code first, so that the processor can understand all these instructions, commands, understand .</ref> then it's a terrible pain in the butt to find out what it does, and even harder to change it. So, to give you a real opportunity to learn and change, they have to give you the source code. This is a requirement.
**Software as a service - selling infrastructure
+
 
**Voluntary donations - not selling anything, much less code
+
Now you may be asking yourself the question "if it is possible to find out what a program does even without the source code, it's probably okay?" To imagine why this is problematic, let's create a simple example: You go to a restaurant and order soup. For example, let's say vegetable soup. Well, ordering yourself such a vegetable soup, for example, you would like to cook such soup at home. This is where the problems begin. Most of the software we use can be closed software, i.e. one in which we cannot see the source code, i.e. we cannot see the recipe for our soup. We just get ready-made soup and we don't really know what's in it. Of course, if we would like to cook a soup such as Adobe Photoshop, then looking at this soup we see "mhm, well, there are such elements here, such elements" and we can '''try''' repeat this soup, but we do not know how much someone for example, he gave salt, we don't know how much pepper someone gave, we don't know how long this soup was cooked. And free software works more in such a way that as soon as you order a soup, you get the recipe for this soup and ready-made ingredients, and you can cook it yourself.
**Crowdsourcing - not selling anything, much less code
+
 
*Selling Users, Not Code
+
With these two freedoms, each user individually can make a copy and start changing it and making it do what they want. This is individual control. But what if you are not a developer? You are looking at the source code and you don't understand it. Individual control is not enough. We also need collective control, which means that each group of users can work together to tailor the program to what they want. Of course, some of them in the group are programmers. They actually write the changes, but they do it as part of the group for what the group wants. Of course, the group doesn't have to be everything. Others may use it in other ways. Everyone can do it. Thus, collective control requires two more essential freedoms.
** Partnership with funding organizations - i.e. getting funded by Google (Not Evil ?)
+
 
** Advertising-supported software - i.e. getting funded by advertisers
+
If you have all 4 freedoms then it is free software, the users control the program. But if either of these freedoms is missing, then the users don't control the program. Instead, the program controls the users and the developer controls the program. So it means that this program is an instrument of unfair power of the developer over the users. This means that users have no freedom, that is, non-free proprietary software that we must get rid of.
***Option A: Pre-selling Code
+
==  What is copyleft? ==
****Pros - if a unique set of users will benefit
+
Copyleft is a legal concept that allows creators to share their creative work under certain conditions that promote freedom and sharing. Specifically, it is a method of using copyright law to remove restrictions on the use and distribution of creative works.
****Cons - vaporware, freeloading users
+
 
*Bounty driven development
+
The term "copyleft" was first coined by Richard Stallman, the founder of the Free Software Foundation, in the 1980s. It is a play on the word "copyright," but instead of reserving all rights to the creator, it flips the concept to allow for the free distribution and modification of the work.
**Pre-order/crowdfunding/reverse-bounty model
+
 
***Option B: Playing copyright, IP, and lawfare games
+
In practice, copyleft is achieved by attaching a license to a work that grants users the right to freely use, modify, and distribute the work, as long as they agree to do the same for any derivative works they create. This is often referred to as a "share-alike" license or a "viral" license, because it requires anyone who uses or modifies the work to share their changes under the same terms.
****Pros - you have more lawyers than engineers i.e. Oracle
+
 
****Cons - you don't
+
One of the most well-known copyleft licenses is the GNU General Public License (GPL), which is commonly used for free software. The GPL ensures that any modifications or derivative works of the software are also free and open-source, and it prevents any individual or organization from restricting others from using or modifying the software.
** Dual-licensing or Open Core
+
 
** Selling of certificates and trademark use
+
== External links ==
** Re-licensing under a proprietary license
+
* [https://www.gnu.org/philosophy/programs-must-not-limit-freedom-to-run.html Why programs must not limit the freedom to run them]
*Option C:
+
** [https://www.fsf.org/blogs/licensing/20050211.html Censorship envy and licensing]
**Pros - Make money because your code isn't FLOSS
+
* [https://www.gnu.org/philosophy/your-freedom-needs-free-software.html Your Freedom Needs Free Software]
**Cons - Why is this called "FLOSS business models" when it's not?
+
* [[Why Free Software is Important]]
*** Selling of optional proprietary extensions
+
** [https://www.gnu.org/philosophy/free-software-even-more-important.html Free Software Is Even More Important Now]
*** Selling of required proprietary parts of a software product
+
* [[Why Software Should Not Have Owners]]
*** Selling of proprietary update systems
+
* [https://www.gnu.org/philosophy/shouldbefree.html Why Software Should Be Free]
*** Obfuscation of source code
+
* [https://www.gnu.org/philosophy/loyal-computers.html What Does It Mean for Your Computer to Be Loyal?]
*** Delayed open-sourcing
+
* [https://www.gnu.org/philosophy/selling.html Selling Free Software] - This is OK!
*** Open sourcing on end-of-life
+
* [https://www.gnu.org/philosophy/free-doc.html Why Free Software Needs Free Documentation]
 +
* [https://www.gnu.org/philosophy/free-hardware-designs.html Free Hardware and Free Hardware Designs]
 +
 
 +
 
 +
==what does that actually mean... ==
  
 
[[Category:Philosophy]]
 
[[Category:Philosophy]]
[[Category:Free Software]]
 

Latest revision as of 07:37, 14 August 2023

Why should I care about software?

Our daily lives are increasingly mediated by digital technologies. Everything that powers our society—our media, medical devices, voting machines, communication, and so much more—depends on devices running software to control them. The way that software functions is determined by its "source code", and whoever owns that in turn controls our technology and has immense influence over our lives. When that source code is owned by someone else and kept secret, there's no way to know what it's doing or how it works. When someone else controls your software, you give them ultimate control over your computing.

How can we trust our technology?

We've seen the incredible advancements and social movements enabled by digital technology, but we must be mindful of its effects. Software ultimately leaves users at the mercy of whoever owns it, but we don't have to give up freedom for progress. Software shouldn't work against its users for profit and control. You should own your software. You should be in control.

Using free software is the only way to guarantee that. By using free software, you gain autonomy over your own computing and are protected from the surveillance, monopolism, and other malicious features in non-free software.

When it comes to software, there's a world of possibilities that opens up when you embrace the concept of free (as in freedom) software. Free software empowers you, giving you control over your digital life and respecting your rights as a user.

Unlike proprietary software, which limits your ability to modify or share the software, free software grants you the freedom to use, study, modify, and distribute it as you see fit. Let me highlight some of the key benefits and reasons why free software is a game-changer:

  • Empowerment: With free software, you have the power to understand how the program works, make changes to suit your needs, and contribute back to the community. You're not just a passive user; you can actively shape the future of the software you rely on.
  • Privacy and Security: Free software is often developed with a strong focus on security and privacy. The open and transparent nature of its development allows for thorough peer review and auditing, reducing the risks associated with hidden vulnerabilities or malicious code.
  • Collaboration and Community: Free software fosters a vibrant and collaborative community of like-minded individuals who share their knowledge, expertise, and passion for technology. By joining this community, you can learn from others, engage in discussions, and contribute to projects that align with your interests.
  • Cost Savings: One of the most significant advantages of free software is its cost-effectiveness. You don't have to pay expensive licensing fees or worry about recurring subscription costs. This accessibility makes it an excellent choice for individuals, businesses, educational institutions, and non-profit organizations alike.
  • Longevity and Independence: With free software, you're not at the mercy of a single vendor or company. Even if a project is discontinued or a company goes out of business, the software remains available for users to continue maintaining and improving. This long-term sustainability ensures that you're not locked into a specific product or service.

So, whether you're a developer looking to contribute to an open-source project, a user concerned about privacy and control, or a business seeking flexibility and cost savings, free software offers an incredible value proposition.

What is free software?

Free software is software that you can use, study, share, and improve without any restrictions. It's like a toy that you can play with and share with your friends, but you're also allowed to take it apart and see how it works.

Imagine you have a puzzle that you really like. You can put the puzzle together as many times as you want, and you can even give it to your friends to play with. But you're also allowed to take the puzzle apart and see how it's made, or even change it and make it better. That's what free software is like - you can use it and share it with others, but you're also allowed to look at the code and change it if you want to.

Free software is different from other software that you might have to pay for, or that has strict rules about how you can use it. With free software, you have freedom - the freedom to use it, study it, share it, and improve it. That's why it's called "free" software.

The term "free" does not necessarily mean that the software is available at no cost, although many free software programs are also available for free.

How it works?

Let’s say I’m a carpenter. While I’m working on the furniture for a dining room someone asked me to produce, I stumble across the need of inventing something that allows people in the room to sit down. So I come up with a chair. It’s a rather simple chair, with no armrests and nothing fancy, but it suits my need: allow people to sit down. Yay, problem solved. Now, I can keep my brilliant invention secret and be jealous about my precious, OR I can share it with the world of carpenters.

Why would you share it?

Because it could help someone solving the same problem I encountered. Because after, say, a few days, or months, or even years, my chair could come back to me with a good ol’ pair of armrests, that were made by another carpenter out there in the world. Someone who borrowed my chair, worked on it and shared its improvements back in turn. That can happen over and over, the more problems my chair solves, the more people will work to improve it, maybe giving it a more comfortable back or more functional legs. That way we can develop together the best chair possible for that particular situation. And because it feels so good to take part in something like that.

It is this part of community, but it is not the most important part of all of this. The key reason is that the program is not solely controlled by its owner. And here we come to a certain abstraction which in this breakneck analogy may raise objections: But why should the owner of the chair not have the right to dispose of his property?!. This is not the point. He can use it in any way he wants, the problem begins when the owner dictates how to use the chair he distributes, others. This is where the problem of the Free Software Foundation, founded by Richard Stallman, begins.

Who gives the instructions to your computer[1]? You may think that he is following your instructions when he really obeys someone else first, and only as much as the program owner allows him to listen. In the case of software, there are two possibilities: Either the users control the program, or the program controls the users. It is inevitable one or the other. For users to be able to control a program, they need four fundamental freedoms:

  • Freedom 0: The freedom to use the program for any purpose.
  • Freedom 1: The freedom to study how the program works, and change it to make it do what you wish.
  • Freedom 2: The freedom to redistribute and make copies so you can help your neighbor.
  • Freedom 3: The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits.

The first and third freedoms can only be fulfilled when the source code[2] of the software[3] is available

Each program usually takes two forms. It is in a form that you can read and understand if you know the programming language[4]. This is the source code. This is what the programmers write and change. Then there's the executable, which is a set of numbers that even a programmer can't figure out. If all you get is an executable[5] then it's a terrible pain in the butt to find out what it does, and even harder to change it. So, to give you a real opportunity to learn and change, they have to give you the source code. This is a requirement.

Now you may be asking yourself the question "if it is possible to find out what a program does even without the source code, it's probably okay?" To imagine why this is problematic, let's create a simple example: You go to a restaurant and order soup. For example, let's say vegetable soup. Well, ordering yourself such a vegetable soup, for example, you would like to cook such soup at home. This is where the problems begin. Most of the software we use can be closed software, i.e. one in which we cannot see the source code, i.e. we cannot see the recipe for our soup. We just get ready-made soup and we don't really know what's in it. Of course, if we would like to cook a soup such as Adobe Photoshop, then looking at this soup we see "mhm, well, there are such elements here, such elements" and we can try repeat this soup, but we do not know how much someone for example, he gave salt, we don't know how much pepper someone gave, we don't know how long this soup was cooked. And free software works more in such a way that as soon as you order a soup, you get the recipe for this soup and ready-made ingredients, and you can cook it yourself.

With these two freedoms, each user individually can make a copy and start changing it and making it do what they want. This is individual control. But what if you are not a developer? You are looking at the source code and you don't understand it. Individual control is not enough. We also need collective control, which means that each group of users can work together to tailor the program to what they want. Of course, some of them in the group are programmers. They actually write the changes, but they do it as part of the group for what the group wants. Of course, the group doesn't have to be everything. Others may use it in other ways. Everyone can do it. Thus, collective control requires two more essential freedoms.

If you have all 4 freedoms then it is free software, the users control the program. But if either of these freedoms is missing, then the users don't control the program. Instead, the program controls the users and the developer controls the program. So it means that this program is an instrument of unfair power of the developer over the users. This means that users have no freedom, that is, non-free proprietary software that we must get rid of.

What is copyleft?

Copyleft is a legal concept that allows creators to share their creative work under certain conditions that promote freedom and sharing. Specifically, it is a method of using copyright law to remove restrictions on the use and distribution of creative works.

The term "copyleft" was first coined by Richard Stallman, the founder of the Free Software Foundation, in the 1980s. It is a play on the word "copyright," but instead of reserving all rights to the creator, it flips the concept to allow for the free distribution and modification of the work.

In practice, copyleft is achieved by attaching a license to a work that grants users the right to freely use, modify, and distribute the work, as long as they agree to do the same for any derivative works they create. This is often referred to as a "share-alike" license or a "viral" license, because it requires anyone who uses or modifies the work to share their changes under the same terms.

One of the most well-known copyleft licenses is the GNU General Public License (GPL), which is commonly used for free software. The GPL ensures that any modifications or derivative works of the software are also free and open-source, and it prevents any individual or organization from restricting others from using or modifying the software.

External links


what does that actually mean...

  1. a computer is a universal machine that can be programmed to automatically perform a sequence of arithmetic or logic operations. Modern computers can perform general sets of operations known as programs. These programs enable computers to perform a wide range of tasks.
  2. Source code - You already know what a program is, you already know what a programming language is, and now I will tell you about a concept that naturally arises from the previous two, i.e. what a code is source. Simply put, it's just the content of all the instructions that we type in to make the program work. And such source code is usually written in a specific programming language in which it is understandable by a human. In other words, it is the set of program instructions, the content of all those instructions, what a programmer needs to type in order for our program to run. Basically, most programming languages are plain text.
  3. computer program and related term software - is a set of instructions that tells a computer or other device what to do. It's like a recipe that tells you how to make a cake - the recipe is a set of instructions that tells you what ingredients to use and what steps to follow in order to make the cake. In the same way, software is a set of instructions that tells a computer what to do. For example, if you want to play a video game on your computer, you need to have the right software installed. The software is like the instructions that tell the computer how to run the game, display the graphics, and play the sound. Software can be used for all kinds of things, from running games and applications to controlling robots and medical devices. It's an important part of how computers and other devices work, and it helps us do all kinds of things that wouldn't be possible without it.
  4. Programming language - instructions (programs) for a computer are most often written using a programming language, so you cannot write these instructions in any way, for example in Polish, English or a normal human language, it must be written in such a way that the computer understands it. So you need some programming language to write this whole set of instructions.
  5. Executable file or machine code - This is the language understood by the computer's processor. The processor is in every computer, be it a desktop computer or a smartphone, it all works thanks to the fact that it has a processor and all this machine code, it is the language in which our equipment works, the language in which our processor works. First of all, it is a language intended for the machine, unreadable for a human, i.e. the processor is able to read and understand this machine code, but we will rather have problems with that, it will be rather unreadable for us. And above all, the very commands that we write in plain programming language are converted into machine code that the computer can understand. Because the computer only understands this machine code, it does not understand directly all the instructions that we write in any programming language, they just have to be converted from this normal programming language to the output machine code first, so that the processor can understand all these instructions, commands, understand .