From 6ed6241709e30d7b5a91673c95a86a594d09c75f Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Mon, 7 Feb 2011 19:31:55 +0100 Subject: added pres_cpu-arch template Signed-off-by: Manuel Traut --- 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 Date: Tue, 8 Feb 2011 00:11:08 +0100 Subject: updated pres_cpu-arch - still some things to do.. Signed-off-by: Manuel Traut --- 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
: + 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 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 --- 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 Date: Mon, 21 Feb 2011 23:50:21 +0100 Subject: vorlesung1 ready :) make vorlesung to build presentation and handout Signed-off-by: Manuel Traut --- 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