about summary refs log blame commit diff
path: root/slides.tex
blob: 06e0981249e3984e589d594711804f6c2f9a1184 (plain) (tree)
1
2
3
4
5


                            

                                      










                                         


                                                                                        

                                                                     
               

           








                                                                         

           
















                                                           

           





































                                                           






                       
\documentclass[14pt]{beamer}
\usetheme{metropolis}

\newenvironment{code}{\ttfamily}{\par}

\title{systemd}
\subtitle{The standard Linux init system}

\begin{document}
\metroset{titleformat frame=allcaps}

\maketitle

\section{Introduction}

\begin{frame}{What is an init system?}
  An init system is the first process (PID 1) started in a Unix like system. It handles:

  \begin{itemize}
  \item Starting system processes and services to prepare environment
  \item Adopting and ``reaping'' orphaned processes
  \end{itemize}
\end{frame}

\begin{frame}{Classical init systems}
  Init systems before systemd - such as SysVinit - were very simple.

  \begin{itemize}
  \item Services and processes to run are organised into ``init scripts''
  \item Scripts are linked to specific runlevels
  \item Init system is configured to boot into a runlevel
  \end{itemize}

\end{frame}

\section{systemd}

\begin{frame}{Can we do better?}
  \begin{itemize}
  \item ``legacy'' init systems have a lot of drawbacks
  \item Apple is taking a different approach on OS X
  \item Systemd project was founded to address these issues
  \end{itemize}
\end{frame}

\begin{frame}{Systemd design goals}
  \begin{itemize}
  \item Expressing service dependencies
  \item Monitoring service status
  \item Enable parallel service startups
  \item Ease of use
  \end{itemize}
\end{frame}

\begin{frame}{Systemd - the basics}
  \begin{itemize}
    \item No scripts are executed, only declarative units
    \item Units have explicit dependencies
    \item Processes are supervised
    \item cgroups are utilised to apply resource limits
    \item Service logs are managed and centrally queryable
    \item Much more!
  \end{itemize}
\end{frame}

\begin{frame}{Systemd units}
  Units specify how and what to start. Several types exist:
  \begin{code}
    \small
    \begin{columns}[T,onlytextwidth]
      \column{0.5\textwidth}
        \begin{itemize}
          \item systemd.service
          \item systemd.target
          \item systemd.timer
          \item systemd.path
          \item systemd.socket
        \end{itemize}
      \column{0.5\textwidth}
        \begin{itemize}
          \item systemd.device
          \item systemd.mount
          \item systemd.swap
          \item systemd.slice
        \end{itemize}
    \end{columns}
  \end{code}
\end{frame}

\begin{frame}{}
\end{frame}

\section{Demo}

\section{Controversies}

\section{Questions?}

\end{document}