From 6ed6241709e30d7b5a91673c95a86a594d09c75f Mon Sep 17 00:00:00 2001
From: Manuel Traut <manut@mecka.net>
Date: Mon, 7 Feb 2011 19:31:55 +0100
Subject: added pres_cpu-arch template

Signed-off-by: Manuel Traut <manut@mecka.net>
---
 basics/cpu-arch/pres_cpu-arch.tex | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100644 basics/cpu-arch/pres_cpu-arch.tex

(limited to 'basics/cpu-arch/pres_cpu-arch.tex')

diff --git a/basics/cpu-arch/pres_cpu-arch.tex b/basics/cpu-arch/pres_cpu-arch.tex
new file mode 100644
index 0000000..805dca1
--- /dev/null
+++ b/basics/cpu-arch/pres_cpu-arch.tex
@@ -0,0 +1,36 @@
+\input{configpres}
+
+\subsection{CPU Architekturen}
+
+\title{\lq CPU Architekturen\rq}
+\maketitle
+
+\begin{frame}
+\frametitle{Übersicht}
+\tableofcontents
+\end{frame}
+
+\subsubsection{8, 16, 32, \dots bit?}
+\begin{frame}
+\frametitle{8 Bit}
+blubber
+\end{frame}
+
+\subsubsection{Memory Management Unit}
+
+\begin{frame}[containsverbatim]
+\frametitle{Memory Managemenut Unit (MMU)}
+\begin{itemize}
+\item blurb 
+\end{itemize}
+\end{frame}
+
+\subsubsection{ARM, PowerPC / CELL, x86}
+\begin{frame}[containsverbatim]
+\frametitle{ARM}
+\begin{enumerate}
+\item v1
+\end{enumerate}
+\end{frame}
+
+\input{tailpres}
-- 
cgit v1.2.3


From 6b6e2af669902e422c8703a094d811befb66a94e Mon Sep 17 00:00:00 2001
From: Manuel Traut <manut@mecka.net>
Date: Tue, 8 Feb 2011 00:11:08 +0100
Subject: updated pres_cpu-arch - still some things to do..

Signed-off-by: Manuel Traut <manut@mecka.net>
---
 basics/cpu-arch/pres_cpu-arch.tex | 149 ++++++++++++++++++++++++++++++++++++--
 basics/section.tex                |   4 +-
 2 files changed, 146 insertions(+), 7 deletions(-)

(limited to 'basics/cpu-arch/pres_cpu-arch.tex')

diff --git a/basics/cpu-arch/pres_cpu-arch.tex b/basics/cpu-arch/pres_cpu-arch.tex
index 805dca1..70f2bcc 100644
--- a/basics/cpu-arch/pres_cpu-arch.tex
+++ b/basics/cpu-arch/pres_cpu-arch.tex
@@ -1,8 +1,8 @@
 \input{configpres}
 
-\subsection{CPU Architekturen}
+\subsection{Prozessor Architekturen}
 
-\title{\lq CPU Architekturen\rq}
+\title{\lq Prozessor Architekturen\rq}
 \maketitle
 
 \begin{frame}
@@ -10,15 +10,143 @@
 \tableofcontents
 \end{frame}
 
