Skip to content

Commit

Permalink
intro: Clarify what LinuxBoot is
Browse files Browse the repository at this point in the history
The idea of using the Linux kernel for a boot firmware implementation is
much larger than the build tool and configuration named linuxboot.
Therefore focus on the importance of the idea over the implementation.

Also clarify the implementation, which is confusing to newcomers.

Signed-off-by: Philip Molloy <philip@philipmolloy.com>
  • Loading branch information
pamolloy committed Oct 30, 2024
1 parent bf7e911 commit 10d9f3b
Showing 1 changed file with 24 additions and 5 deletions.
29 changes: 24 additions & 5 deletions src/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,31 @@ This is the official “LinuxBoot Book” for the LinuxBoot project. The book:

## What is LinuxBoot?

LinuxBoot is a project that aims to replace specific [firmware](./glossary.md)
functionality with a Linux kernel and runtime. Over the years this project has
grown to include various initiatives with the overarching goal of moving from
obscure, complex firmware to simpler, open source firmware.
LinuxBoot is based on the idea of replacing proprietary or corporate-driven
late-stage boot [firmware](./glossary.md) with the Linux kernel and a
community-based userland. That idea has grown into a project that over the
years includes various initiatives with the overarching goal of moving from
obscure and complex firmware to simpler and open source firmware.

The goal of LinuxBoot is to reduce the role of firmware to a small,
The project consists of the [linuxboot](https://github.com/linuxboot/linuxboot)
build system that builds a boot payload consisting of a Linux kernel and an
[initramfs](https://de.wikipedia.org/wiki/Initramfs) that contains a Golang
userland built using [u-root](https://github.com/u-root/u-root).

There are several other active projects based on the same idea:

- [k-boot](https://github.com/BayLibre/k-boot) developed by BayLibre in 2023
- [nmbl](https://github.com/rhboot/nmbl-poc) developed by RedHat in 2024
- [petitboot](https://github.com/open-power/petitboot) under the OpenPOWER
project originally targeting the PS3

And there is a long history of these implementations:

- MILO on Alpha started before 2000 (see [What is
MILO?](https://tldp.org/HOWTO/MILO-HOWTO/what-section.html))
- kboot developed by Werner Almesberger in 2005 and no longer maintained

These projects all attempt to reduce the role of firmware to a small,
fixed-function core whose only purpose is to get a flash-based Linux kernel
started. This “bare essentials” firmware prepares the hardware and starts a
Linux kernel and a userland environment will run on the machine. Go is the
Expand Down

0 comments on commit 10d9f3b

Please sign in to comment.