
tamago v1.27.1
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. Alle Rechte vorbehalten.
Einführung
TamaGo ist ein Framework, das die Kompilierung und Ausführung uneingeschränkter Go-Anwendungen auf Bare-Metal-Prozessoren ermöglicht.
Die Projekte entstehen aus dem Wunsch, die Angriffsfläche von Firmware eingebetteter Systeme 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 die
GOOS-Unterstützung auf dastamago-Ziel erweitert und so die Bare-Metal-Ausführung durch ein runtime/goos-Overlay ermöglicht, das durchGOOSPKGfestgelegt wird. -
Go-Pakete für Prozessor-/SoC-Unterstützung.
-
Go-Pakete für Board-Unterstützung.
Die Modifikationen sind minimal gegenüber dem ursprünglichen Go-Compiler, der Laufzeitumgebung und der Zielanwendung (ein Import erforderlich), mit einer sauberen Trennung von anderen Architekturen.
Großer Wert wird auf die Wiederverwendung von Code aus bestehenden Architekturen gelegt, die bereits in der Standard-Go-Laufzeitumgebung enthalten sind, siehe Interna.
Die Modifikationen erhalten die vollständige Unterstützung der Standardbibliothek.
Solche Aspekte sind motiviert durch den Wunsch, ein Framework bereitzustellen, das eine sichere Go-Firmware-Entwicklung auf eingebetteten Systemen ermöglicht.
Aktuelle Releases
Die folgenden Links sind die neuesten Releases für die
TamaGo-modifizierte Go-Distribution,
die GOOS=tamago-Unterstützung für die entsprechende Go-Version hinzufügt, und
die TamaGo-Bibliothek:
Dokumentation
Die Hauptdokumentation befindet sich im Projekt-Wiki.
Die Paket-API-Dokumentation befindet sich auf pkg.go.dev.
Unterstützte AMD64-Ziele
Die folgende Tabelle fasst die derzeit unterstützten 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 die derzeit unterstützten ARM-SoCs und -Boards zusammen
(GOOS=tamago GOARCH=arm).