+\subsubsection{Prozessoren}
+\begin{frame}
+\frametitle{Aufbau}
+Register - Rechenwerk - Befehlsdekoder - Bus - Cache (optional)
+
+\begin{description}
+\item[Register] Konfiguration, Zwischenspeicher, Operanden, Stack, I/O
+\item[Rechenwerk] mind. eine ALU (Arithmetic Logical Unit: ADD, NOT, AND, \dots)
+\end{description}
+\end{frame}
+
+\begin{frame}
+\frametitle{Aufbau}
+Register - Rechenwerk - Befehlsdekoder - Bus - Cache (optional)
+
+\begin{description}
+\item[Befehlsdekoder]
+	\begin{itemize}
+		\item FETCH - Befehl (OPCODE) aus RAM / ROM laden 
+		  (Prefetch - laden mehrere Befehle in ein Prefetch Register)
+		\item DECODE - OPCODE in ALU-Schaltinstruktionen wandeln
+		\item FETCH - Operanden (OPERANDS) aus RAM / ROM laden
+		\item EXECUTE
+		\item WRITE BACK - schreiben des Ergebnises in RAM / ROM (OPCOUNTER++)
+	\end{itemize}
+\item[Bus] Adressbus (zentraler Adressdecoder -> Chip Select), Datenbus
+\end{description}
+\end{frame}
+
+\begin{frame}
+\frametitle{Aufbau}
+Register - Rechenwerk - Befehlsdekoder - Bus - Cache (optional)
+
+\begin{description}
+\item[Cache] beinhaltet zuletzt verwendete Daten
+	\begin{itemize}
+		\item L1 im Kern / wenige KB gross / am Schnellsten abrufbar
+		\item L2 nicht im Kern / wenige MB gross
+		\item L3 von allen Kernen geteilt / einige MB gross
+	\end{itemize}
+\end{description}
+\end{frame}
+
+\subsubsection{OPCODE vs Assembler}
+\begin{frame}[containsverbatim]
+\frametitle{OPCODE vs Assembler}
+\begin{description}
+\item[OPCODES] sind immer Prozessorspezifisch
+\item[OPCODE] eindeutige Nummer eines Befehls
+\item[Befehlssatz] Summe aller OPCODES eines Prozessors
+\item[Mnemonic] lesbare Abk. eines OPCODES -> Assemblerbefehl
+\end{description}
+
+Beispiel 8086:
+\begin{verbatim}
+OPCODE: 0130
+Mnemonic: INC
+SI (Sourceindexregister) wird um den Wert eins inkrementiert.
+\end{verbatim}
+\end{frame}
+
+\begin{frame}
+\frametitle{Aufgabe}
+\begin{itemize}
+\item Schreiben Sie ein sehr einfaches C Programm
+\item Disassemblen Sie das Programm
+\item Betrachten Sie das Programm in einem HEX Editor und versuchen Sie die OPCODES zu finden
+\end{itemize}
+\end{frame}
+
+\begin{frame}[containsverbatim]
+\frametitle{Disassemble}
+\begin{verbatim}
+simple.c:
+int main(int argc, char **argv)
+{
+	return argc++;
+}
+
+$ gcc -o simple.c
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[containsverbatim]
+\frametitle{Disassemble}
+\begin{verbatim}
+$ objdump -d a.out
+
+00000000004004b4 <main>:
+  4004b4:       55                      push   %rbp
+  4004b5:       48 89 e5                mov    %rsp,%rbp
+  4004b8:       89 7d fc                mov    %edi,-0x4(%rbp)
+  4004bb:       48 89 75 f0             mov    %rsi,-0x10(%rbp)
+  4004bf:       8b 45 fc                mov    -0x4(%rbp),%eax
+  4004c2:       83 45 fc 01             addl   $0x1,-0x4(%rbp)
+  4004c6:       c9                      leaveq 
+  4004c7:       c3                      retq   
+  4004c8:       90                      nop
+  4004c9:       90                      nop
+  4004ca:       90                      nop
+  4004cb:       90                      nop
+  4004cc:       90                      nop
+  4004cd:       90                      nop
+  4004ce:       90                      nop
+  4004cf:       90                      nop
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[containsverbatim]
+\frametitle{Disassemble}
+\begin{verbatim}
+$ hexdump a.out | less
+
+00004b0 c3c9 9090 4855 e589 7d89 48fc 7589 8bf0
+00004c0 fc45 4583 01fc c3c9 9090 9090 9090 9090
+00004d0 c3f3 0ceb 9090 9090 9090 9090 9090 9090
+00004e0 8948 246c 4cd8 6489 e024 8d48 332d 2009
+00004f0 4c00 258d 092c 0020 894c 246c 4ce8 7489
+0000500 f024 894c 247c 48f8 5c89 d024 8348 38ec
+\end{verbatim}
+\end{frame}
+
 \subsubsection{8, 16, 32, \dots bit?}
 \begin{frame}
