diff options
| author | Manuel Traut <manut@mecka.net> | 2013-03-10 12:13:49 +0100 |
|---|---|---|
| committer | Manuel Traut <manut@mecka.net> | 2013-03-10 12:13:49 +0100 |
| commit | 9c0f862749f30800837a45aff5abdcb529867dbc (patch) | |
| tree | b0ca51fff64f12fac03aea4afaa1fa722376844b /linux-basics/boot-process-basics | |
| parent | 33b79c725448efd2c9a72e2ae9a1fb04270492f5 (diff) | |
| parent | cea5039322781f6085dd47954af5584ca3f78911 (diff) | |
Merge branch 'schulung'
updates from current linutronix schulung.git
Conflicts:
Makefile
configpres.tex
flash-memory/ubi/handout_ubi_de.tex
handout.tex
index.txt
pres_master.tex
vorl.tex
vorl1.tex
vorl2.tex
vorl3.tex
vorl4.tex
vorl5.tex
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'linux-basics/boot-process-basics')
| -rw-r--r-- | linux-basics/boot-process-basics/Makefile | 9 | ||||
| -rw-r--r-- | linux-basics/boot-process-basics/pres_boot-process-basics_de.tex | 156 |
2 files changed, 165 insertions, 0 deletions
diff --git a/linux-basics/boot-process-basics/Makefile b/linux-basics/boot-process-basics/Makefile new file mode 100644 index 0000000..d641258 --- /dev/null +++ b/linux-basics/boot-process-basics/Makefile @@ -0,0 +1,9 @@ +all: + for pdf in `ls -1 *.tex` ; do \ + TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \ + TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \ + done + +clean: + rm -f *.aux *.log *.pdf *.log *.snm *.toc *.vrb *.nav *.out + 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} |
