
tamago v1.27.1
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 bare metal
tamago | https://github.com/usbarmory/tamago
Copyright (c) The TamaGo Authors. All Rights Reserved.
Introduzione
TamaGo è un framework che consente la compilazione e l'esecuzione di applicazioni Go non vincolate su processori bare metal.
I progetti nascono dal desiderio di ridurre la superficie di attacco del firmware dei sistemi embedded eliminando qualsiasi dipendenza a runtime da codice C e sistemi operativi.
Il framework TamaGo è composto dai seguenti componenti:
-
Una distribuzione Go modificata che estende il supporto
GOOSal targettamago, consentendo l'esecuzione bare metal attraverso un overlay runtime/goos impostato daGOOSPKG. -
Pacchetti Go per il supporto a processori/SoC.
-
Pacchetti Go per il supporto alle board.
Le modifiche sono minime rispetto al compilatore Go originale, al runtime e all'applicazione target (è richiesto un solo import), con una netta separazione dalle altre architetture.
Una forte enfasi è posta sul riutilizzo del codice delle architetture esistenti già incluse nel runtime standard di Go, vedi Internals.
Le modifiche mantengono il supporto completo alla libreria standard.
Tali aspetti sono motivati dal desiderio di fornire un framework che consenta lo sviluppo sicuro di firmware Go su sistemi embedded.
Release attuali
I seguenti link sono le ultime release per la
distribuzione Go modificata TamaGo,
che aggiunge il supporto GOOS=tamago alla corrispondente versione di Go, e
la libreria TamaGo:
Documentazione
La documentazione principale è disponibile sulla wiki del progetto.
La documentazione dell'API dei pacchetti è disponibile su pkg.go.dev.
Target AMD64 supportati
La seguente tabella 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 seguente tabella riassume i SoC e le board ARM attualmente supportati
(GOOS=tamago GOARCH=arm).