返回更新列表
新发布Sep 4, 2026

tamago v1.27.1

用于在裸机处理器上编译和执行Go应用程序的框架,通过移除操作系统和C依赖来缩小攻击面,实现安全的固件开发。

分享

TamaGo - 裸机 Go

tamago | https://github.com/usbarmory/tamago

Copyright (c) The TamaGo Authors. All Rights Reserved.

TamaGo gopher

简介

TamaGo 是一个框架,支持在裸机处理器上编译和执行无额外依赖的 Go 应用程序。

这些项目源于通过消除对 C 代码和操作系统的任何运行时依赖来减少嵌入式系统固件攻击面的愿望。

TamaGo 框架由以下组件组成:

  • 一个修改过的 Go 发行版, 它将 GOOS 支持扩展到 tamago 目标,允许通过由 GOOSPKG 设置的 runtime/goos 覆盖层进行裸机执行。

  • 用于处理器/SoC 支持的 Go 包。

  • 用于开发板支持的 Go 包。

相对于原始 Go 编译器、运行时和目标应用程序(需要一次导入),这些修改是最小的,并且与其他架构清晰分离。

重点强调从标准 Go 运行时中已包含的现有架构中复用代码,参见 内部机制。

这些修改保持了完整的标准库支持。

这些方面的动机是希望提供一个框架,允许在嵌入式系统上进行安全的 Go 固件开发。

当前版本

以下链接是 TamaGo 修改版 Go 发行版 (为相应 Go 版本添加 GOOS=tamago 支持)和 TamaGo 库的最新版本:

GitHub release Build Status
GitHub release

文档

Go Reference

主要文档可在 项目 wiki上找到。

包 API 文档可在 pkg.go.dev上找到。

支持的 AMD64 目标

下表总结了当前支持的 x86-64 目标 (GOOS=tamago GOARCH=amd64)。

CPUPlatformCPU packagePlatform package
AMD/Intel 64-bitCloud Hypervisoramd64cloud_hypervisor/vm
AMD/Intel 64-bitFirecracker microvmamd64firecracker/microvm
AMD/Intel 64-bitQEMU microvmamd64qemu/microvm
AMD/Intel 64-bitUEFIamd64uefi/x64
AMD/Intel 64-bitGoogle Compute Engineamd64google/gcp, uefi/x64

支持的 ARM 目标

下表总结了当前支持的 ARM SoC 和开发板 (GOOS=tamago GOARCH=arm)。

SoCBoardSoC packageBoard package
NXP i.MX6ULZ/i.MX6ULUSB armory Mk IIimx6ulusbarmory/mk2
NXP i.MX6ULL/i.MX6ULUSB armory Mk II LANimx6ulusbarmory/mk2
NXP i.MX6ULL/i.MX6ULZMCIMX6ULL-EVKimx6ulmx6ullevk
Broadcom BCM2835Raspberry Pi Zerobcm2835pi/pizero
Broadcom BCM2835Raspberry Pi 1 Model A+bcm2835pi/pi1
Broadcom BCM2835Raspberry Pi 1 Model B+bcm2835pi/pi1
Broadcom BCM2836Raspberry Pi 2 Model Bbcm2835pi/pi2
Nuvoton NUC980NuMaker-IIoT-NUC980G2nuc980nuc980iiot

支持的 ARM64 目标

下表总结了当前支持的 ARM64 SoC 和开发板 (GOOS=tamago GOARCH=arm64)。

分类