Retour aux mises à jour
New releaseSep 4, 2026

tamago v1.27.1

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) The TamaGo Authors. All Rights Reserved.

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.

Les projets naissent du désir de réduire la surface d'attaque des firmwares de systèmes embarqués en supprimant toute dépendance à l'exécution de code C et de systèmes d'exploitation.

Le framework TamaGo est constitué des composants suivants :

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

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

  • Des paquets Go pour le support des cartes.

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

Une forte emphase est mise 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 qui permet le développement sécurisé de firmwares 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 de 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-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

Cibles ARM supportées

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

Catégories