% ----------------------------
\section{Update Concepts}
\subsection{Introduction}

% ----------------------------
\begin{frame}{General}
\begin{itemize}
\item Why are updates necessary?
 \begin{itemize}
 \item Functionality (new features)
 \item Up-to-date (problem fixes, configuration)
 \item Root-of-trust (Certificates et.al.)
 \end{itemize}
\item Common Issues with Updates:
 \begin{itemize}
 \item Reduced Resources
 \item Unreliable Communication
 \item Failed or Incomplete Updates
 \item Integrity of Updates
 \item No "One-size-fits-all"-Solution
 \end{itemize}
\item Update concepts are mandatory for Embedded Systems!
\end{itemize}
\end{frame}

% ----------------------------
\begin{frame}{General Requirements}
\begin{itemize}
\item Security
 \begin{itemize}
 \item Ensure Update Integrity
 \item Prevent Malicious Code Injection
 \item Usage of Encryption Standards
 \end{itemize}
\item Reliability
 \begin{itemize}
 \item Handle failed or incomplete Updates
 \end{itemize}
\item Flexibility
 \begin{itemize}
 \item Adaptable to changing Needs
 \item Adaptable to Target Requirements
 \item Adaptable to System Environment
 \end{itemize}
\item Scalability
 \begin{itemize}
 \item Number of Targets
 \item Target Size
 \item Target Connectivity
 \end{itemize}
\end{itemize}
\end{frame}

% ----------------------------
\subsection{Redundant System}

% ----------------------------
\begin{frame}{Overview}
\begin{center}
\includegraphics[height=0.7\textheight]{images/update_redundant_overview.png}
\end{center}
\end{frame}

% ----------------------------
\begin{frame}{Process Update}
\begin{center}
\includegraphics[width=5cm]{images/update_redundant_upd_process.png}
\end{center}
\end{frame}

% ----------------------------
\begin{frame}{Confirm Update}
\begin{center}
\includegraphics[width=5cm]{images/update_redundant_upd_confirm.png}
\end{center}
\end{frame}

% ----------------------------
\begin{frame}{Features}
\begin{itemize}
\item Always working (and updateable) System
\item Single Root-Filesystem Layout
\item Single Reboot per Update
\item Pros:
 \begin{itemize}
 \item Fallback: Production Environment
 \item only one Reboot per Update required
 \item better Integration with Application
 \end{itemize}
\item Cons:
 \begin{itemize}
 \item Space Requirements
 \end{itemize}
\end{itemize}
\end{frame}

% ----------------------------
\subsection{Rescue System}

% ----------------------------
\begin{frame}{Overview}
\begin{center}
\includegraphics[height=0.7\textheight]{images/update_rescue_overview.png}
\end{center}
\end{frame}

% ----------------------------
\begin{frame}{Prepare Update}
\begin{center}
\includegraphics[width=5cm]{images/update_rescue_upd_prepare.png}
\end{center}
\end{frame}

% ----------------------------
\begin{frame}{Process Update}
\begin{center}
\includegraphics[width=5cm]{images/update_rescue_upd_process.png}
\end{center}
\end{frame}

% ----------------------------
\begin{frame}{Confirm Update}
\begin{center}
\includegraphics[width=5cm]{images/update_rescue_upd_confirm.png}
\end{center}
\end{frame}

% ----------------------------
\begin{frame}{Features}
\begin{itemize}
\item Always updateable System
\item Separate Root-Filesystem Layout
\item Full Linux functionality (NAND, USB, WiFi, etc) for Rescue
\item Pros:
 \begin{itemize}
 \item Space Requirements
 \item Restricted HW Access in (connected) Production System
 \item Full HW Access in (disconnected) Rescue System
 \end{itemize}
\item Cons.:
 \begin{itemize}
 \item two Reboots per Update
 \item no/reduced Application Support during Update
 \item no Fallback to working System
 \end{itemize}
\end{itemize}
\end{frame}
