Torna agli aggiornamenti
New releaseSep 4, 2026

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.

Condividi

TamaGo - Go bare metal

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

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

TamaGo gopher

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 GOOS al target tamago, consentendo l'esecuzione bare metal attraverso un overlay runtime/goos impostato da GOOSPKG.

  • 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:

GitHub release Build Status
GitHub release

Documentazione

Go Reference

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).

CPUPiattaformaPacchetto CPUPacchetto piattaforma
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

Target ARM supportati

La seguente tabella riassume i SoC e le board ARM attualmente supportati (GOOS=tamago GOARCH=arm).

Categorie