The Challenges of porting Infero to RISC-V
Abstract
Prosessorarkitekturen RISC-V blir stadig mer populær, og det vil sannsynligvis bli en eksplosjon avsmå RISC-V maskiner de neste årene, som sensorer, i hvitevarer, og mer. Siden disse typenedatamaskiner ikke alltid har ressursene til å kjøre operativsystemer som f.eks. Linux eroperativsystemet Inferno et alternativ. Infernos distribuerte og nettverksorienterte design kanpasse utmerket for disse typene systemer.
I denne oppgaven begynner jeg på å tilpasse Inferno til å kjøre på RISC-V, og identifiserer utfordringene med åtilpasse og bruke operativsystemet.
Den første store utfordringen var å få systemet til et punkt der det kunne starte opp og håndtere enkel kommunikasjon,i form av tekst. Den andre utfordringen var å gjøre systemet brukbart ved å implementere enhetsdrivere. Den sisteutfordringen var å implementere en Just-in-Time kompilator, for å gjøre systemet mer responsivt.
Selv om operativsystemet ikke er helt brukbart ennå har jeg gjort store framskritt. Operativsystemetstarter opp og viser en kommandolinje der brukeren kan utføre kommandoer. Tekst kan printes både tilen seriell port og til en skjerm. Jeg har implementert en Just-in-Time kompilator, men det er noenproblemer som får kompliserte programmer til å krasje.
Dette prosjektet danner grunnlaget for å bruke Inferno på RISC-V maskiner. The RISC-V processor architecture is rapidly rising in popularity, and there will probably be anexplosion of smaller RISC-V computers in the coming years, as sensors, in appliances, andmore. Because these kinds of computers do not always have the resources to run an operating systemlike Linux, the Inferno operating system is an alternative, which, with its networked anddistributed nature, could be a perfect match for these kinds of systems.
In this thesis I begin to port Inferno to RISC-V, and identify the challenges of both porting andusing the operating system.
The first major challenge was to get the system to a stage where it could boot and handle simpleinput and output. The second challenge was to make the system more usable by implementing drivers.The last challenge was to implement a Just-in-time compiler, to make the system more responsive.
While not fully usable yet, I have made significant progress in porting Inferno. The operatingsystem boots and launches an interactive shell, in which the user can execute commands. It can outputto both a serial port and a screen. I have implemented a Just-In-Time compiler, but there are somebugs which cause complicated programs to crash.
This forms the foundation from which a port of Inferno to real hardware can be built.