Voltar às atualizações
New releaseJul 14, 2026

tamago v1.26.5

Framework para compilar e executar aplicações Go em processadores bare metal, permitindo o desenvolvimento seguro de firmware com superfície de ataque reduzida através da remoção de dependências de SO e C.

Compartilhar

TamaGo - Go em bare metal

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

Copyright (c) The TamaGo Authors. Todos os direitos reservados.

TamaGo gopher

Introdução

TamaGo é um framework que possibilita a compilação e execução de aplicações Go sem dependências em processadores bare metal (AMD64, ARM, ARM64, RISCV64).

O projeto surge do desejo de reduzir a superfície de ataque do firmware de sistemas embarcados, removendo qualquer dependência em tempo de execução de código C e sistemas operacionais.

O framework TamaGo consiste nos seguintes componentes:

  • Uma distribuição Go modificada que estende o suporte a GOOS para o destino tamago, permitindo execução bare metal através de uma sobreposição runtime/goos definida por GOOSPKG.

  • Pacotes Go para suporte a processadores/SoCs.

  • Pacotes Go para suporte a placas.

As modificações são mínimas em relação ao compilador Go original, runtime e a aplicação alvo (uma importação necessária), com uma separação limpa de outras arquiteturas.

Uma forte ênfase é colocada na reutilização de código de arquiteturas existentes já incluídas no runtime Go padrão, veja Internos.

As modificações mantêm suporte completo à biblioteca padrão.

Tais aspectos são motivados pelo desejo de fornecer um framework que permita o desenvolvimento seguro de firmware Go em sistemas embarcados.

Lançamentos atuais

Os links a seguir são os lançamentos mais recentes da Distribuição Go modificada TamaGo, que adiciona suporte a GOOS=tamago à versão Go correspondente, e da Biblioteca TamaGo:

GitHub release Build Status
GitHub release

Documentação

Go Reference

A documentação principal pode ser encontrada no wiki do projeto.

A documentação da API dos pacotes pode ser encontrada em pkg.go.dev.

Destinos AMD64 suportados

A tabela a seguir resume os destinos x86-64 atualmente suportados (GOOS=tamago GOARCH=amd64).

CPUPlataformaPacote CPUPacote Plataforma
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

Destinos ARM suportados

A tabela a seguir resume os SoCs e placas ARM atualmente suportados (GOOS=tamago GOARCH=arm).

Categorias