% // vim: set ft=tex: \chapter{Topic Refinement} % TODO: is this chapter required? \chapter{Research Questions} Setting up and maintaining the paging-structure, as well as allocating physical memory for the virtual pages is a complex task in the \gls{OS}. Developing this part of the \gls{OS} is error-prone, and is not well-supported by mainstream \glspl{proglang}. \subsection{Definition Of Additional Analysis Rules To Extend Safety Checks} % TODO: How can Business Logical % Examples: % TLB needs to be reset on Task Change % Registers need to be \subsubsection{Software Fault Isolation} % TODO: content from \cite{Balasubramanian2017} \subsection{More Detailed Research Questions} % TODO Which language items help with managing memory? % TODO How generic can the memory allocators be written? % TODO Guarantees to be statically checked: % TODO * Control access to duplicates in page tables % TODO * Tasks can't access unallocated (physical) memory % TODO * Tasks can't access other tasks memory \subsection{Interrupts} % TODO https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf p. 2848 \section{Software Tests} % TODO: describe that tests are mostly semantics as opposed to static checks being mostly syntactical and technical % TODO: They necessary in addition to static checks to cover the well-known use-cases and edge-cases. % TODO: example? \chapter{Porting \glsentrytext{C} Vulnerabilities} \label{rnd::porting-c-vulns} In this chapter, the examples from \autoref{TODO} ported to \gls{Rust} for evaluation. \chapter{\glsentrytext{LX} Modules Written In \glsentrytext{Rust}} \chapter{Existing \glsentrytext{OS}-Development Projects Based On Rust} \label{rnd::existing-os-in-rust} \section{Libraries} \subsection{Libfringe} % TODO: https://github.com/edef1c/libfringe \section{Systems} \subsection{intermezzOS} \subsection{Blog OS} \subsection{Redox} \subsection{Tock} \chapter{\glsentrytext{imezzos}: Adding Preemptive \glsentrytext{OS}-Level Multitasking} \section{Timed Interrupts For Scheduling and Dispatching} \section{Simple Stack Allocation Scheme} \section{Risk Of Stack-Overflow} % TODO: The compiler doesn't check for stack overflows. % TODO: Describe possible implementation. % Parameters: % Stack limit for each function: user defined constant, % Stack size for each function: calculated, % Call-Tree: calculated,