-\frametitle{8 Bit}
-blubber
+\frametitle{n-Bit-Architektur}
+Pro Takt werden max. n-Bit Daten verarbeitet.
+
+Hieraus leitet sich i.d.R. auch die Breite der internen Register, sowie des
+Adress- und des Datenbusses ab.
+
+Vorteil: Adressraum / Datenbreite
+Nachteil: Speicherbedarf Pointer
 \end{frame}
 
 \subsubsection{Memory Management Unit}
 
-\begin{frame}[containsverbatim]
+\begin{frame}
 \frametitle{Memory Managemenut Unit (MMU)}
 \begin{itemize}
 \item blurb 
@@ -26,11 +154,20 @@ blubber
 \end{frame}
 
 \subsubsection{ARM, PowerPC / CELL, x86}
-\begin{frame}[containsverbatim]
+\begin{frame}
 \frametitle{ARM}
 \begin{enumerate}
 \item v1
 \end{enumerate}
 \end{frame}
 
+\subsubsection{Voraussetzungen f\"ur Linux}
+\begin{frame}
+Bit ?
+
+MMU ?
+
+ARCH Support ?
+\end{frame}
+
 \input{tailpres}
diff --git a/basics/section.tex b/basics/section.tex
index e447d0f..547ad23 100644
--- a/basics/section.tex
+++ b/basics/section.tex
@@ -1 +1,3 @@
-\section{Applikationsentwicklung}
+\section{verschiedene Grundlagen}
+
+%In diesem Kapitel werden Grundlagen behandelt, welche nicht direkt mit Linux zu tun haben, aber f\"ur ein allgemeines Verst\"andnis notwendig sind.
-- 
cgit v1.2.3


From a67b9e7e770e921a021e22deec3d1f6c24b0c6df Mon Sep 17 00:00:00 2001
From: Manuel Traut <manut@mecka.net>
Date: Wed, 9 Feb 2011 01:28:15 +0100
Subject: update basics/cpu-arch

- thx to jan, for the arm arch slides
- short mmu introduction

Signed-off-by: Manuel Traut <manut@mecka.net>
---
 basics/cpu-arch/pres_cpu-arch.tex | 122 ++++++++++++++++++++++++++++++++++++--
 images/caches.dia                 | Bin 0 -> 2379 bytes
 images/caches.png                 | Bin 0 -> 5870 bytes
 images/fcse.dia                   | Bin 0 -> 1175 bytes
 images/fcse.png                   | Bin 0 -> 4187 bytes
 5 files changed, 117 insertions(+), 5 deletions(-)
 create mode 100644 images/caches.dia
 create mode 100644 images/caches.png
 create mode 100644 images/fcse.dia
 create mode 100644 images/fcse.png

(limited to 'basics/cpu-arch/pres_cpu-arch.tex')

diff --git a/basics/cpu-arch/pres_cpu-arch.tex b/basics/cpu-arch/pres_cpu-arch.tex
index 70f2bcc..cbbada3 100644
--- a/basics/cpu-arch/pres_cpu-arch.tex
+++ b/basics/cpu-arch/pres_cpu-arch.tex
@@ -149,16 +149,128 @@ Nachteil: Speicherbedarf Pointer
 \begin{frame}
 \frametitle{Memory Managemenut Unit (MMU)}
 \begin{itemize}
-\item blurb 
+\item Prozess sieht zusammenh\"angenden, konstanten, virtuellen Speicher
+\item Kernel programmiert den TLB (Translation Look-aside Buffer) der MMU
+\item Speicherzugriff auf virtuelle Adresse wird von der MMU in tats\"achliche,
+	physikalische Adresse \"ubersetzt
 \end{itemize}
 \end{frame}
 
 \subsubsection{ARM, PowerPC / CELL, x86}
+
+\begin{frame}
+\frametitle{ARM - Advanced RISC Machines Ltd.}
+\begin{itemize}
+\item erstellt CPU Design
+\item ARM Architektur:
+\begin{itemize}
+\item Handy, Smartphone, Nintendo DS, iPad, \dots
+\item RISC - schlanker, effizienter Befehlssatz
+\item LE / BE umschaltbar
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM9}
+\begin{itemize}
+\item 32-bit RISC CPU design
+\item ARM9T (based on ARMv4T)
+\item ARM9E (based on ARMv5TE, longer pipelines, enhanced instruction set)
+\end{itemize}
+\end{frame}
+
+\subsection{ARM: Xscale}
+\begin{frame}
+\frametitle{Xscale}
+\begin{itemize}
+\item Xscale is Marvell's implementation of the ARMv5 architecture
+\item The Xscale family consists of five different families:
+\begin{itemize}
+\item IXP (network processors)
+\item IXC (control plane processors)
+\item IOP (i/o processors)
+\item PXA (application processors)
+\item CE (consumer electronics processors)
+\end{itemize}
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM9 - Caches}
+\begin{itemize}
+\item V irtually I ndexed, V irtually T agged (VIVT)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: Caches}
+\begin{figure}[h]
+\centering
+\includegraphics[width=11cm]{images/caches.png}
+\label{img:caches}
+\end{figure}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM9 - Caches: Latency drawbacks}
+\begin{itemize}
+\item BUT: On Linux each process has its own virtual address space.
+\pause
+\item VIVT leads to a more frequent cache flushing
+\pause
+\item The cost of the cache flushing is about 1k - 18k CPU cycles
+\pause
+\item ''indirect cost'' up to 50k CPU cycles\\
+(200us on a 250MHz CPU!!)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM9 - Fast Context Switching Extension}
+\begin{figure}[h]
+\centering
+\includegraphics[width=11cm]{images/fcse.png}
+\label{img:fcse}
+\end{figure}
+\pause
+\begin{itemize}
+\item The first 32MB of the address space are augmented with the contents of the 7 bit
+PID register.
+\pause
+\item This leads to 128 x 32MB address spaces
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: ARM11}
+\begin{itemize}
+\item V irtually I ndexed, P hysically T agged caches (VIPT)
+\item High performance memory system
+\item Designed to run at high CPU frequencies
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{ARM: Cortex - The new generation of ARM CPUs}
+Splitted into three families:
+\begin{itemize}
+\item Cortex A: Application (variable caches, MMU / MPU)
+\item Cortex M: Microcontroller (no cache, MPU optional)
+\item Cortex R: Realtime (variable cache, MPU optional)
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{PowerPC}
+\end{frame}
+
+\begin{frame}
+\frametitle{CELL}
+\end{frame}
+
 \begin{frame}
