
tamago v1.26.6
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.
TamaGo - Bare Metal Go
tamago | https://github.com/usbarmory/tamago
Copyright (c) The TamaGo Authors. All Rights Reserved.
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
GOOSum das Zieltamagoerweitert und Bare-Metal-Ausführung durch einen vonGOOSPKGgesetzten 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:
Dokumentation
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).
| CPU | Plattform | CPU-Paket | Plattform-Paket |
|---|---|---|---|
| AMD/Intel 64-bit | Cloud Hypervisor | amd64 | cloud_hypervisor/vm |
| AMD/Intel 64-bit | Firecracker microvm | amd64 | firecracker/microvm |
| AMD/Intel 64-bit | QEMU microvm | amd64 | qemu/microvm |
| AMD/Intel 64-bit | UEFI | amd64 | uefi/x64 |
| AMD/Intel 64-bit | Google Compute Engine | amd64 | google/gcp, uefi/x64 |
Unterstützte ARM-Ziele
Die folgende Tabelle fasst derzeit unterstützte ARM-SoCs und -Boards zusammen
(GOOS=tamago GOARCH=arm).