Memory protection for embedded RISC-V systems
Master thesis
Permanent lenke
https://hdl.handle.net/11250/3012737Utgivelsesdato
2022Metadata
Vis full innførselSamlinger
Sammendrag
Operativsystemer for innvevde enheter er vanligvis enten fullt utstyrteoperativsystemer, som Linux, eller minimale alternativer. Dette representerer etproblem for IoT-enheter (Internet of Things-enheter), som trenger et visst nivåav sikkerhet som fullt utstyrte operativsystemer kan tilby, men som ofte har forlite ressurser til å kunne kjøre dem. Det er et behov for operativsystemer somer både effektive og som kan tilby det nødvendige nivået av sikkerhet. I denneoppgaven utforskes muligheter for å bruke minnebeskyttelse i en mikrokjerne påinnvevde enheter basert på RISC-V instruksjonssettet som ikke har enminnehåndterer.
F9 er en mikrokjerne basert på ARM-instruksjonssettet, og er ensikker og effektiv mikrokjerne som er ideell for IoT enheter. F9 benytter seg avminnebeskyttelse i ARM for å implementere sine minnebeskyttelsesmekanismer. Idenne oppgaven er en eksperimentell portering av F9 til RISC-V gjennomført.RISC-V inneholder en spesifikasjon for en minnebeskyttelsesenhet navngittPhysical Memory Protection (PMP), som fungerer i stor grad på en lignende måtesom minnebeskyttelsesenheten i ARM, men som også har en fordel. Denne fordeleneksisterer i form av en adresseringsmodus med navnet Top Of Range (TOR), enegenskap som er utnyttet i porteringen av F9 for å forbedre implementasjonen avminnebeskyttelse. Porteringen av F9 til RISC-V er en god indikator for at RISC-Ver en passende plattform for implementering av minnebeskyttelse i innvevdesystemer.
Arbeidet i denne oppgaven utforsker også relaterte emner somminnebeskyttelse i L4-baserte mikrokjerner som kjører på innvevde systemer utenen minnehåndterer. I tillegg er en implementasjon av programmeringsspråket LISPlaget, navngitt Hoppus. Hoppus kjører som en brukertråd på porteringen av F9,med intensjon om å ha et dynamisk språk med avfallsinnhenting som kan fungeresom en basis for interessante integrasjoner med minnehåndterings- ogminnebeskyttelsesmekanismene i F9. Hoppus er en plattform som skal legge tilrette for videre eksperimentering og forskning på mikrokjerner ogminnebeskyttelse på enheter med begrensede ressurser. Operating systems for embedded devices are typically either fully-featuredgeneral-purpose operating systems, such as Linux, or much more minimalalternatives. This presents an issue for IoT (Internet of Things) devices, whichrequire the level of security provided in fully-featured operating systems, butIoT devices are often too resource-constrained to run such operating systems.There is a need for operating systems which are both efficient and that canprovide a sufficient degree of security. In this thesis, we explore thepossibility of using memory protection in a microkernel on embedded devicesbased on the RISC-V Instruction Set Architecture (ISA) that does not have an MMU (Memory Management Unit).
The F9 Microkernel is an ARM-based microkernel that is secure, efficient, andideal for IoT devices. F9 uses the ARM Memory Protection Unit (MPU) to implementits memory protection mechanisms. In this thesis, an experimental port of the F9microkernel to the RISC-V ISA has been created. RISC-V has a specification foran MPU named Physical Memory Protection (PMP), which functions in much the sameway as the ARM MPU, but also has an advantage. This advantage is in the form ofan addressing mode on the PMP with the name Top Of Range (TOR), a feature that is exploited in the port of F9 to improve the memory protection implementation. The port of F9 to RISC-V is a good indicator that RISC-V is a suitable platform for implementing memory protection in embedded devices.
The work in this thesis also explores related topics such as memory protection in L4-style microkernels running on embedded devices without an MMU. In addition, an implementation of the LISP programming language was created, named Hoppus. Hoppus runs as a user thread on the port of F9, intending to have a dynamic garbage-collected language that serves as a basis for creating interesting integration with the memory management and memory protection mechanisms in F9. Hoppus is a platform that should facilitate further experimentation and research on microkernels and memory protection on resource-constrained devices.