Zurück zu den Updates
New releaseJul 14, 2026

tamago v1.26.5

Framework zur Kompilierung und Ausführung von Go-Anwendungen auf Bare-Metal-Prozessoren, das eine sichere Firmware-Entwicklung mit reduzierter Angriffsfläche durch Entfernung von Betriebssystem- und C-Abhängigkeiten ermöglicht.

Teilen

TamaGo - Bare Metal Go

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

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

TamaGo gopher

Einleitung

TamaGo ist ein Framework, das die Kompilierung und Ausführung von uneingeschränkten Go-Anwendungen auf Bare-Metal-Prozessoren (AMD64, ARM, ARM64, RISCV64) ermöglicht.

Das Projekt entstand aus dem Wunsch, die Angriffsfläche von eingebetteten System-Firmware zu reduzieren, indem jegliche Laufzeitabhängigkeit von C-Code und Betriebssystemen entfernt wird.

Das TamaGo-Framework besteht aus den folgenden Komponenten:

  • Eine modifizierte Go-Distribution, die GOOS um das Ziel tamago erweitert und Bare-Metal-Ausführung durch einen von GOOSPKG gesetzten runtime/goos-Overlay ermöglicht.

  • Go-Pakete für Prozessor-/SoC-Unterstützung.

  • Go-Pakete für Board-Unterstützung.

Die Modifikationen am ursprünglichen Go-Compiler, der Laufzeit und der Zielanwendung (ein erforderlicher Import) sind minimal und sauber von anderen Architekturen getrennt.

Es wird großer Wert auf die Wiederverwendung von Code aus bestehenden Architekturen gelegt, die bereits in der standardmäßigen Go-Laufzeit enthalten sind – siehe Internals.

Die Modifikationen erhalten die vollständige Unterstützung der Standardbibliothek.

Diese Aspekte sind motiviert durch den Wunsch, ein Framework bereitzustellen, das eine sichere Go-Firmware-Entwicklung auf eingebetteten Systemen ermöglicht.

Aktuelle Veröffentlichungen

Die folgenden Links sind die neuesten Veröffentlichungen der modifizierten Go-Distribution von TamaGo, die GOOS=tamago zur entsprechenden Go-Version hinzufügt, sowie der TamaGo-Bibliothek:

GitHub release Build Status
GitHub release

Dokumentation

Go Reference

Die Hauptdokumentation befindet sich im Projekt-Wiki.

Die API-Dokumentation der Pakete findet sich unter pkg.go.dev.

Unterstützte AMD64-Ziele

Die folgende Tabelle fasst derzeit unterstützte x86-64-Ziele zusammen (GOOS=tamago GOARCH=amd64).

CPUPlattformCPU-PaketPlattform-Paket
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

Unterstützte ARM-Ziele

Die folgende Tabelle fasst derzeit unterstützte ARM-SoCs und -Boards zusammen (GOOS=tamago GOARCH=arm).

Kategorien