
बेयर मेटल प्रोसेसरों पर Go अनुप्रयोगों को संकलित और निष्पादित करने के लिए फ्रेमवर्क, जो OS और C निर्भरता को हटाकर हमले की सतह को कम करके सुरक्षित फर्मवेयर विकास को सक्षम बनाता है।
tamago | https://github.com/usbarmory/tamago
Copyright (c) The TamaGo Authors. All Rights Reserved.
TamaGo एक फ्रेमवर्क है जो बेयर मेटल प्रोसेसर पर अनएनकम्बर्ड Go एप्लिकेशन के कम्पाइलेशन और निष्पादन को सक्षम बनाता है।
यह प्रोजेक्ट C कोड और ऑपरेटिंग सिस्टम पर किसी भी रनटाइम निर्भरता को हटाकर एम्बेडेड सिस्टम फर्मवेयर के अटैक सरफेस को कम करने की इच्छा से उत्पन्न हुआ है।
TamaGo फ्रेमवर्क में निम्नलिखित घटक शामिल हैं:
एक संशोधित Go वितरण
जो GOOS समर्थन को tamago टारगेट तक बढ़ाता है, जिससे GOOSPKG द्वारा सेट किए गए
runtime/goos
ओवरले के माध्यम से बेयर मेटल निष्पादन की अनुमति मिलती है।
प्रोसेसर/SoC समर्थन के लिए Go पैकेज।
बोर्ड समर्थन के लिए Go पैकेज।
संशोधन मूल Go कम्पाइलर, रनटाइम और टारगेट एप्लिकेशन (एक इम्पोर्ट आवश्यक) के मुकाबले न्यूनतम हैं, अन्य आर्किटेक्चर से स्पष्ट अलगाव के साथ।
मानक Go रनटाइम के भीतर पहले से शामिल मौजूदा आर्किटेक्चर से कोड के पुन: उपयोग पर विशेष जोर दिया गया है, देखें Internals।
संशोधन पूर्ण मानक लाइब्रेरी समर्थन बनाए रखते हैं।
ऐसे पहलू एम्बेडेड सिस्टम पर सुरक्षित Go फर्मवेयर विकास की अनुमति देने वाला फ्रेमवर्क प्रदान करने की इच्छा से प्रेरित हैं।
निम्नलिखित लिंक TamaGo संशोधित Go वितरण के नवीनतम रिलीज़ हैं,
जो संबंधित Go संस्करण में GOOS=tamago समर्थन जोड़ता है, और
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 |
निम्नलिखित तालिका वर्तमान में समर्थित ARM SoC और बोर्ड का सारांश प्रस्तुत करती है
(GOOS=tamago GOARCH=arm)।