-\frametitle{ARM}
-\begin{enumerate}
-\item v1
-\end{enumerate}
+\frametitle{x86}
 \end{frame}
 
 \subsubsection{Voraussetzungen f\"ur Linux}
diff --git a/images/caches.dia b/images/caches.dia
new file mode 100644
index 0000000..a990772
Binary files /dev/null and b/images/caches.dia differ
diff --git a/images/caches.png b/images/caches.png
new file mode 100644
index 0000000..37d266a
Binary files /dev/null and b/images/caches.png differ
diff --git a/images/fcse.dia b/images/fcse.dia
new file mode 100644
index 0000000..418be7d
Binary files /dev/null and b/images/fcse.dia differ
diff --git a/images/fcse.png b/images/fcse.png
new file mode 100644
index 0000000..85d6997
Binary files /dev/null and b/images/fcse.png differ
-- 
cgit v1.2.3


From dd7ffd32de0818d29fdc1a35386708da3746f5c8 Mon Sep 17 00:00:00 2001
From: Manuel Traut <manut@mecka.net>
Date: Mon, 21 Feb 2011 23:50:21 +0100
Subject: vorlesung1 ready :)

make vorlesung to build presentation and handout

Signed-off-by: Manuel Traut <manut@mecka.net>
---
 Makefile                                           | 24 +++++++-
 basics/cpu-arch/pres_cpu-arch.tex                  | 67 ++++++++++++++++++----
 confighandout.tex                                  | 13 -----
 handout1.tex                                       |  4 ++
 .../what-is-linux/handout_what-is-linux_de.tex     | 21 +++----
 .../what-is-linux/pres_what-is-linux_de.tex        |  2 +-
 tailhandout.tex                                    |  1 -
 vorl1.tex                                          |  6 ++
 8 files changed, 99 insertions(+), 39 deletions(-)
 create mode 100644 handout1.tex
 create mode 100644 vorl1.tex

