dc.contributor.advisor | Engel, Michael | |
dc.contributor.author | Sevaldson, Ruben | |
dc.date.accessioned | 2022-08-19T17:19:24Z | |
dc.date.available | 2022-08-19T17:19:24Z | |
dc.date.issued | 2022 | |
dc.identifier | no.ntnu:inspera:112046434:20987266 | |
dc.identifier.uri | https://hdl.handle.net/11250/3012737 | |
dc.description.abstract | Operativsystemer 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.abstract | Operating 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.language | eng | |
dc.publisher | NTNU | |
dc.title | Memory protection for embedded RISC-V systems | |
dc.type | Master thesis | |