% // vim: set ft=tex: \chapter{Topic Refinement} \section{Static Checks} * TODO: Difference between static- and runtime checks \subsection{Define Additional Anlyse Rules} * Example: TLB needs to be reset on Task Change \subsection{Static Variable Declaration} \section{Virtual Memory Management In Hard- and Software} * Architecture choice: x86\_64 * CPU supports * TODO: Is the static analysis of hardware specific assembly code possible and useful at all? * LLVM knows about the target and can potentially give hints about hardware specific instructions * TODO: On which level can abstraction in Rust code start? \subsection{Interrupts} * https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf p. 2848 \section{Testing} * How effective are tests? * Are they necessary in addition to static checks? \chapter{Using Rust Within Non-Rust Operating Systems} \section{Linux Kernel Modules} * TODO: describe Difficulties with Macros used Within Kernel \chapter{OS Designs Based On Rust} Thread Libraries: * https://github.com/edef1c/libfringe \section{Blog OS} \section{intermezzOS} \subsection{Memory Management} * Which language items help with managing memory? * How generic can the memory allocators be written? Guarantees to be statically checked: * Prevent access to unmapped physical memory * Prevent duplicates in page tables \section{Reddox} \section{Tock}