(limited to 'basics/cpu-arch/pres_cpu-arch.tex')

diff --git a/Makefile b/Makefile
index 1ef20b1..dca9c35 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,28 @@ all clean::
 	rm -f *.blg
 	rm -f *.out
 	rm -f *.vrb
+
+vorlesung::
+	mv configpres.tex _configpres.tex
+	touch configpres.tex
+	mv tailpres.tex _tailpres.tex
+	touch tailpres.tex
+	pdflatex vorl1.tex
+	pdflatex vorl1.tex
+	rm configpres.tex tailpres.tex
+	mv _configpres.tex configpres.tex
+	mv _tailpres.tex tailpres.tex
+	mv confighandout.tex _confighandout.tex
+	touch confighandout.tex
+	mv tailhandout.tex _tailhandout.tex
+	touch tailhandout.tex
+	TEXINPUTS=`pwd`/wise:.:$(TEXINPUTS) pdflatex handout1.tex
+	TEXINPUTS=`pwd`/wise:.:$(TEXINPUTS) pdflatex handout1.tex
+	rm confighandout.tailhandout.tex
+	mv _confighandout.tex confighandout.tex
+	mv _tailhandout.tex tailhandout.tex
+
+
 pres::
 	mv configpres.tex _configpres.tex
 	touch configpres.tex
@@ -27,9 +49,9 @@ pres::
 	bibtex pres_master.aux
 	pdflatex pres_master.tex
 	pdflatex pres_master.tex
+	rm configpres.tex tailpres.tex
 	mv _configpres.tex configpres.tex
 	mv _tailpres.tex tailpres.tex
-	rm configpres.tex tailpres.tex
 book::
 	mv confighandout.tex _confighandout.tex
 	touch confighandout.tex
diff --git a/basics/cpu-arch/pres_cpu-arch.tex b/basics/cpu-arch/pres_cpu-arch.tex
index cbbada3..141c194 100644
--- a/basics/cpu-arch/pres_cpu-arch.tex
+++ b/basics/cpu-arch/pres_cpu-arch.tex
@@ -33,7 +33,7 @@ Register - Rechenwerk - Befehlsdekoder - Bus - Cache (optional)
 		\item DECODE - OPCODE in ALU-Schaltinstruktionen wandeln
 		\item FETCH - Operanden (OPERANDS) aus RAM / ROM laden
 		\item EXECUTE
-		\item WRITE BACK - schreiben des Ergebnises in RAM / ROM (OPCOUNTER++)
+		\item WRITE BACK - schreiben des Ergebnisses in RAM / ROM (OPCOUNTER++)
 	\end{itemize}
 \item[Bus] Adressbus (zentraler Adressdecoder -> Chip Select), Datenbus
 \end{description}
@@ -57,7 +57,7 @@ Register - Rechenwerk - Befehlsdekoder - Bus - Cache (optional)
 \begin{frame}[containsverbatim]
 \frametitle{OPCODE vs Assembler}
 \begin{description}
-\item[OPCODES] sind immer Prozessorspezifisch
+\item[OPCODES] sind immer prozessorspezifisch
 \item[OPCODE] eindeutige Nummer eines Befehls
 \item[Befehlssatz] Summe aller OPCODES eines Prozessors
 \item[Mnemonic] lesbare Abk. eines OPCODES -> Assemblerbefehl
@@ -147,7 +147,7 @@ Nachteil: Speicherbedarf Pointer
 \subsubsection{Memory Management Unit}
 
 \begin{frame}
-\frametitle{Memory Managemenut Unit (MMU)}
+\frametitle{Memory Management Unit (MMU)}
 \begin{itemize}
 \item Prozess sieht zusammenh\"angenden, konstanten, virtuellen Speicher
 \item Kernel programmiert den TLB (Translation Look-aside Buffer) der MMU
