Group: Hardware/Software/Operating Systems
Introduction
GNU/Linux is a well known operating system and distributions that respect users freedom do exist.
It can be used for a wide variety of use cases, including with distributions that respect users freedom and there are many articles in this wiki that can be used to understand what use case which distribution covers.
For instance we have an article about hardware support, another about server use cases, and both take into account widely different skills or situation (for instance both mention solutions that don't require to know programming, the command line, etc).
While the same distribution often supports very different type of computers (personal computers, huge servers), etc, some hardware like some WiFi access points have very few amount of RAM (64 MiB) and storage (8MiB), and work fine under GNU/Linux but they do require specific distributions, and here too we also have distributions that respects users freedom.
And in many of the cases above, there are computers that can boot with 100% free software as well (including laptops, powerful servers, WiFi access points, etc).
So while things may not be perfect (programs have bugs, many things depend on how many people contribute, etc), the status is pretty good.
However it exists computers whose specifications are below the minimal hardware requirements for GNU/Linux. For instance the Linux kernel usually cannot work with less than 16 MiB of RAM (or something equivalent to RAM).
In some situations Linux may be able to work with 4MiB of RAM on very specific hardware, but if we take computers like the Olimex STM32-H103, this computer has 20 KiB of RAM and 128 KiB of storage. So it is no where near the hardware requirements to run GNU/Linux. However it can run the gnuk free software firmware (which is in the free software directory), and if we look closer, gnuk runs on a tiny operating system that is called chopstx that is also free software.
So for situations like that it might be interesting to know other operating systems that have less hardware requirements.
These small operating systems are usually meant to run only one or very few applications. So their use case is more to enable developers to more easily produce a firmware by writing an application that can run on a wide variety of tiny computers rather than having to write everything from scratch.
In addition the license situation is a bit different in the case of small operating systems as they typically have only one set of compatible licenses and many of them use weak free software licenses, so it is something to keep in mind when choosing one as contributing to the operating system might be required to add missing hardware support, and not everybody wants to do substantial contributions to free software projects that use weak licenses or have to maintain a fork.
What constitute a derivative work can also change here as some of these small operating systems look more like libraries than regular operating systems, so in most cases, extra care is needed to make sure that licenses do match when porting applications and/or reusing code. These operating systems also usually have only one distribution, so if that distribution contains nonfree software that might complicate things.
Apart from small operating systems with less hardware requirements, there are also other general purpose operating systems with different APIs and/or use cases if there are distributions that respect users freedom for them.
General purpose operating systems
| Operating system | Distributions that respect users freedoms | Minimal RAM requirements |
|---|---|---|
| Android |
|
? |
| GNU/BSD |
|
? |
| GNU/Hurd |
|
? |
| GNU/Linux | Several, see free-distros on gnu.org |
|
Small operating systems
| Operating system | License | 100% free? | Supported computers | Free applications |
|---|---|---|---|---|
| Chopstx | GPLv3 or later |
|
According to its README, it supports the following processors / microcotrollers / system on a chip:
It can also run under GNU/Linux. |
|
| NuttX | Apache 2.0 | ? |
|
|
| RIOT | LGPL v2.1 | ? | ||
| Zephyr | Apache 2.0 | Not all the hardware support code is free software and it may come from vendor repositories. There is a Guix channel (third party repository) for it that might help to understand the license situation better but then this Guix channel also has unclear licensing. A pull request is underway to clarify the Guix channel license. Once done the way to go is probably to upstream it in Guix proper and to do a licensing review along the way. This could get us a 100% free zephyr distribution though Guix. |
|