This is a release of the go-boot unikernel which implements a UEFI Shell and OS loader for AMD64 platforms, implemented as a bare metal Go unikernel using the TamaGo framework.
The unikernel can be executed as:
- EFI application by an existing loader (e.g. UEFI shell, systemd-boot)
- EFI boot entry
- QEMU plain or confidential KVM
- Google Compute Engine plain or confidential KVM
Documentation can be found in the README.
Major bugfixes:
- cmd:
linux,lcommand now usesinit_sizefor more accurate memory reservation (245e4c0) - uefi/x64: restrict runtime heap allocation within
goos.RamSize(540002b) - uefi:
callServiceinternal function now handles correctly SP alignment for odd argument count (#17)
Major improvements:
- bumped minimum Go version to 1.27.0, following tamago-go1.27.0
- uefi:
GUIDtype is now implemented with Go 1.27uuidpackage (a94c66c) - uefi:
(*FS).FilePathnow performs normalization and node validation per UEFI specs (#18) - uefi:
ErrEFIStatusnew error type (#19) - uefi:
ErrEFINotFoundnew error type (6ec8723) - uefi:
(*BootServices).LoadImageFromnew function (#22) - uefi:
(*BootServices).LocateHandleBuffernew function (#23) - uefi:
(*BootServices).FreePoolnew function (#23)
Added support for EFI_STORAGE_SECURITY_COMMAND_PROTOCOL:
- uefi:
(*BootServices).GetStorageSecuritynew function (#24) - uefi:
(*BootServices).GetStorageSecurityByHandlenew function (#24) - uefi:
(*BootServices).LocateStorageSecurityHandlesnew function (#24)
Added support for EFI_NVM_EXPRESS_PASS_THRU_PROTOCOL:
- uefi:
(*BootServices).GetNVMePassThruByHandlenew function (#25) - uefi:
(*BootServices).LocateNVMePassThruHandlesnew function (#25)
Full Changelog: v1.8.1...v1.9