\HeadingLevelB{Programming Model Overview}
\label{sec:programming_model}

By design, Sanctum's programming model minimally deviates from SGX,
while providing stronger security guarantees. The expectation is that application
authors will link against a Sanctum-aware runtime that abstracts away most
aspects of Sanctum's programming model. For example, C programs would use a
modified implementation of the \texttt{libc} standard library. This section assumes the reader's familiarity with SGX as described in~\eref{I}{sec:sgx_model} and Section~\ref{sec:sgx}.

% NOTE: The \inputs that pull in naked paragraphs, as opposed to whole
%       sections, must be separated by empty lines.

\input{text/sanctum/programming_model/privileges.tex}

\input{text/sanctum/programming_model/memory_layout.tex}

\input{text/sanctum/programming_model/threading.tex}

\input{text/sanctum/programming_model/isolation.tex}

\input{text/sanctum/programming_model/security_model.tex}

\input{text/sanctum/programming_model/attestation.tex}