@@ -180,7 +180,6 @@ Nachteil: Speicherbedarf Pointer
 \end{itemize}
 \end{frame}
 
-\subsection{ARM: Xscale}
 \begin{frame}
 \frametitle{Xscale}
 \begin{itemize}
@@ -261,25 +260,73 @@ Splitted into three families:
 \end{itemize}
 \end{frame}
 
+\subsubsection{PowerPC}
 \begin{frame}
 \frametitle{PowerPC}
+\begin{itemize}
+\item 32 und 64 bit Versionen
+\item Big Endian (einige CPUs umschaltbar)
+\item Gleitkommazahlen: double, float
+\item dual cores und 2 CPU Betrieb möglich
+\end{itemize}
 \end{frame}
 
 \begin{frame}
-\frametitle{CELL}
+\frametitle{PowerPC: Einsatzgebiete}
+\begin{itemize}
+\item embedded Systeme
+\item Konsolen: GameCube, Wii, XBox 360
+\item frühere Apple Systeme (G4, G5)
+\item IBM System p: 1-64 Single/Quad Core CPUs (i5 OS, AIX, Linux)
+\item IBM Blades
+\end{itemize}
 \end{frame}
 
+\subsubsection{CELL}
 \begin{frame}
-\frametitle{x86}
+\frametitle{CELL}
+\begin{itemize}
+\item 64-bit PowerPC Kern:
+\begin{itemize}
+\item 2 Threads gleichzeitig
+\item 512kB L2 Cache
+\end{itemize}
+\end{itemize}
 \end{frame}
 
