MultiGo - Implementing Parallel Execution for Bare-Metal Golang
Master thesis
Permanent lenke
https://hdl.handle.net/11250/3086277Utgivelsesdato
2023Metadata
Vis full innførselSamlinger
Sammendrag
Denne oppgave går ut på å forbedre bare-metal programvare utvikling for RISCV systemer med MultiGo. MultiGo er en modifikasjon av Embeddedgo. MultiGo legger til støtte for parallelt kjørende tråder, noe Embeddedgo mangler. Embeddedgo er på sin side en modifikasjon av vanlig Go. Embeddedgo legger til støtte for å kjøre Go kode på bare-metal systemer. Go er et relativt nytt og intersant programmerings språk. Go tilbyr mange funksjoner, slik som garbage collection og en unik måte å håndeter tråder, nettop med goroutiner. Oppgaven vill forklare hvordan Embeddedgo fungerer, hvilk endringer som måtte gjøres for å lage MultiGo, og sammenligne MuliGo med C for å finne ut fordelene og ulempene med begge språkene. This thesis looks at improving software development for bare-metal RISCV sys-tems with MultiGo. MultiGo is a modification of Embeddedgo. MultiGo addssupport for parallel execution of threads, something Embeddedgo lacks. Em-beddedgo is, in turn, a modification of regular Go that adds support for runningGo on bare-metal systems. Go is a relatively new and interesting programminglanguage. Go offers many features, such as garbage collection and a novel way ofhandling threads, namely with goroutines. The thesis will explain how Embed-dedgo works, what changes were made to create MultiGo, and compare MultiGowith C to figure out the pros and cons of both languages.