G.E.R.T : a go-based toolkit for embedded applications

Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017. === This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. === Cataloged from student-s...

Full description

Bibliographic Details
Main Author: Coroneos, Yanni (Yanni E.)
Other Authors: Frans Kaashoek.
Format: Others
Language:English
Published: Massachusetts Institute of Technology 2017
Subjects:
Online Access:http://hdl.handle.net/1721.1/112838
Description
Summary:Thesis: M. Eng., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, 2017. === This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. === Cataloged from student-submitted PDF version of thesis. === Includes bibliographical references (page 51). === Embedded systems are becoming increasingly complicated due to the emergence of SOCs (system-on-a-chip) with multiple cores, dizzying amounts of peripherals, and complicated virtual memory systems. Unfortunately, performant embedded systems for SOCs are still largely written in either bare-metal C or userspace C because high-level languages running in userspace can have too much latency. This thesis proposes a new system called G.E.R.T, the Golang Embedded Run-Time, for multi-core ARM processors. GERT is a modified version of the Go runtime for bare-metal operation on multi-core ARMv7a SOC's. It is used to evaluate the effectiveness of using a high-level, type-safe, and garbage collected language for embedded applications. G.E.R.T provides the multiprocessor support and basic memory abstractions of a typical embedded toolkit while also enabling the user to leverage the language features of Go in order to develop concurrent embedded programs that are easier to reason about than similar ones written in C. === by Yanni Coroneos. === M. Eng.