From e7591f872d911bcbb610da076c236f2304ab6ad0 Mon Sep 17 00:00:00 2001 From: Philip Molloy Date: Fri, 25 Oct 2024 13:14:35 +0200 Subject: [PATCH] intro: Clarify what LinuxBoot is Signed-off-by: Philip Molloy --- src/intro.md | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/intro.md b/src/intro.md index 8845d8d..f072cde 100644 --- a/src/intro.md +++ b/src/intro.md @@ -10,12 +10,23 @@ 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. +Generally, 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). + +More recently other projects have popped up based on the same idea: + +- [k-boot](https://github.com/BayLibre/k-boot) developed by BayLibre +- [nmbl](https://github.com/rhboot/nmbl-poc) developed by RedHat + +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