Retour aux mises à jour
New releaseJul 14, 2026

tamago v1.26.5

Framework pour compiler et exécuter des applications Go sur des processeurs bare metal, permettant un développement de firmware sécurisé avec une surface d'attaque réduite grâce à la suppression des dépendances OS et C.

Partager

TamaGo - Go sur métal nu

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

Copyright (c) Les Auteurs de TamaGo. Tous droits réservés.

TamaGo gopher

Introduction

TamaGo est un framework qui permet la compilation et l'exécution d'applications Go non entravées sur des processeurs en métal nu (AMD64, ARM, ARM64, RISCV64).

Le projet est né du désir de réduire la surface d'attaque des firmwares de systèmes embarqués en supprimant toute dépendance d'exécution sur du code C et des systèmes d'exploitation.

Le framework TamaGo se compose des composants suivants :

  • Une distribution Go modifiée qui étend le support GOOS à la cible tamago, permettant une exécution sur métal nu via un overlay runtime/goos défini par GOOSPKG.

  • Des paquets Go pour le support des processeurs/SoC.

  • Des paquets Go pour le support des cartes.

Les modifications sont minimes par rapport au compilateur Go original, au runtime et à l'application cible (une importation requise), avec une séparation nette des autres architectures.

Un accent fort est mis sur la réutilisation du code des architectures existantes déjà incluses dans le runtime Go standard, voir Internals.

Les modifications maintiennent un support complet de la bibliothèque standard.

Ces aspects sont motivés par le désir de fournir un framework permettant un développement sécurisé de firmware Go sur des systèmes embarqués.

Versions actuelles

Les liens suivants sont les dernières versions de la distribution Go modifiée TamaGo, qui ajoute le support GOOS=tamago à la version Go correspondante, et de la bibliothèque TamaGo :

GitHub release Build Status
GitHub release

Documentation

Go Reference

La documentation principale se trouve sur le wiki du projet.

La documentation de l'API des paquets se trouve sur pkg.go.dev.

Cibles AMD64 supportées

Le tableau suivant résume les cibles x86-64 actuellement supportées (GOOS=tamago GOARCH=amd64).

CPUPlateformePaquet CPUPaquet plateforme
AMD/Intel 64 bitsCloud Hypervisoramd64cloud_hypervisor/vm
AMD/Intel 64 bitsFirecracker microvmamd64firecracker/microvm
AMD/Intel 64 bitsQEMU microvmamd64qemu/microvm
AMD/Intel 64 bitsUEFIamd64uefi/x64
AMD/Intel 64 bitsGoogle Compute Engineamd64google/gcp, uefi/x64

Cibles ARM supportées

Le tableau suivant résume les SoC et cartes ARM actuellement supportés (GOOS=tamago GOARCH=arm).

Catégories