% // vim: set ft=tex: \chapter{Topic Refinement} % TODO: is this chapter required? \chapter{Derived Research Questions} \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}} % TODO: describe Difficulties with the GPL Macros used Within Kernel Modules \chapter{Existing \glsentrytext{OS}-Development Projects Based On 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, \chapter{Result Generalization} \section{Low-Level Safe Abstractions in Rust} % TODO: Is the static analysis of hardware specific assembly code possible and useful at all? % TODO: LLVM knows about the target and can potentially give hints about hardware specific instructions \section{Tracking \textit{'static}ally allocated Resources} \section{The Necessary Evils of \textit{unsafe}} \chapter{Result Evaluation} % TODO: repeat that rust *can* be used to increase safety in the OS, but it doesn't guarantee it per-se \chapter{Summary}