2017-08-10 19:09:58 +02:00
% // vim: set ft=tex:
2017-09-22 21:00:34 +02:00
\chapter { Concrete Research Tasks}
2017-09-21 21:53:48 +02:00
\section { Definition Of Additional Analysis Rules To Extend Safety Checks}
2017-09-22 21:00:34 +02:00
% TODO: Business Logic Checks
2017-09-21 21:53:48 +02:00
% Examples:
% TLB needs to be reset on Task Change
2017-09-22 21:00:34 +02:00
% ISR-Stack-Frame needs to be updated on context-switch
2017-09-21 21:53:48 +02:00
\section { Software Fault Isolation}
% TODO: content from \cite{Balasubramanian2017}
% 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
2017-09-22 21:00:34 +02:00
\subsection { Paging}
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-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-09-22 21:00:34 +02:00
In this chapter, the weakness manifestations given in \cref { context::common-mem-safety-mistakes::manifestations} are rewritten in \gls { Rust} to examine if these are mitigated just by porting them.
This is done incrementally by first porting the vulnerability to unsafe Rust, followed by a rewrite to drop all unsafe code but keeping the intended functionality.
% TODO stack frame manipulation
% TODO official CWE-119 examples
2017-08-31 22:31:56 +02:00
\chapter { \glsentrytext { LX} Modules Written In \glsentrytext { Rust} }
2017-08-10 19:09:58 +02:00
2017-09-21 21:53:48 +02:00
\chapter { Existing \glsentrytext { os} -Development Projects Based On Rust}
\label { rnd::existing-os-dev-with-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
2017-09-19 10:38:00 +02:00
2017-08-10 19:09:58 +02:00
\section { Systems}
\subsection { intermezzOS}
\subsection { Blog OS}
\subsection { Redox}
\subsection { Tock}
2017-09-21 21:53:48 +02:00
%TODO: mention paper's by tockos team
2017-08-31 22:31:56 +02:00
2017-09-21 21:53:48 +02:00
\chapter { \glsentrytext { imezzos} : Adding Preemptive \glsentrytext { os} -Level Multitasking}
2017-09-19 10:38:00 +02:00
\label { rnd::imezzos-preemptive-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