1- ## LinuxBoot Components
1+ # LinuxBoot Components
22
33![ image] ( ./images/LinuxBoot-components.svg )
44
@@ -8,14 +8,12 @@ LinuxBoot consists of the following components:
882 . Linux kernel
993 . u-root -> initramfs
1010
11-
12- #### BIOS
11+ ## BIOS
1312
1413This does not have to be a specific BIOS; currently LinuxBoot supports UEFI
1514and [ coreboot] ( https://coreboot.org/ ) .
1615
17-
18- #### Linux kernel
16+ ## Linux kernel
1917
2018LinuxBoot is not intended to be a runtime production kernel; rather, it
2119is meant to replace specific UEFI functionality using Linux kernel capabilities
@@ -26,15 +24,13 @@ capabilities without bloating the size of the BIOS with unnecessary drivers.
2624These config files disable options that are not needed in the LinuxBoot
2725kernel and add some patches that are needed.
2826
29-
30- #### Initial RAM filesystem (initramfs)
27+ ## Initial RAM filesystem (initramfs)
3128
3229When Linux boots it needs a root file system that provides boot and startup
3330utilities. LinuxBoot uses [ u-root] ( ./glossary.md ) to create an
3431initramfs for this purpose.
3532
36-
37- #### What is an initramfs?
33+ ## What is an initramfs?
3834
3935The initramfs is a root file system that is embedded within the firmware
4036image itself. It is intended to be placed in a flash device along with the
@@ -46,19 +42,18 @@ the bzImage and initramfs into memory and starts the kernel. The kernel
4642checks for the presence of the initramfs and, if found, unpacks it, mounts
4743it as ` / ` and runs ` /init ` .
4844
49-
5045There are many types of initramfs, in this topic we focus on u-root.
5146u-root is a Go user-space (a set of programs and libraries written in Go that
5247are used to interact with the kernel). It contains a toolset of standard
5348Linux applications and commands.
5449
5550u-root can create an initramfs in two different modes:
5651
57- * source mode, which contains:
58- * Go toolchain binaries
59- * A simple shell
60- * Go source for tools to be compiled on the fly by the shell
61- * Busybox (bb) mode: This is one busybox-like binary comprising all the
52+ * source mode, which contains:
53+ * Go toolchain binaries
54+ * A simple shell
55+ * Go source for tools to be compiled on the fly by the shell
56+ * Busybox (bb) mode: This is one busybox-like binary comprising all the
6257 requested utilities.
6358
6459The initramfs provided by u-root implements the toolchain needed to securely
@@ -68,4 +63,3 @@ with different internal boot-related components, and kexec the next kernel.
6863u-root is an open source project hosted on GitHub. Within the u-root
6964repository, we have executable commands in ` cmds ` and the packages containing
7065libraries and implementations in ` pkg ` .
71-
0 commit comments