
إطار لتجميع وتنفيذ تطبيقات Go على معالجات عارية (bare metal)، مما يتيح تطوير برامج ثابتة آمنة مع تقليل سطح الهجوم من خلال إزالة اعتماديات نظام التشغيل وC.
tamago | https://github.com/usbarmory/tamago
حقوق النشر (ج) مؤلفو TamaGo. جميع الحقوق محفوظة.
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.
يلخص الجدول التالي أهداف x86-64 المدعومة حاليًا
(GOOS=tamago GOARCH=amd64).
| CPU | Platform | CPU package | Platform package |
|---|---|---|---|
| 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 |
يلخص الجدول التالي معالجات SoC واللوحات ARM المدعومة حاليًا
(GOOS=tamago GOARCH=arm).