README.md: use less harsh language in the project description (bug #64661)

This commit addresses a problem in the wording of our project description
(in the Savannah description and in this README.md).

The text has been written by GNUtoo in its majority, I added some
modifications.

Reported-by: Patrick Georgi <oxygene>
Signed-off-by: Adrien 'neox' Bourmault <neox@gnu.org>
This commit is contained in:
Adrien Bourmault 2023-11-14 15:57:29 +01:00
parent adc578ae49
commit 5122becc61
Signed by: neox
GPG Key ID: 2974E1D5F25DFCC8
1 changed files with 52 additions and 41 deletions

View File

@ -1,57 +1,68 @@
GNU Boot GNU Boot
======== ========
GNU Boot is a GNU project and a To load an operating system, computers need to be able to access storage
[freedom-respecting](https://www.gnu.org/philosophy/free-sw.html) devices (like an HDD or SSD) where the operating system is installed.
*boot firmware* that initializes the hardware (e.g. They need RAM to work to load part of the operating system in RAM. Users
memory controller, CPU, peripherals) in your computer so that software can run. also expect the display and keyboard to work before the operating system
GNU Boot then starts a bootloader to load your operating system. It replaces the is loaded.
proprietary BIOS/UEFI firmware typically found on a computer. GNU Boot is
compatible with specific computer models that use the Intel/AMD x86
architecture. GNU Boot works well with GNU+Linux and BSD
operating systems.
GNU Boot uses [coreboot](https://www.coreboot.org/) for hardware initialization. But on most computers, software is needed to initialize the RAM, the storage
However, *coreboot* is notoriously difficult to compile and install for most devices, the graphic card, to load the operating system, and give some
non-technical users. There are many complicated configuration steps required, information to the operating system on what hardware it is running on.
and coreboot by itself is useless; coreboot only handles basic hardware
initialization, and then jumps to a separate *payload* program. The payload
program can be anything, for example a Linux kernel, bootloader (such as
GNU GRUB), UEFI implementation (such as Tianocore) or BIOS implementation
(such as SeaBIOS). While not quite as complicated as building a GNU+Linux
distribution from scratch, it may aswell be as far as most non-technical users
are concerned.
GNU Boot solves this problem : Because of that computers usually require boot software that is bundled in the
GNU Boot is a *coreboot distribution* much like Debian is a *GNU+Linux computer. It is usually found on a very small storage chip that is inside the
distribution*. GNU Boot provides an *automated build system* that downloads, mainboard. That software is specific to a given computer.
patches (where necessary) and compiles coreboot, GNU GRUB, various payloads and
all other software components needed to build a complete, working *ROM image*
that you can install to replace your current BIOS/UEFI firmware, much like a
GNU+Linux distribution (e.g. Debian) provides an ISO image that you can use to
replace your current operating system (e.g. Windows).
Unfortunately that software is usually nonfree and GNU boot aims to replace
that with 100% free software.
Like with other type of software, the fact that is nonfree has real impacts.
For instance this software often continues to run once the operating system
is loaded and as it loads the operating system it can also modify it.
So having a nonfree boot software make it impossible for users to really
trust their computers. Another common issue is that some BIOS/UEFI add
restrictions to prevent users from replacing the WiFi card for instance.
There are many more issues but listing them all here would make this
description too long.
To replace nonfree boot software, GNU boot reuses various software projects
(like Coreboot, U-boot, GRUB, SeaBIOS, etc), configure and build them to
produce an image that can be installed to replace the nonfree boot software
for specific computers.
Users can also do all that without GNU Boot but that tend to be complicated.
Having a free software project that does all that enable people to collaborate
on making sure that computers boot fine regardless of the upstream project
status, for instance by making binary releases and collaborating to test them.
In addition GNU boot also comes with extensive documentation to make it as easy
as possible to install GNU Boot and to empower users to modify the way their
computer boot.
Since not all the project it reuses are 100% free software it also removes all
the nonfree software found in them along the way and will also make the scripts
and/or data that does that reusable for distributions or users that want to
build their own free boot software without reusing the GNU Boot configuration
or build system.
Not a coreboot fork! Not a coreboot fork!
-------------------- --------------------
GNU Boot is not a fork of coreboot. Every so often, the project GNU Boot is not a fork of coreboot, but more a boot firmware distribution
re-bases on the latest version of coreboot, with the number of custom including a modified version of coreboot, and other software like SeaBIOS,
patches in use minimized. Tested, *stable* (static) releases are then provided GRUB or u-boot.
in GNU Boot, based on specific coreboot revisions.
Coreboot is not entirely free software. It has binary blobs in it for some Coreboot is not entirely free software as it includes binary blobs in it for
platforms. What GNU Boot does is download several revisions of coreboot, for some platforms. What GNU Boot does is download several revisions of coreboot,
different boards, and *de-blob* those coreboot revisions. This is done using for different boards, and *de-blob* those coreboot revisions. This is done
the *linux-libre* deblob scripts, to find binary blobs in coreboot. using the *linux-libre* deblob scripts, to find binary blobs in coreboot.
All new coreboot development should be done in coreboot (upstream), not All new coreboot development should be done in coreboot (upstream), not
GNU Boot ! GNU Boot is about deblobbing and packaging coreboot in a GNU Boot. For example, if you wanted to add a new board to GNU Boot, you
user-friendly way, where most work is already done for the user. should add it to coreboot first. GNU Boot would then receive your code at
a later date, when it updates itself.
For example, if you wanted to add a new board to GNU Boot, you should
add it to coreboot first. GNU Boot will automatically receive your code
at a later date, when it updates itself.
The deblobbed coreboot tree used in GNU Boot is referred to as The deblobbed coreboot tree used in GNU Boot is referred to as
*coreboot-libre*, to distinguish it as a component of *GNU Boot*. *coreboot-libre*, to distinguish it as a component of *GNU Boot*.