
tamago v1.27.1
Фреймворк для компиляции и выполнения Go-приложений на голых металлических процессорах, обеспечивающий безопасную разработку прошивок с уменьшенной поверхностью атаки за счет удаления зависимостей от ОС и C.
TamaGo - Go на голом железе
tamago | https://github.com/usbarmory/tamago
Copyright (c) The TamaGo Authors. All Rights Reserved.
Введение
TamaGo — это фреймворк, позволяющий компилировать и запускать необременённые Go-приложения на процессорах без операционной системы.
Проект возник из желания уменьшить поверхность атаки прошивок встраиваемых систем путём устранения любых зависимостей времени выполнения от кода на C и операционных систем.
Фреймворк TamaGo состоит из следующих компонентов:
-
Модифицированный дистрибутив Go, который расширяет поддержку
GOOSдо целиtamago, позволяя исполнение на голом железе через оверлей runtime/goos, устанавливаемыйGOOSPKG. -
Go-пакеты для поддержки процессоров/SoC.
-
Go-пакеты для поддержки плат.
Модификации минимальны по отношению к оригинальному компилятору Go, среде выполнения и целевому приложению (требуется один импорт), с чётким отделением от других архитектур.
Большое внимание уделяется повторному использованию кода из существующих архитектур, уже включённых в стандартную среду выполнения Go, см. Internals.
Модификации сохраняют полную поддержку стандартной библиотеки.
Такие аспекты мотивированы желанием предоставить фреймворк, позволяющий разрабатывать безопасные прошивки на Go для встраиваемых систем.
Текущие релизы
Следующие ссылки ведут на последние релизы
модифицированного дистрибутива Go TamaGo,
который добавляет поддержку GOOS=tamago к соответствующей версии Go, и
библиотеки TamaGo:
Документация
Основная документация находится на вики проекта.
Документация по API пакетов доступна на pkg.go.dev.
Поддерживаемые цели AMD64
В следующей таблице перечислены текущие поддерживаемые цели x86-64
(GOOS=tamago GOARCH=amd64).
| CPU | Платформа | Пакет CPU | Пакет платформы |
|---|---|---|---|
| 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).