-\subsubsection{Voraussetzungen f\"ur Linux}
 \begin{frame}
-Bit ?
+\frametitle{CELL}
+\begin{itemize}
+\item 8 Synergistic Processing Units (SPU):
+\begin{itemize}
+\item 128 128 Bit Register
+\item Memory Flow Controller (DMA in Hauptspeicher, andere SPU)
+\item 256kB Speicher
+\end{itemize}
+\end{itemize}
+\end{frame}
 
-MMU ?
+\begin{frame}
+\frametitle{CELL}
+\begin{itemize}
+\item Element Interconnect Bus (EIB):
+\begin{itemize}
+\item 96 bytes / Takt
+\item 8 byte Zugriff je SPU / PPE
+\end{itemize}
+\item Einsatz: IBM Blades, PS3 (3.2 GHz, 7 SPEs), \dots
+\end{itemize}
+\end{frame}
 
-ARCH Support ?
+\subsubsection{Voraussetzungen f\"ur Linux}
+\begin{frame}
+\frametitle{Voraussetzungen f\"ur Linux}
+\begin{description}
+\item[Bit:] 32
+\item[MMU:] ja / ucLinux nein
+\item[ARCH:] gcc sollte verfügbar sein
+\item[RAM:] Größenordnung 2MB / Übung
+\end{description}
 \end{frame}
 
 \input{tailpres}
diff --git a/confighandout.tex b/confighandout.tex
index 963125a..e69de29 100644
--- a/confighandout.tex
+++ b/confighandout.tex
@@ -1,13 +0,0 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
-\lstset{keywordstyle=\color{blue}}
-
-\begin{document}
-
-% disables chapter, section and subsection numbering
-\setcounter{secnumdepth}{-1}
-
-\input{section}
diff --git a/handout1.tex b/handout1.tex
new file mode 100644
index 0000000..3306a88
--- /dev/null
+++ b/handout1.tex
@@ -0,0 +1,4 @@
+\input{configmasterhandout}
+\section{Grundlagen}
+\input{./linux-basics/what-is-linux/handout_what-is-linux_de.tex}
+\input{tailmasterhandout}
diff --git a/linux-basics/what-is-linux/handout_what-is-linux_de.tex b/linux-basics/what-is-linux/handout_what-is-linux_de.tex
index a6c3a8e..2ae9b03 100644
--- a/linux-basics/what-is-linux/handout_what-is-linux_de.tex
+++ b/linux-basics/what-is-linux/handout_what-is-linux_de.tex
@@ -1,13 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
+\input{confighandout}
 
-\begin{document}
+\subsection{Was ist Linux?}
 
-\section*{Was ist Linux?}
-
-\subsection*{Geschichtlicher Hintergrund}
+\subsubsection{Geschichtlicher Hintergrund}
 
 Frühe elektronische Rechner, wie der in Abbildung \ref{img:eniac} gezeigte
 ENIAC, waren nicht frei programmierbar. Sie wurden für einen bestimmten
@@ -112,7 +107,7 @@ Der Begriff ``Linux'' bezeichnet also streng genommen nur den Kernel.
 Allerdings hat es sich mittlerweile im Sprachgebrauch eingebürgert, das
 komplette System aus Programmen und Kernel als ``Linux'' zu bezeichnen.
 
-\subsection*{Ein Betriebssystem für Großrechner}
+\subsubsection{Ein Betriebssystem für Großrechner}
 
 Unix war von Anfang an ein Betriebssystem, das für den Betrieb auf
 Großrechnern ausgelegt ist. Das verwundert nicht weiter, den zur Zeit
@@ -133,7 +128,7 @@ selben Source-Code kann ein Kernel für einen Server mit 1024 CPU-Kernen
 oder ein Kernel für ein kleines Embedded-System konfiguriert und erzeugt
 werden.
 
-\subsection*{Multiuser-Betrieb}
+\subsubsection{Multiuser-Betrieb}
 
 Eine weitere wichtige Eigenschaft von Linux, die sich aus der
 Großrechner-Tradition ergibt, ist die Multitasking- und Multiuser-Fähigkeit.
@@ -159,7 +154,7 @@ von Linux hier ebenfalls von Vorteil. Proprietäre Betriebssysteme haben
 schon aus Lizenzgründen ein Problem damit, wenn mehrere Anwender einen
 Rechner nutzen können.
 
-\subsection*{Login}
+\subsubsection{Login}
 
 Beim Hochfahren eines Linux-Systems werden üblicherweise alle für den
 Systemstart vorgesehenen Programme automatisch gestartet, ohne dass dazu
@@ -207,7 +202,7 @@ und nicht etwa auf dem Rechner, an dem Sie gerade sitzen.
 
 \newpage
 
-\subsection*{Kontrollfragen}
+\subsubsection{Kontrollfragen}
 
 \begin{enumerate}
 \item Wie alt ist das Unix-Konzept mittlerweile?
@@ -217,4 +212,4 @@ und nicht etwa auf dem Rechner, an dem Sie gerade sitzen.
 \item Was passiert beim Login-Vorgang?
 \end{enumerate}
 
-\end{document}
+\input{tailhandout}
diff --git a/linux-basics/what-is-linux/pres_what-is-linux_de.tex b/linux-basics/what-is-linux/pres_what-is-linux_de.tex
index 4283349..873d807 100644
--- a/linux-basics/what-is-linux/pres_what-is-linux_de.tex
+++ b/linux-basics/what-is-linux/pres_what-is-linux_de.tex
@@ -93,7 +93,7 @@ komplette Liste: http://directory.fsf.org/GNU/
 \begin{itemize}
 \item wenig Bandbreite notwendig
 \item scriptbar
-\item resourcenschonend
+\item ressourcenschonend
 \end{itemize}
 \end{description}
 \end{frame}
diff --git a/tailhandout.tex b/tailhandout.tex
index 6b47932..e69de29 100644
--- a/tailhandout.tex
+++ b/tailhandout.tex
@@ -1 +0,0 @@
-\end{document}
diff --git a/vorl1.tex b/vorl1.tex
new file mode 100644
index 0000000..cd6179a
--- /dev/null
+++ b/vorl1.tex
@@ -0,0 +1,6 @@
+\input{configmasterpres}
+\input{./linux-basics/section}
+\input{./linux-basics/what-is-linux/pres_what-is-linux_de.tex}
+\input{./basics/section}
+\input{./basics/cpu-arch/pres_cpu-arch.tex}
+\input{tailmasterpres}
-- 
cgit v1.2.3

