Freedom251 › Boot Manager Software
go-boot

What go-boot is
go-boot is a bare-metal Go unikernel that provides a UEFI shell and boot manager for AMD64 platforms. It can start EFI application images, Linux kernels configured through UAPI boot loader entries, and the Windows UEFI boot manager. The project documents running as an EFI application or boot entry, under QEMU, and on Google Compute Engine, including Confidential VM configurations. Its shell can list files, show UEFI information, inspect PCI devices and memory maps, and boot Linux or Windows. Builds may enable UEFI networking using either the gVisor or lneto stack, which adds `net` and `dns` commands. The project documents a QEMU target for AMD SEV-SNP. Its source files use the BSD-style license included in the repository, and the README names Andrea Barisani as an author. Building requires an `IMAGE_BASE` value that fits available memory in the target UEFI environment; the Makefile downloads and compiles the TamaGo compiler as a Go tool. The project targets UEFI rather than BIOS. Its optional network debug mode exposes an unauthenticated SSH console with access to the UEFI shell.
Who it suits
go-boot suits developers working with AMD64 UEFI boot flows, QEMU, or the documented Google Compute Engine environments. It is not intended for BIOS boot environments.
What it does well
- Starts EFI applications and Linux or Windows boot targets
- Includes a UEFI shell for system inspection
- Can run under QEMU and Google Compute Engine
- Optional builds provide UEFI networking
What to know first
- Targets AMD64 only
- Supports UEFI, not BIOS
- Build requires a suitable IMAGE_BASE value
- Network debug mode exposes an unauthenticated SSH console
Limits
go-boot is limited to AMD64 and UEFI environments, with no BIOS support. Building requires IMAGE_BASE to fit available target memory; optional network debugging opens an unauthenticated SSH console.
Getting started
- Open the go-boot project website on GitHub
- Use the Makefile to download and compile the TamaGo compiler tool
- Set IMAGE_BASE to an available memory range in the target UEFI environment
- Build go-boot.efi
- Run it as an EFI application or boot entry, under QEMU, or on Google Compute Engine
Verdict
go-boot provides a UEFI shell and loader with documented QEMU and cloud VM use. Its AMD64 and UEFI scope, build memory requirement, and unauthenticated debug console are important constraints to review.
Questions
Is go-boot free?
Yes. It is free and open source, with source files distributed under the repository's BSD-style license.
Which systems can it boot?
It can launch EFI application images, Linux kernels using UAPI boot loader entries, and the Windows UEFI boot manager.
Where can it run?
It can run as an EFI application or boot entry, under QEMU, and on Google Compute Engine, including Confidential VM configurations.
Does it support BIOS?
No. The project targets UEFI and AMD64 platforms.
What networking is available?
Builds can enable UEFI networking with the gVisor or lneto stack, exposing net and dns shell commands.
What security warning applies to debug mode?
The optional network debug mode starts an unauthenticated SSH console that provides access to the UEFI shell.
Facts from go-boot's own pages
- Boot environments
- The project documents running as an EFI application or boot entry, under QEMU, and on Google Compute Engine, including Confidential VM. · github.com, 11 Oct 2026
- Boot targets
- It can launch EFI application images, Linux kernels using UAPI boot loader entries, and the Windows UEFI boot manager. · github.com, 4 Oct 2026
- Build requirement
- Building go-boot.efi requires setting IMAGE_BASE to a memory range available in the target UEFI environment. · github.com, 11 Oct 2026
- Build requirements
- The Makefile automatically downloads and compiles the TamaGo compiler as a Go tool. · github.com, 4 Oct 2026
- Confidential computing
- The project documents a QEMU target for AMD SEV-SNP and deployment on Google Compute Engine Confidential VMs. · github.com, 4 Oct 2026
- Execution
- The project can run as an EFI application or boot entry, under QEMU, or on Google Compute Engine, including confidential VM configurations. · github.com, 4 Oct 2026
- Hardware limits
- The project targets AMD64, and its build requires an IMAGE_BASE value that fits an available memory range in the target UEFI environment. · github.com, 4 Oct 2026
- Hardware support
- The project wiki lists tested laptops, desktops, and QEMU hardware, and says IMAGE_BASE may need adjustment for other UEFI environments. · github.com, 11 Oct 2026
- Intended context
- The project describes itself as a UEFI boot manager and provides examples for system booting and cloud VM deployments. · github.com, 11 Oct 2026
- License
- The source files are distributed under a BSD-style license. · github.com, 11 Oct 2026
- Maintainer
- The README lists Andrea Barisani as an author. · github.com, 4 Oct 2026
- Networking
- Builds configured with NET=gvisor or NET=lneto can enable UEFI networking, including net and dns commands. · github.com, 11 Oct 2026
- OS loading
- It can launch EFI application images, Linux kernels configured through UAPI boot loader entries, and the Windows UEFI boot manager. · github.com, 11 Oct 2026
- Purpose
- go-boot is a bare-metal Go UEFI boot manager implemented as a TamaGo unikernel for AMD64. · github.com, 11 Oct 2026
- Roadmap
- Support for boot-transparency is described as planned for future releases. · github.com, 11 Oct 2026
- Security
- The README documents a qemu-snp target as an example of execution with AMD SEV-SNP on compatible hardware. · github.com, 11 Oct 2026
- Security caveat
- The README says the optional network debug mode starts an unauthenticated SSH console that exposes the UEFI shell. · github.com, 4 Oct 2026
- Security limitation
- The README says the optional network debug mode exposes an unauthenticated SSH console with access to the UEFI shell. · github.com, 11 Oct 2026
- Shell tools
- Its shell includes commands for listing files, reading UEFI information, inspecting PCI devices and memory maps, and booting Linux or Windows. · github.com, 4 Oct 2026
- UEFI shell
- By default, it presents a UEFI shell with commands for inspecting system information, files, devices, and runtime state. · github.com, 11 Oct 2026
Where go-boot stands on Freedom251
- Boot Manager Software#28 of 29