Pure Go Unikernels - go metal with TamaGo

For far too long the perceived necessity of low level coding in C lead to unsafe implementations.

Abstract

For far too long the perceived necessity of low level coding in C lead to unsafe implementations. Go is not yet seen as a prime candidate for drivers and firmware. We aim to prove that the Go runtime can be a 1st class citizen in creating beautiful bare metal unikernels. We have developed TamaGo, a Go based operating environment framework which aims to allow deployment of firmware for powerful embedded ARM devices by using 0% C and 100% Go code. The goal is to dramatically reduce the attack surface posed by complex OSes while allowing unencumbered Go applications. TamaGo consists of a minimal, clean, compiler modification and driver set for ARM SoCs, which allows bare metal drivers and applications to be executed with pure Go code and minimal deviations from the standard Go runtime. The presentation explores the inspiration, challenges and implementation of such framework as well as providing sample applications that benefit from a pure Go bare metal environment. Deploying unikernels in pure Go allows a considerable reduction of embedded firmware attack surface, while maintaining the strength of Go runtime standard (and external) libraries. This enables the creation of HSMs, cryptocurrency stacks and many more applications without the requirement for complex OSes and libraries as dependencies.

Video

Stay connected

You can subscribe to our newsletter to stay updated on the latest news and announcements. Follow us on social media to join our community and engage with other attendees, speakers, and staff. We're on Twitter, Mastodon, Youtube and Facebook. Don't forget to use our official hashtag #GoLab2023 to share your experience and connect with other attendees on social media.

Subscribe to our newsletter

We hate spam just as much as you do, which is why we promise to only send you relevant communications. We respect your privacy and will never share your information with third parties.
©2023 GoLab | The international conference on Go in Florence-Design & devCantiere Creativo-Made withDatoCMS