Назад к обновлениям
New releaseAug 15, 2026

tamago v1.26.6

Фреймворк для компиляции и выполнения Go-приложений на голых металлических процессорах, обеспечивающий безопасную разработку прошивок с уменьшенной поверхностью атаки за счет удаления зависимостей от ОС и C.

Поделиться

TamaGo - bare metal Go

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

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

TamaGo gopher

Введение

TamaGo — это фреймворк, который позволяет компилировать и выполнять Go-приложения без внешних зависимостей на голом железе (AMD64, ARM, ARM64, RISCV64).

Проект возник из желания уменьшить поверхность атаки встроенного ПО, устранив любые зависимости времени выполнения от кода на C и операционных систем.

Фреймворк TamaGo состоит из следующих компонентов:

  • Модифицированная дистрибуция Go, расширяющая поддержку GOOS до цели tamago, позволяющая выполнение на голом железе через наложение runtime/goos, устанавливаемое с помощью GOOSPKG.

  • Пакеты Go для поддержки процессоров/SoC.

  • Пакеты Go для поддержки плат.

Модификации минимальны по сравнению с оригинальным компилятором Go, средой выполнения и целевым приложением (требуется один импорт), с четким отделением от других архитектур.

Большое внимание уделяется повторному использованию кода из существующих архитектур, уже включенных в стандартную среду выполнения Go, см. Внутреннее устройство.

Модификации обеспечивают полную поддержку стандартной библиотеки.

Такие аспекты продиктованы желанием предоставить фреймворк, позволяющий разрабатывать безопасные Go-прошивки для встроенных систем.

Текущие релизы

Следующие ссылки ведут к последним релизам модифицированной дистрибуции Go TamaGo, добавляющей поддержку GOOS=tamago к соответствующей версии Go, и библиотеки TamaGo:

GitHub release Build Status
GitHub release

Документация

Go Reference

Основная документация находится в вики проекта.

Документация API пакетов доступна на pkg.go.dev.

Поддерживаемые цели AMD64

В следующей таблице приведены поддерживаемые в настоящее время цели x86-64 (GOOS=tamago GOARCH=amd64).

ЦППлатформаПакет ЦППакет платформы
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

Поддерживаемые цели ARM

В следующей таблице приведены поддерживаемые в настоящее время SoC и платы ARM (GOOS=tamago GOARCH=arm).

Категории