LinuxBoot: Firmware Tools & a BusyBox in Go
summary
LinuxBoot replaces proprietary UEFI modules by loading a Linux kernel as an EFI PE and running a tiny initramfs built from pure Go tools via u-root. The project implements a BusyBox in Go that merges 30+ commands into one binary (examples: 2.4 MB for two commands, 17 MB uncompressed -> ~4.7 MB compressed) using source-to-source rewriting and on‑demand compilation, avoids cgo, and builds boot loaders in Go using kexec trampoline assembly; reported boot times drop from minutes to ~20 seconds.
AI-written summary · about
chapters (11)
- 0:00Start
- 0:26Overview
- 1:39UEFI Boot
- 2:27UEFI Ecosystem: TL-DR
- 7:48u-root, The Universal Root
- 8:52Embedded Go
- 12:17What's happening?
- 17:38Alternative: Dynamic Mode
- 20:58Bootloaders in Go
- 21:43What is a loader?
- 22:57Bootloaders on Linux
related talks
35mMake Your System Firmware Faster, More Flexible and Reliable with LinuxBoot
39mRunning Linux on Tiny Peripherals
43mU-Boot - Bootloader for IoT Platform?
40mRunning Linux on Tiny Peripherals
49mEmbedded Linux BOF
21mGetting started with LinuxBoot Firmware on AArch64 Server
33mU-Boot's New Standard Boot and What's Next
43mU-Boot - Bootloader for IoT Platform?
