
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 — это фреймворк, который позволяет компилировать и выполнять 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:
Документация
Основная документация находится в вики проекта.
Документация API пакетов доступна на pkg.go.dev.
Поддерживаемые цели AMD64
В следующей таблице приведены поддерживаемые в настоящее время цели x86-64
(GOOS=tamago GOARCH=amd64).
| ЦП | Платформа | Пакет ЦП | Пакет платформы |
|---|---|---|---|
| AMD/Intel 64-bit | Cloud Hypervisor | amd64 | cloud_hypervisor/vm |
| AMD/Intel 64-bit | Firecracker microvm | amd64 | firecracker/microvm |
| AMD/Intel 64-bit | QEMU microvm | amd64 | qemu/microvm |
| AMD/Intel 64-bit | UEFI | amd64 | uefi/x64 |
| AMD/Intel 64-bit | Google Compute Engine | amd64 | google/gcp, uefi/x64 |
Поддерживаемые цели ARM
В следующей таблице приведены поддерживаемые в настоящее время SoC и платы ARM
(GOOS=tamago GOARCH=arm).