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:
parent
adc578ae49
commit
36f0250aac
95
README.md
95
README.md
|
@ -1,57 +1,70 @@
|
||||||
GNU Boot
|
GNU Boot
|
||||||
========
|
========
|
||||||
|
|
||||||
GNU Boot is a GNU project and a
|
This software is part of the GNU Project.
|
||||||
[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.
|
|
||||||
|
|
||||||
GNU Boot uses [coreboot](https://www.coreboot.org/) for hardware initialization.
|
To load an operating system, computers need to be able to access storage
|
||||||
However, *coreboot* is notoriously difficult to compile and install for most
|
devices (like an HDD or SSD) where the operating system is installed.
|
||||||
non-technical users. There are many complicated configuration steps required,
|
They need RAM to work to load part of the operating system in RAM. Users
|
||||||
and coreboot by itself is useless; coreboot only handles basic hardware
|
also expect the display and keyboard to work before the operating system
|
||||||
initialization, and then jumps to a separate *payload* program. The payload
|
is loaded.
|
||||||
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 :
|
But on most computers, software is needed to initialize the RAM, the storage
|
||||||
GNU Boot is a *coreboot distribution* much like Debian is a *GNU+Linux
|
devices, the graphic card, to load the operating system, and give some
|
||||||
distribution*. GNU Boot provides an *automated build system* that downloads,
|
information to the operating system on what hardware it is running on.
|
||||||
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).
|
|
||||||
|
|
||||||
|
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!
|
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*.
|
||||||
|
|
Loading…
Reference in New Issue