diff options
author | Vincent Ambo <tazjin@gmail.com> | 2018-03-12T00·09+0100 |
---|---|---|
committer | Vincent Ambo <tazjin@gmail.com> | 2018-03-12T00·09+0100 |
commit | 6f4278537ea8380b21dd094dd537fa2d39c674b4 (patch) | |
tree | c77cb1fde42c018adeb55d31a6a4217817821ecb /presentation.tex | |
parent | da53459e60d57045ef68c4b4608417027d803bf2 (diff) |
feat(slides): Add iniital presentation
Diffstat (limited to 'presentation.tex')
-rw-r--r-- | presentation.tex | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/presentation.tex b/presentation.tex new file mode 100644 index 000000000000..579850f77b05 --- /dev/null +++ b/presentation.tex @@ -0,0 +1,71 @@ +\documentclass[12pt]{beamer} +\usetheme{metropolis} +\newenvironment{code}{\ttfamily}{\par} +\title{Where does \textit{your} compiler come from?} +\date{2018-03-13} +\author{Vincent Ambo} +\institute{Norwegian Unix User Group} +\begin{document} + \maketitle + + %% Slide 1: + \section{Introduction} + + + %% Slide 2: + \begin{frame}{Chicken and egg} + Self-hosted compilers are often built using themselves, for example: + + \begin{itemize} + \item C-family compilers bootstrap themselves \& each other + \item (Some!) Common Lisp compilers can bootstrap each other + \item \texttt{rustc} bootstraps itself with a previous version + \item ... same for many other languages! + \end{itemize} + \end{frame} + + %% Slide 3: + \begin{frame}{Trusting Trust} + \begin{center} + Could this be exploited? + \end{center} + \end{frame} + + %% Slide 4: + \begin{frame}{Short interlude: A quine} + \begin{center} + \begin{code} + ((lambda (x) (list x (list 'quote x))) + \newline\vspace*{6mm} '(lambda (x) (list x (list 'quote x)))) + \end{code} + \end{center} + \end{frame} + + %% Slide 5: + \begin{frame}{Short interlude: Quine Relay} + \begin{center} + \includegraphics[ + keepaspectratio=true, + height=\textheight + ]{quine-relay.png} + \end{center} + \end{frame} + + %% Slide 6: + \begin{frame}{Trusting Trust} + An attack described by Ken Thompson in 1984: + + \begin{enumerate} + \item Modify a compiler to detect when it's compiling itself. + \item Let the modification insert \textit{itself} into the new compiler. + \item Add arbitrary attack code to the modification. + \end{enumerate} + \end{frame} + + %% Slide 7: + \begin{frame}{Damage potential?} + \begin{center} + Let your imagination run wild! + \end{center} + \end{frame} +\end{document} |