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 <[email protected]>
  • Loading branch information
pamolloy committed Nov 3, 2024
1 parent bf7e911 commit 7175fc0
Showing 1 changed file with 28 additions and 6 deletions.
34 changes: 28 additions & 6 deletions src/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,34 @@ 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.

The goal of LinuxBoot is to reduce the role of firmware to a small,
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 grew 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 LinuxBoot project provides a reference implementation, the
[linuxboot](https://github.com/linuxboot/linuxboot) build system, that outputs
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:

- [petitboot](https://github.com/open-power/petitboot) under the OpenPOWER
project originally targeting the PS3
- [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
- [Giving bootloaders the boot with nmbl](https://lwn.net/Articles/979789)

And there is a long history of similar implementations including projects that
are no longer maintained:

- 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

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 7175fc0

Please sign in to comment.