2017-08-10 19:09:58 +02:00
|
|
|
% // vim: set ft=tex:
|
|
|
|
\chapter{Topic Refinement}
|
2017-08-31 22:31:56 +02:00
|
|
|
% TODO: is this chapter required?
|
2017-08-10 19:09:58 +02:00
|
|
|
|
2017-09-11 22:54:22 +02:00
|
|
|
\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}.
|
2017-08-10 19:09:58 +02:00
|
|
|
|
|
|
|
\subsection{Definition Of Additional Analysis Rules To Extend Safety Checks}
|
2017-08-31 22:31:56 +02:00
|
|
|
% TODO: How can Business Logical
|
|
|
|
% Examples:
|
|
|
|
% TLB needs to be reset on Task Change
|
|
|
|
% Registers need to be
|
2017-08-10 19:09:58 +02:00
|
|
|
|
|
|
|
\subsubsection{Software Fault Isolation}
|
2017-08-31 22:31:56 +02:00
|
|
|
% TODO: content from \cite{Balasubramanian2017}
|
2017-08-10 19:09:58 +02:00
|
|
|
|
|
|
|
\subsection{More Detailed Research Questions}
|
2017-08-31 22:31:56 +02:00
|
|
|
% TODO Which language items help with managing memory?
|
|
|
|
% TODO How generic can the memory allocators be written?
|
2017-08-10 19:09:58 +02:00
|
|
|
|
2017-08-31 22:31:56 +02:00
|
|
|
% 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
|
2017-08-10 19:09:58 +02:00
|
|
|
|
|
|
|
\subsection{Interrupts}
|
2017-08-31 22:31:56 +02:00
|
|
|
% TODO https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf p. 2848
|
2017-08-10 19:09:58 +02:00
|
|
|
|
|
|
|
\section{Software Tests}
|
2017-08-31 22:31:56 +02:00
|
|
|
% 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?
|
2017-08-10 19:09:58 +02:00
|
|
|
|
2017-08-31 22:31:56 +02:00
|
|
|
|
|
|
|
\chapter{Porting \glsentrytext{C} Vulnerabilities}
|
2017-09-11 22:54:22 +02:00
|
|
|
\label{rnd::porting-c-vulns}
|
2017-08-31 22:31:56 +02:00
|
|
|
In this chapter, the examples from \autoref{TODO} ported to \gls{Rust} for evaluation.
|
|
|
|
|
|
|
|
\chapter{\glsentrytext{LX} Modules Written In \glsentrytext{Rust}}
|
2017-08-10 19:09:58 +02:00
|
|
|
|
2017-08-22 17:40:13 +02:00
|
|
|
\chapter{Existing \glsentrytext{OS}-Development Projects Based On Rust}
|
2017-09-11 22:54:22 +02:00
|
|
|
\label{rnd::existing-os-in-rust}
|
2017-08-10 19:09:58 +02:00
|
|
|
|
|
|
|
\section{Libraries}
|
|
|
|
|
|
|
|
\subsection{Libfringe}
|
2017-08-31 22:31:56 +02:00
|
|
|
% TODO: https://github.com/edef1c/libfringe
|
2017-08-10 19:09:58 +02:00
|
|
|
|
|
|
|
\section{Systems}
|
|
|
|
\subsection{intermezzOS}
|
|
|
|
\subsection{Blog OS}
|
|
|
|
\subsection{Redox}
|
|
|
|
\subsection{Tock}
|
2017-08-31 22:31:56 +02:00
|
|
|
|
2017-08-22 17:40:13 +02:00
|
|
|
\chapter{\glsentrytext{imezzos}: Adding Preemptive \glsentrytext{OS}-Level Multitasking}
|
2017-08-22 10:55:48 +02:00
|
|
|
|
|
|
|
\section{Timed Interrupts For Scheduling and Dispatching}
|
2017-09-11 22:54:22 +02:00
|
|
|
|
2017-08-22 10:55:48 +02:00
|
|
|
\section{Simple Stack Allocation Scheme}
|
|
|
|
|
|
|
|
\section{Risk Of Stack-Overflow}
|
2017-08-31 22:31:56 +02:00
|
|
|
% 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,
|
2017-08-10 19:09:58 +02:00
|
|
|
|