thesis/context: work on introduction

* Explain some of Memory-Management
* Explain CWE with relevant examples
* Add CWE-119 Statistics
This commit is contained in:
steveej 2017-08-31 22:31:56 +02:00
parent c32d440432
commit f50dd56fff
13 changed files with 638 additions and 395 deletions

View file

@ -1,74 +1,80 @@
% // vim: set ft=tex:
\chapter{Topic Refinement}
- TODO: is this chapter required?
% 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
% 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}
% TODO: content from \cite{Balasubramanian2017}
\subsection{More Detailed Research Questions}
* Which language items help with managing memory?
* How generic can the memory allocators be written?
% TODO Which language items help with managing memory?
% TODO How generic can the memory allocators be written?
Guarantees to be statically checked:
* Control access to duplicates in page tables
* Tasks can't access unallocated (physical) memory
* Tasks can't access other tasks memory
% 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}
* https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf p. 2848
% 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?
% 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{\glsentrytext{Linux} Modules Written In \glsentrytext{Rust}}
* TODO: describe Difficulties with the GPL Macros used Within Kernel Modules
\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}
* https://github.com/edef1c/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,
% 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?
* LLVM knows about the target and can potentially give hints about hardware specific instructions
% 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
% TODO: repeat that rust *can* be used to increase safety in the OS, but it doesn't guarantee it per-se
\chapter{Summary}