This commit is contained in:
Miloslav Ciz 2024-06-11 13:36:28 +02:00
parent 65fdd3799d
commit bc0419bd2b
28 changed files with 1873 additions and 1822 deletions

View file

@ -35,6 +35,17 @@ To make it clear, freedom 0 (use for any purpose) covers ANY use, even commercia
The developers of Debian operating system have created their own guidelines (Debian Free Software Guidelines) which respect these points but are worded in more complex terms and further require e.g. non-functional data to be available under free terms as well ([source](https://people.debian.org/~bap/dfsg-faq.html#not_just_code)), respecting also [free culture](free_culture.md), which GNU doesn't ([source](https://www.gnu.org/distros/free-system-distribution-guidelines.en.html#non-functional-data)). The definition of "[open source](open_source.md)" is yet more complex even though in practice legally free software is eventually also open source and vice versa. The [copyfree](copyfree.md) definition tries to be a lot more strict about freedom and forbids for example [copyleft](copyleft.md) (which GNU promotes) and things such as [DRM](drm.md) clauses (i.e. a copyfree license mustn't impose technology restrictions, even those seen as "justified", for similar reasons why we don't prohibit any kind of use for example).
## Measuring Practical Freedom With Freedom Distance
One big issue related to free software and similar causes (e.g. [free hardware](free_hardware.md)) is the danger of apparent freedom without practical freedom, i.e. freedom given legally on paper which however may be [de facto](de_facto.md) extremely hard or impossible to make use of practically, in real life. Imagine for example a highly complex software that by its license gives everyone the right to modify it but in practice to make meaningful modifications one needs specialized hardware and deep knowledge and know-how of how the code really works -- example of this is for example the [Android](android.md) operating system. This particular example is called [bloat monopoly](bloat_monopoly.md) and is highly used to misled users into thinking they have freedom or that they support something ethical while in fact they don't (see also e.g. [openwashing](openwashing.md)). Giving only this apparent freedom is how [capitalism](capitalism.md) adjusted to the wave of free software, it is how businesses silently smother real freedom while pretending to embrace free software (which they rather call [open source](open_source.md)). For this we always have to evaluate practical freedom we have, i.e. whether, and with what difficulties, we can execute the four basic freedoms required by free software -- remember that all are essential and once even a single of the freedoms is lost, the whole software becomes completely [proprietary](proprietary.md) and non-free.
One possible measure of practical freedom is **freedom distance**. For any piece of software that comes with a free license (i.e. one that gives the four essential freedoms legally) let us define freedom distance as the average distance to the nearest man that can PRACTICALLY execute ALL of the freedoms. In other words it says how far you have to go to reach the freedom you are promised. As any metric it's a bit of a simplification, but while physical distances may seem to not matter much in the age of Internet, the measure contains in it embedded the number of people who have control over the piece of software, it says how centralized the control is and how difficult it will be to for example spot an remove malicious features. Large freedom distance means the freedom is far away, that you are relying on someone in another country to fix your software which of course is dangerous, even the Internet may get split, it is important for you to be able to execute your freedom locally (even if you're not doing it now, it is important that you COULD). It may also happen that the foreign maintainer of your software suddenly turns evil -- e.g. in pursuit of profit -- and then having someone close who can take over fixing and maintaining that software is key for freedom. From this point of view a freedom distance shorter than one's body is ideal -- it would mean that any single man has complete control over his own tool.
Let's show this on two extreme examples:
- A simple program will have very small freedom distance. For example the [suckless](suckless.md) implementation of the [cat](cat.md) program (from the [sbase](sbase.md) package) is written in C and currently has about 50 lines of code. How far on average do you have to go to find someone that will be able to use the program AND understand every part of the source code AND share the program AND make any kind of meaningful modification to it? Using and sharing will be pretty easy for everyone, but remember, we are looking for the closest man that can execute ALL of the freedoms, so we are looking for someone who can compile and modify very basic C programs. As the program is extremely simple, anyone who ever learned complete basics of programming will be able to do this, even if he's not nearly expert at programming -- this particular program doesn't even use [object oriented programming](oop.md), design patterns and similar "advanced" things that would further reduce the number of people who understand it. If you are reading this wiki, you can almost definitely do it but if you can't, it's extremely likely you will find someone like that in your street, and if not, then definitely at least a math teacher at nearest elementary school will. If we average this for all people on Earth, we may get a freedom distance shorter than size of a small village.
- A very complex program will have big freedom distance. Here let's take a look at the mentioned [Android](android.md) operating system. Compiling Android is very hard, it even requires quite powerful hardware, it's not very likely you'll find someone who can easily do it very near, however to make meaningful modifications to the system will be yet much, much more difficult. Imagine you for example want to change process scheduling on the system, add new filesystem support, remove all networking and telemetry, port it to run in web browser or you want to replace the GUI system with a completely different one etc. Can you do these things easily? Remember, as a reader of this wiki you are technically skilled, and even so you most likely can't do it -- even if you're an excellent programmer and dedicate all energy to it, you will likely need a few weeks of full time work to add a simple feature to the OS, and you are still a negligible exception among all the normies around, so how far away is someone who has complete control over Android? These people are probably just sitting in Google headquarters. So Android's freedom distance will be quite close to average distance to Google headquarters over all people on Earth, which will be a distance of many countries.
## History
Free software was invented by [Richard Stallman](rms.md) in the 1980s. His free software movement inspired later movements such as the [free culture](free_culture.md) movement and the evil [open-source](open_source.md) movement.
@ -58,3 +69,4 @@ After some years dealing with software freedom (in serious ways, making money do
- [free culture](free_culture.md)
- [creative commons](creative_commons.md)
- [copyfree](copyfree.md)
- [freedom distance](freedom_distance.md)