
tamago v1.26.6
Framework per compilare ed eseguire applicazioni Go su processori bare metal, che consente lo sviluppo di firmware sicuro con una superficie di attacco ridotta grazie alla rimozione delle dipendenze da OS e C.
TamaGo - Go su metallo nudo
tamago | https://github.com/usbarmory/tamago
Copyright (c) Gli autori di TamaGo. Tutti i diritti riservati.
Introduzione
TamaGo è un framework che consente la compilazione e l'esecuzione di applicazioni Go libere su processori bare metal (AMD64, ARM, ARM64, RISCV64).
Il progetto nasce dal desiderio di ridurre la superficie di attacco del firmware dei sistemi embedded rimuovendo qualsiasi dipendenza runtime dal codice C e dai sistemi operativi.
Il framework TamaGo consiste nei seguenti componenti:
-
Una distribuzione Go modificata che estende il supporto di
GOOSal targettamago, consentendo l'esecuzione bare metal attraverso un overlay runtime/goos impostato daGOOSPKG. -
Pacchetti Go per il supporto di processori/SoC.
-
Pacchetti Go per il supporto di schede.
Le modifiche sono minime rispetto al compilatore Go originale, al runtime e all'applicazione target (è richiesta una import), con una netta separazione dalle altre architetture.
Viene posta una forte enfasi sul riutilizzo del codice dalle architetture esistenti già incluse nel runtime Go standard, vedi Interni.
Le modifiche mantengono il supporto completo della libreria standard.
Tali aspetti sono motivati dal desiderio di fornire un framework che consenta lo sviluppo sicuro di firmware Go su sistemi embedded.
Versioni correnti
I seguenti link sono le ultime versioni per la
distribuzione Go modificata di TamaGo,
che aggiunge il supporto GOOS=tamago alla corrispondente versione di Go, e la
libreria TamaGo:
Documentazione
La documentazione principale si trova sul wiki del progetto.
La documentazione dell'API del pacchetto si trova su pkg.go.dev.
Target AMD64 supportati
La tabella seguente riassume i target x86-64 attualmente supportati
(GOOS=tamago GOARCH=amd64).
| CPU | Piattaforma | Pacchetto CPU | Pacchetto piattaforma |
|---|---|---|---|
| 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 |
Target ARM supportati
La tabella seguente riassume i SoC e le schede ARM attualmente supportati
(GOOS=tamago GOARCH=arm).