Vis enkel innførsel

dc.contributor.advisorEngel, Michael
dc.contributor.authorSevaldson, Ruben
dc.date.accessioned2022-08-19T17:19:24Z
dc.date.available2022-08-19T17:19:24Z
dc.date.issued2022
dc.identifierno.ntnu:inspera:112046434:20987266
dc.identifier.urihttps://hdl.handle.net/11250/3012737
dc.description.abstractOperativsystemer for innvevde enheter er vanligvis enten fullt utstyrte operativsystemer, som Linux, eller minimale alternativer. Dette representerer et problem for IoT-enheter (Internet of Things-enheter), som trenger et visst nivå av sikkerhet som fullt utstyrte operativsystemer kan tilby, men som ofte har for lite ressurser til å kunne kjøre dem. Det er et behov for operativsystemer som er både effektive og som kan tilby det nødvendige nivået av sikkerhet. I denne oppgaven utforskes muligheter for å bruke minnebeskyttelse i en mikrokjerne på innvevde enheter basert på RISC-V instruksjonssettet som ikke har en minnehåndterer. F9 er en mikrokjerne basert på ARM-instruksjonssettet, og er en sikker og effektiv mikrokjerne som er ideell for IoT enheter. F9 benytter seg av minnebeskyttelse i ARM for å implementere sine minnebeskyttelsesmekanismer. I denne oppgaven er en eksperimentell portering av F9 til RISC-V gjennomført. RISC-V inneholder en spesifikasjon for en minnebeskyttelsesenhet navngitt Physical Memory Protection (PMP), som fungerer i stor grad på en lignende måte som minnebeskyttelsesenheten i ARM, men som også har en fordel. Denne fordelen eksisterer i form av en adresseringsmodus med navnet Top Of Range (TOR), en egenskap som er utnyttet i porteringen av F9 for å forbedre implementasjonen av minnebeskyttelse. Porteringen av F9 til RISC-V er en god indikator for at RISC-V er en passende plattform for implementering av minnebeskyttelse i innvevde systemer. Arbeidet i denne oppgaven utforsker også relaterte emner som minnebeskyttelse i L4-baserte mikrokjerner som kjører på innvevde systemer uten en minnehåndterer. I tillegg er en implementasjon av programmeringsspråket LISP laget, 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 fungere som en basis for interessante integrasjoner med minnehåndterings- og minnebeskyttelsesmekanismene i F9. Hoppus er en plattform som skal legge til rette for videre eksperimentering og forskning på mikrokjerner og minnebeskyttelse på enheter med begrensede ressurser.
dc.description.abstractOperating systems for embedded devices are typically either fully-featured general-purpose operating systems, such as Linux, or much more minimal alternatives. This presents an issue for IoT (Internet of Things) devices, which require the level of security provided in fully-featured operating systems, but IoT devices are often too resource-constrained to run such operating systems. There is a need for operating systems which are both efficient and that can provide a sufficient degree of security. In this thesis, we explore the possibility of using memory protection in a microkernel on embedded devices based 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, and ideal for IoT devices. F9 uses the ARM Memory Protection Unit (MPU) to implement its memory protection mechanisms. In this thesis, an experimental port of the F9 microkernel to the RISC-V ISA has been created. RISC-V has a specification for an MPU named Physical Memory Protection (PMP), which functions in much the same way as the ARM MPU, but also has an advantage. This advantage is in the form of an 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.
dc.languageeng
dc.publisherNTNU
dc.titleMemory protection for embedded RISC-V systems
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel