From 92ce02814205f1276dcfe94d49874719748360bb Mon Sep 17 00:00:00 2001
From: Jan Altenberg <jan@linutronix.de>
Date: Wed, 20 Feb 2013 11:46:30 +0100
Subject: some basic description about SystemV, upstart and systemd

---
 .../pres_boot-process-basics_de.tex                | 156 +++++++++++++++++++++
 1 file changed, 156 insertions(+)
 create mode 100644 linux-basics/boot-process-basics/pres_boot-process-basics_de.tex

(limited to 'linux-basics/boot-process-basics/pres_boot-process-basics_de.tex')

diff --git a/linux-basics/boot-process-basics/pres_boot-process-basics_de.tex b/linux-basics/boot-process-basics/pres_boot-process-basics_de.tex
new file mode 100644
index 0000000..6175d86
--- /dev/null
+++ b/linux-basics/boot-process-basics/pres_boot-process-basics_de.tex
@@ -0,0 +1,156 @@
+\input{configpres}
+
+\title{Der Linux-Boot-Prozess}
+\maketitle
+
+\begin{frame}
+\frametitle{Komponenten des Bootprozesses}
+\begin{itemize}
+\item Bootloader
+\item Linux
+\item ''Userspace''
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Ablauf des Bootprozesses}
+\begin{enumerate}
+\item Bootloader initialisiert Hardware
+\item Bootloader reloziert Kernel
+\item Bootloader übergibt Parameter und startet Kernel
+\item Linux bootet
+\item Linux Kernel bindet RFS ein
+\item Linux Kernel startet ersten Prozeß (/sbin/init, /linuxrc, oder mit init= spezifizierter Prozeß)
+\end{enumerate}
+\end{frame}
+
+\begin{frame}
+\frametitle{Das INIT System}
+\begin{itemize}
+\item System V Init (z.B. Debian)
+\item Upstart (Ubuntu)
+\item Systemd (z.B. Fedora)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{System V Init}
+\begin{itemize}
+\item Verhalten in /etc/inittab definiert
+\item Startscripte in /etc/init.d
+\item Aufteilung in sogenannte Runlevels
+\item Runlevel beschreiben verschiedene Systemzustände (Shutdown, Single-User, Multi-User mit / ohne Netzwerk, ...)
+\item System V kennt keine Abhängigkeiten, sequentielles Ausführen der Startscripte
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Upstart}
+\begin{itemize}
+\item Ereignisgesteuert
+\item Kein /etc/inittab !!
+\item Konfigurationsdateien in /etc/init/, Beispiel:
+\begin{verbatim}
+start in stopped rc RUNLEVEL=[2345]
+stop on runlevel [!2345]
+respawn
+exec /sbin/getty -8 38400 tty1
+\end{verbatim}
+\item Upstart benötigt Runlevel, bildet aus Kompatibilitätsgründen aber Runlevel nach
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Upstart: Erweitertes Beispiel}
+\begin{verbatim}
+# /etc/init/smbd.conf
+description "SMB/CIFS File Server"
+author      "Steve Langasek"
+
+start on (local-filesystems and net-device-up)
+stop on runlevel [!2345]
+
+respawn
+[...]
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Upstart: Erweitertes Beispiel}
+\begin{verbatim}
+# /etc/init/network-interface.conf
+description     "configure network device"
+
+emits net-device-up
+emits net-device-down
+[...]
+\end{verbatim}
+\end{frame}
+
+\begin{frame}
+\frametitle{Systemd}
+\begin{itemize}
+\item Kann Prozesse parallel starten (ohne explizite Konfiguration der Abhängigkeiten):
+\begin{itemize}
+\item Legt Sockets zur Kommunikation der zu startenden Prozesse an
+\item Dorthin geschriebene Daten werden so lange gepuffert, bis der zu startende Prozeß diese entgegennehmen kann
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Systemd}
+\begin{itemize}
+\item Konfiguration durch einzelne Textdateien und nicht durch Shellscripte
+\item Aktionen werden basierend von diesen Konfigurationen von Systemd (Linux-Executable) ausgeführt. Dies vermeidet das Starten vieler einzelner Shell-Instanzen.
+\item Administraion mittels systemctl
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Systemd}
+\begin{itemize}
+\item Targets übernehmen die Rolle von Runleveln (z.B. Runlevel 0 == poweroff.target)
+\item Mehrere Targets können gleichzeitig aktiv sein
+\item Konfigurationsdateien in /etc/systemd und /lib/systemd
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Systemd}
+\begin{itemize}
+\item Kompatibel zu System V Init. Skripte, die in /etc/init.d liegen, werden wie gewohnt gestartet
+\item Verwendet ''Control Groups'' zur Überwachung / Ausführung von Prozessen (daher mind. Kernel 2.6.24; und CGROUPS in .config aktivieren!!)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Aufgaben des Bootloaders}
+\begin{itemize}
+\item Low-Level-Initialisierung:
+\item Clocks (CPU, PLLs, Peripherie...)
+\item Speicher (DRAM-Controller, NAND-Controller...)
+\item serielle Schnittstelle
+\item Parameterübergabe an den Linux Kernel
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Der Linux Kernel}
+\begin{itemize}
+\item Setzt Interrupts auf (z.B. Timer Interrupt)
+\item Lädt Treiber, initialisiert Hardware
+\item Mountet ''root filesystem'' nach /
+\item Startet ersten Prozeß
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{Quellen}
+\begin{thebibliography}{1}
+\bibitem{kof} Linux 2012, Michael Kofler, PEARSON Verlag
+\bibitem{heise} http://www.heise.de/open/artikel/Das-Init-System-Systemd-Teil-1-1563259.html 
+\end{thebibliography}
+\end{frame}
+
+\input{tailpres}
-- 
cgit v1.2.3

