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 project description was re-written from scratch by GNUtoo and this
commits import it unmodified from Savannah[1]. It is also released by
GNUtoo under the following license:
    Copyright (c)  2023  Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>.
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".

[1]https://savannah.gnu.org/projects/gnuboot

Reported-by: Patrick Georgi <oxygene>
Neox: import, commit message apart from the copyright information.
GNUtoo: copyright information, whitespace fixes.
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 36f0250aac
Signed by: neox
GPG Key ID: 2974E1D5F25DFCC8
1 changed files with 54 additions and 41 deletions

View File

@ -1,57 +1,70 @@
GNU Boot
========
GNU Boot is a GNU project and a
[freedom-respecting](https://www.gnu.org/philosophy/free-sw.html)
*boot firmware* that initializes the hardware (e.g.
memory controller, CPU, peripherals) in your computer so that software can run.
GNU Boot then starts a bootloader to load your operating system. It replaces the
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.
This software is part of the GNU Project.
GNU Boot uses [coreboot](https://www.coreboot.org/) for hardware initialization.
However, *coreboot* is notoriously difficult to compile and install for most
non-technical users. There are many complicated configuration steps required,
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.
To load an operating system, computers need to be able to access storage
devices (like an HDD or SSD) where the operating system is installed.
They need RAM to work to load part of the operating system in RAM. Users
also expect the display and keyboard to work before the operating system
is loaded.
GNU Boot solves this problem :
GNU Boot is a *coreboot distribution* much like Debian is a *GNU+Linux
distribution*. GNU Boot provides an *automated build system* that downloads,
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).
But on most computers, software is needed to initialize the RAM, the storage
devices, the graphic card, to load the operating system, and give some
information to the operating system on what hardware it is running on.
Because of that computers usually require boot software that is bundled in the
computer. It is usually found on a very small storage chip that is inside the
mainboard. That software is specific to a given computer.
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!
--------------------
GNU Boot is not a fork of coreboot. Every so often, the project
re-bases on the latest version of coreboot, with the number of custom
patches in use minimized. Tested, *stable* (static) releases are then provided
in GNU Boot, based on specific coreboot revisions.
GNU Boot is not a fork of coreboot, but more a boot firmware distribution
including a modified version of coreboot, and other software like SeaBIOS,
GRUB or u-boot.
Coreboot is not entirely free software. It has binary blobs in it for some
platforms. What GNU Boot does is download several revisions of coreboot, for
different boards, and *de-blob* those coreboot revisions. This is done using
the *linux-libre* deblob scripts, to find binary blobs in coreboot.
Coreboot is not entirely free software as it includes binary blobs in it for
some platforms. What GNU Boot does is download several revisions of coreboot,
for different boards, and *de-blob* those coreboot revisions. This is done
using the *linux-libre* deblob scripts, to find binary blobs in coreboot.
All new coreboot development should be done in coreboot (upstream), not
GNU Boot ! GNU Boot is about deblobbing and packaging coreboot in a
user-friendly way, where most work is already done for the user.
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.
GNU Boot. For example, if you wanted to add a new board to GNU Boot, you
should add it to coreboot first. GNU Boot would then receive your code at
a later date, when it updates itself.
The deblobbed coreboot tree used in GNU Boot is referred to as
*coreboot-libre*, to distinguish it as a component of *GNU Boot*.