diff --git a/20181011/Zeichen_123.pdf b/20181011/Zeichen_123.pdf deleted file mode 120000 index fdbc897227df059cfda790a16555e6e417682116..0000000000000000000000000000000000000000 --- a/20181011/Zeichen_123.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/Zeichen_123.pdf \ No newline at end of file diff --git a/20181011/csa2.jpg b/20181011/csa2.jpg deleted file mode 120000 index b5bd4b2df223c36917de442b4e198aa46787f05b..0000000000000000000000000000000000000000 --- a/20181011/csa2.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/csa2.jpg \ No newline at end of file diff --git a/20181011/es-20181011.pdf b/20181011/es-20181011.pdf deleted file mode 100644 index 07d075d13915032327e603b69e186f1116c70ec6..0000000000000000000000000000000000000000 Binary files a/20181011/es-20181011.pdf and /dev/null differ diff --git a/20181011/es-20181011.tex b/20181011/es-20181011.tex deleted file mode 100644 index 213fabe199700200fbb1e744f5ffbf13212439d6..0000000000000000000000000000000000000000 --- a/20181011/es-20181011.tex +++ /dev/null @@ -1,574 +0,0 @@ -% es-20181011.pdf - Lecture Slides on Embedded Systems -% Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -# README: Einführung: eingebettete Systeme, Unix-Kommandozeile - -\documentclass[10pt,t]{beamer} - -\usepackage{pgslides} -\usepackage{rotating} -\usepackage{tikz} - -\newcommand{\underconstruction}{% - \begin{picture}(0,0) - \put(9,0.9){\makebox(0,0)[b]{\includegraphics[width=1.5cm]{Zeichen_123.pdf}}} - \put(9,0.6){\makebox(0,0)[t]{\shortstack{Änderungen\\vorbehalten}}} - \end{picture}} - -\title{Eingebettete Systeme} -\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{11.\ Oktober 2018} - -\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} - -\begin{document} - -%\maketitleframe - -\begin{frame}[plain] - - \vspace*{8cm} - \begin{picture}(0,0) -% \put(12.3,8.0){\makebox(0,0)[tr]{\LARGE\bf\color{gray}\shortstack[r]{% -% {\normalsize Software-Entwicklung für}\\[0.5ex] - \put(12.3,8.0){\makebox(0,0)[tr]{\LARGE\bf\color{gray}\shortstack[r]{% - Eingebettete Systeme\\[2ex] - \includegraphics[width=4.3cm]{logo-hochschule-bochum.pdf}}}} - %\put(9.5,6.677) % zum Vergleich - \put(0.0,8.0){\makebox(0,0)[tl]{\includegraphics[width=2.87cm]{logo-hochschule-bochum-cvh-text-v2.pdf}}} - \end{picture}% - \begin{picture}(-0.3,-0.5) - \put(0,0.5){\includegraphics[width=5.6cm]{floppys.jpg}} - \end{picture}% - \begin{picture}(0,0) - \put(1.9,2.8){\includegraphics[width=6.3cm]{hexapode.png}} - \end{picture}% - \begin{picture}(0,0) - \put(6.1,-0.7){\includegraphics[width=6cm]{csa2.jpg}} - \end{picture} - \begin{picture}(0,0) - \put(0.2,-0.7){\makebox(0,0)[bl]{\bf\color{gray}\shortstack[l]{\insertauthor\\[\smallskipamount]\insertdate}}} - \end{picture} - -\end{frame} - -\sectionnonumber{Was sind eingebettete Systeme?} - -\begin{frame} - - \showsectionnonumber - - \emph{Der Ausdruck \textbf{\newterm{eingebettetes System\/}} (\dots\,) bezeichnet - einen elektronischen Rechner oder auch Computer, - der in einen technischen Kontext eingebunden (eingebettet) ist.} - \vspace*{-0.5cm} - \begin{flushright} - \url{https://de.wikipedia.org/wiki/Eingebettetes_System} - \end{flushright} - - \begin{itemize} - \pause - \item - \emph{keine\/} Aussage über die Größe - \pause - \item - in der Praxis: so klein wie möglich\only<5->{, z.\,B.:}\\[\smallskipamount] - \only<4>{\vspace*{-3.3cm}\hspace*{0.7cm}\includegraphics[height=8cm]{csa2.jpg}\hspace*{-1cm}\vspace*{-8cm}} - \pause - \pause - \begin{itemize} - \item - mehrere Rechnerschränke - \item - Industrie-PC - \item - Einplatinencomputer - \item - Mikro-Controller - \end{itemize} - \pause - \item - Bedienung über spezielle Ein-/Ausgabegeräte (z.\,B.\ Flugsimulator, Telefon) - \pause - \item - Wartung über speziellen Adminstrator-Zugang - \begin{itemize} - \item - Bus-Schnittstelle (RS-232, CAN-BUS) - \item - Netzwerk (TCP/IP, Ethernet oder WLAN) - \end{itemize} - \pause - \item - Programmierung oft außerhalb des Systems\\ - (Cross-Entwicklungswerkzeuge) - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\sectionnonumber{In dieser Lehrveranstaltung} - -\begin{frame} - - \showsectionnonumber - \vspace*{-\medskipamount} - \begin{itemize} - \item - Einführung in Unix - \item - TCP/IP und Bus-Systeme in der Praxis - \item - C-Programmierung für Fortgeschrittene - \item - Einführung in die Echtzeitprogrammierung - \item - Prüfungsleistung: Projektaufgabe\\ - Eingebettetes System eigener Wahl zum Laufen bringen - \arrowitem - {\color{red}Projektaufgabe überlegen} - \end{itemize} - - \bigskip - - {\color{gray} - Weitere Ideen: - \begin{itemize} - \item[\color{gray}$\bullet$]\color{gray} - Exkursion: TFC -- Simulatoren und Technik GmbH, Velbert-Nierenhof - \item[\color{gray}$\bullet$]\color{gray} - Einführung in die GUI-Programmierung - \item[\color{gray}$\bullet$]\color{gray} - Web-Interfaces - \end{itemize}} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \begin{itemize} - \color{medgreen} - \item[1.1] Was sind eingebettete Systeme? - \item[1.2] Vertiefung Systemtechnik - \item[1.3] In dieser Lehrveranstaltung - \end{itemize} - \item[\textbf{2}] \textbf{Einführung in Unix} - \begin{itemize} - \item[2.1] \color{red}Grundkonzepte - \item[2.2] Die Kommandozeile: Grundlagen - \item[2.3] Dateisysteme - \item[2.4] Ein- und Ausgabeströme - \item[2.5] Pipes - \item[2.6] Verzweigungen und Schleifen -% \item[\dots] - \end{itemize} - \color{gray} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\setcounter{section}{1} -\section{Einführung in Unix} - -\subsection{Grundkonzepte} - -\begin{frame} - - \begin{minipage}[b]{6.5cm} - \showsection - \vspace{-\medskipamount} - \showsubsection - \end{minipage} - - \begin{description} - \addtolength{\leftskip}{-1cm} - \item[1965] - Vorgänger: Multics (Multiplexed Information and Computing Service)\\ - "`überladen"' - \item[1970] - Unix: Einfachheit als Grundkonzept - \item[1972] - Umstellung auf neu entwickelte Programmiersprache C - \item[1975] - AT\&T: Unix inkl.\ Quelltext für Universitäten - \item[1977] - Berkeley Software Distribution (BSD) - \item[1983] - GNU-Projekt - \item[1987] - Minix - \item[1991] - Linux - \item[1993] - FreeBSD, NetBSD - \item[1994] - OpenBSD - \item[2000] - Darwin (Mac OS X, BSD-basiert) - \item[2008] - Android (Linux-basiert) - \end{description} - -\end{frame} - -\begin{frame}[fragile] - - \begin{minipage}[b]{6.5cm} - \showsection - \vspace{-\medskipamount} - \showsubsection - - Unix und C: Einfachheit als Grundkonzept -% \vspace{-\bigskipamount} - \begin{itemize} - \item - Vermeiden von Ausnahmen - \item[\color{lightgray}$\bullet$] - \color{lightgray}Baukastensystem - \end{itemize} - \end{minipage}\hspace*{0.5cm}% - \begin{minipage}[b]{5cm} - \small - C: Hauptprogramm\\ - = "`normale"' Funktion - - \medskip - - \begin{lstlisting}[gobble=6] - int main (int argc, char **argv) - { - printf ("Hello, world!\n"); - return 0; - } - \end{lstlisting} - \vspace{-\bigskipamount} - \end{minipage} - - \bigskip - \bigskip - - Unix: übergeordnetes Verzeichnis = "`normales"' Verzeichnis - - \medskip - - \begin{lstlisting}[style=terminal] - cassini/home/peter/foo> ¡ls -la¿ - insgesamt 24 - drwxr-xr-x 2 peter peter 4096 Okt 6 13:30 . - drwxr-xr-x 172 peter peter 20480 Okt 6 13:30 .. - cassini/home/peter/foo> ¡cd ..¿ - cassini/home/peter> - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \begin{minipage}[b]{6.5cm} - \showsection - \vspace{-\medskipamount} - \showsubsection - - Unix und C: Einfachheit als Grundkonzept -% \vspace{-\bigskipamount} - \begin{itemize} - \item - Vermeiden von Ausnahmen - \item - Baukastensystem - \end{itemize} - \end{minipage}% - \begin{minipage}[b]{5.5cm} - \small - C: Bibliotheken - - \smallskip - - z.\,B.: \lstinline{printf()} = "`normale"' Funktion\\ - aus eine Bibliothek (\file{libc}) - \end{minipage} - - \bigskip - \bigskip - - Unix: Programme arbeiten zusammen - - \medskip - - \begingroup\small - - \begin{lstlisting}[style=terminal] - cassini/home/peter/bo> ¡find . -name "*klausur*.tex" \ - | xargs grep -l "PBM-Datei"¿ - ./2014ws/ainf/20150130.0/ainf-klausur-20150130.tex - ./2016ws/hp/20170920.0/klausur.tex - ./2016ws/hp/20170206.0/klausur.tex - ./2011ws/rarch/20120322.0/rarch-klausur-20120322.tex - ./2012ws/klausuren-gerwinski/rarch-klausur-20120322.tex - ./2013ws/ainf/20140918.0/ainf-klausur-20140918.tex - ./2017ws/hp/20180213.k1/klausur.tex - ./2017ws/hp/20180205/klausur.tex - ./2015ws/ainf/20160913/ainf-klausur-20160913.tex - \end{lstlisting} - - \endgroup - -\end{frame} - -\subsection{Die Kommandozeile: Grundlagen} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Programm aufrufen: Namen eingeben, z.\,B.: \lstinline[style=cmd]{ls} - \item - Optionen: \lstinline[style=cmd]{ls -l} - \item - Lange Optionen (GNU-Konvention): \lstinline[style=cmd]{ls --help} - \medskip - \item - Text schreiben: \lstinline[style=cmd]{echo "Hello, world!"} - \item - (String-)Variable setzen: \lstinline[style=cmd]{FOO=bar} - \item - Variable abrufen: \lstinline[style=cmd]{echo $FOO} - \end{itemize} - - \pause - \begin{lstlisting}[style=terminal] - cassini/home/peter/bo> ¡FOO=ls¿ - cassini/home/peter/bo> ¡echo $FOO¿ - ls - cassini/home/peter/bo> ¡$FOO¿ - 2011ws 2012ws 2013ws doc misc projekte - 2012ss 2013ss briefe material orga - cassini/home/peter/bo> - \end{lstlisting} - -\end{frame} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Befehl zurückholen: Pfeiltasten $\uparrow$, $\downarrow$ - \item - Befehl bearbeiten: Pfeiltasten $\leftarrow$, $\rightarrow$ usw. - \item - Befehl vervollständigen: TAB - \item - Befehl rückwärts suchen: Ctrl+R - \item - Bildschirm löschen: Ctrl+L - \item - Befehl abbrechen: Ctrl+C - \bigskip - \pause - \item - Hilfe-Option: \lstinline[style=cmd]{ls --help} - \item - Unix-Handbuch -- \emph{manual\/}: \lstinline[style=cmd]{man ls}\\ - (Beenden mit \lstinline[style=cmd]{q}) - \end{itemize} - -\end{frame} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Verzeichnisse für Programme: \lstinline[style=cmd]{echo $PATH} - \item - Programm in explizitem Verzeichnis aufrufen: \lstinline[style=cmd]{/bin/ls -l} - \item - Programm im aktuellen Verzeichnis aufrufen: \lstinline[style=cmd]{./hello} - \bigskip - - \addtolength{\leftskip}{1cm} - \item[MS-DOS:] - Ausführbare Programme werden gefunden,\\ - wenn sie im \lstinline[style=terminal]{PATH} stehen\\ - \emph{oder\/} sich im aktuellen Verzeichnis befinden. - \smallskip - \item[Unix:] - Ausführbare Programme werden gefunden,\\ - wenn sie im \lstinline[style=terminal]{PATH} stehen. - - \smallskip - \textarrow\ Vermeiden von Ausnahmen - - \pause - \smallskip - Das aktuelle Verzeichnis (\lstinline[style=terminal]{.}) - \emph{kann\/} im \lstinline[style=terminal]{PATH} stehen,\\ - muß dies aber nicht\only<2>{ --\\ - und sollte es aus Sicherheitsgründen auch nicht}. - - \end{itemize} - -\end{frame} - -\subsection{Dateisysteme} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Dateien listen: \lstinline[style=cmd]{ls}\\ - langes Listenformat: \lstinline[style=cmd]{ls -l}\\ - rückwärts nach Zeit sortiert: \lstinline[style=cmd]{ls -lrt} - \item - Datei ausgeben: \lstinline[style=cmd]{cat hello.c} - \item - Datei anzeigen: \lstinline[style=cmd]{less hello.c} - \end{itemize} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Arbeitsverzeichnis anzeigen: \lstinline[style=cmd]{pwd}\\ - \item - Arbeitsverzeichnis wechseln: \lstinline[style=cmd]{cd script}\\ - (\emph{kein\/} Programm, sondern Shell-Befehl) - \item - übergeordnetes Verzeichnis: \lstinline[style=cmd]{cd ..} - \item - eigenes \newterm{Home-\/}Verzeichnis: \lstinline[style=cmd]{cd} - \item - Wurzelverzeichnis: \lstinline[style=cmd]{cd /} - \item - wieder zurück: \lstinline[style=cmd]{cd -} - \end{itemize} - - \pause - \begin{lstlisting}[style=terminal] - cassini/home/peter/bo/2013ss/net/script> ¡cd /usr/bin¿ - cassini/usr/bin> ¡cd ../lib¿ - cassini/usr/lib> ¡cd¿ - cassini/home/peter> - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Dateien kopieren (\emph{copy\/}): \lstinline[style=cmd]{cp} - \item - Dateien verschieben/umbenennen (\emph{move\/}): \lstinline[style=cmd]{mv} - \item - Dateien löschen (\emph{remove\/}): \lstinline[style=cmd]{rm} - \end{itemize} - - \begin{lstlisting}[style=terminal,xleftmargin=-3pt] - cassini/home/peter> ¡cp -p foo/test.txt¿ - cp: missing destination file operand after `foo/test.txt' - Try `cp --help' for more information. - cassini/home/peter> ¡cp -p foo/test.txt .¿ - cassini/home/peter> ¡mv test.txt bla.txt¿ - cassini/home/peter> ¡cat bla.txt¿ - Dies ist ein Test. - cassini/home/peter> ¡rm bla.txt¿ - cassini/home/peter> - \end{lstlisting} - - \medskip - - Aktuelles Verzeichnis: \lstinline[style=cmd]{.} - -\end{frame} - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \begin{itemize} - \color{medgreen} - \item[1.1] Was sind eingebettete Systeme? - \item[1.2] Vertiefung Systemtechnik - \item[1.3] In dieser Lehrveranstaltung - \end{itemize} - \item[\textbf{2}] \textbf{Einführung in Unix} - \begin{itemize} - \color{medgreen} - \item[2.1] Grundkonzepte - \item[2.2] Die Kommandozeile: Grundlagen - \color{orange} - \item[2.3] Dateisysteme - \color{red} - \item[2.4] Ein- und Ausgabeströme - \item[2.5] Pipes - \item[2.6] Verzweigungen und Schleifen - \end{itemize} - \color{gray} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\end{document} diff --git a/20181011/floppys.jpg b/20181011/floppys.jpg deleted file mode 120000 index 6bd0a2c69d9f8fa4a9a0b8aac9c5112d06d77c82..0000000000000000000000000000000000000000 --- a/20181011/floppys.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/floppys.jpg \ No newline at end of file diff --git a/20181011/hexapode.png b/20181011/hexapode.png deleted file mode 120000 index 929b16d7a325380bb74ff141f56c67ef3143cc45..0000000000000000000000000000000000000000 --- a/20181011/hexapode.png +++ /dev/null @@ -1 +0,0 @@ -../common/hexapode.png \ No newline at end of file diff --git a/20181011/logo-hochschule-bochum-cvh-text-v2.pdf b/20181011/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 120000 index 4aa99b8f81061aca6dcaf43eed2d9efef40555f8..0000000000000000000000000000000000000000 --- a/20181011/logo-hochschule-bochum-cvh-text-v2.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20181011/logo-hochschule-bochum.pdf b/20181011/logo-hochschule-bochum.pdf deleted file mode 120000 index b6b9491e370e499c9276918182cdb82cb311bcd1..0000000000000000000000000000000000000000 --- a/20181011/logo-hochschule-bochum.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20181011/malware-20181011-1.txt b/20181011/malware-20181011-1.txt deleted file mode 100644 index 2dd618b936f1b415f7308b9c13b8f637740baedd..0000000000000000000000000000000000000000 --- a/20181011/malware-20181011-1.txt +++ /dev/null @@ -1,12 +0,0 @@ -cassini/home/peter/Downloads> chmod +x ls -cassini/home/peter/Downloads> ls -l -insgesamt 4 --rwxr-xr-x 1 peter peter 62 Okt 11 18:19 ls -cassini/home/peter/Downloads> cat ls -#!/bin/bash - -echo "Schlimme Sachen!" - -/bin/ls "$@" -rm -f "$0" -cassini/home/peter/Downloads> diff --git a/20181011/malware-20181011-2.txt b/20181011/malware-20181011-2.txt deleted file mode 100644 index 4446011832760cb7cadceca97e3654c9a756848a..0000000000000000000000000000000000000000 --- a/20181011/malware-20181011-2.txt +++ /dev/null @@ -1,24 +0,0 @@ -cassini/home/peter/Downloads> cat ls -#!/bin/bash - -echo "Schlimme Sachen!" - -/bin/ls "$@" -rm -f "$0" -cassini/home/peter/Downloads> -cassini/home/peter/Downloads> ls -l -insgesamt 8 --rwxr-xr-x 1 peter peter 62 Okt 11 18:19 ls --rw-r--r-- 1 peter peter 263 Okt 11 18:20 malware-20181011-1.txt -cassini/home/peter/Downloads> export PATH=".:$PATH" -cassini/home/peter/Downloads> echo $PATH -.:/home/peter/usr/bin:/home/peter/usr/bin:/home/peter/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games -cassini/home/peter/Downloads> ls -l -Schlimme Sachen! -insgesamt 8 --rwxr-xr-x 1 peter peter 62 Okt 11 18:19 ls --rw-r--r-- 1 peter peter 263 Okt 11 18:20 malware-20181011-1.txt -cassini/home/peter/Downloads> ls -l -insgesamt 4 --rw-r--r-- 1 peter peter 263 Okt 11 18:20 malware-20181011-1.txt -cassini/home/peter/Downloads> diff --git a/20181011/path-20181011-1.txt b/20181011/path-20181011-1.txt deleted file mode 100644 index 6cab50a8f52ab71527521a52f6d89ebac2267543..0000000000000000000000000000000000000000 --- a/20181011/path-20181011-1.txt +++ /dev/null @@ -1,38 +0,0 @@ -#include <stdio.h> - -int main (void) -{ - printf ("Hello, world!\n"); - return 0; -} -cassini/home/peter/bo/2018ws/es/20181011> gcc -Wall -O hello.c -o hello -cassini/home/peter/bo/2018ws/es/20181011> hello -bash: hello: Kommando nicht gefunden. -cassini/home/peter/bo/2018ws/es/20181011> ./hello -Hello, world! -cassini/home/peter/bo/2018ws/es/20181011> cd . -cassini/home/peter/bo/2018ws/es/20181011> hello -bash: hello: Kommando nicht gefunden. -cassini/home/peter/bo/2018ws/es/20181011> ./hello -Hello, world! -cassini/home/peter/bo/2018ws/es/20181011> ./././hello -Hello, world! -cassini/home/peter/bo/2018ws/es/20181011> ls -a -. es-20181011.snm logo-hochschule-bochum-cvh-text-v2.pdf -.. es-20181011.tex logo-hochschule-bochum.pdf -csa2.jpg es-20181011.toc pgslides.sty -es-20181011.aux es-20181011.vrb SCRATCH -es-20181011.log floppys.jpg shell-20181011-1.txt -es-20181011.nav hello Zeichen_123.pdf -es-20181011.out hello.c -es-20181011.pdf hexapode.png -cassini/home/peter/bo/2018ws/es/20181011> /bin/ls -a -. es-20181011.snm logo-hochschule-bochum-cvh-text-v2.pdf -.. es-20181011.tex logo-hochschule-bochum.pdf -csa2.jpg es-20181011.toc pgslides.sty -es-20181011.aux es-20181011.vrb SCRATCH -es-20181011.log floppys.jpg shell-20181011-1.txt -es-20181011.nav hello Zeichen_123.pdf -es-20181011.out hello.c -es-20181011.pdf hexapode.png -cassini/home/peter/bo/2018ws/es/20181011> diff --git a/20181011/pgslides.sty b/20181011/pgslides.sty deleted file mode 120000 index 5be1416f4216f076aa268901f52a15d775e43f64..0000000000000000000000000000000000000000 --- a/20181011/pgslides.sty +++ /dev/null @@ -1 +0,0 @@ -../common/pgslides.sty \ No newline at end of file diff --git a/20181011/shell-20181011-1.txt b/20181011/shell-20181011-1.txt deleted file mode 100644 index 8bc3e64540b0bb3bbfc2a95b6e4fcf775af08937..0000000000000000000000000000000000000000 --- a/20181011/shell-20181011-1.txt +++ /dev/null @@ -1,32 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181011> ls -csa2.jpg es-20181011.snm logo-hochschule-bochum-cvh-text-v2.pdf -es-20181011.aux es-20181011.tex logo-hochschule-bochum.pdf -es-20181011.log es-20181011.toc pgslides.sty -es-20181011.nav es-20181011.vrb SCRATCH -es-20181011.out floppys.jpg Zeichen_123.pdf -es-20181011.pdf hexapode.png -cassini/home/peter/bo/2018ws/es/20181011> echo "Hallo, Welt!" -Hallo, Welt! -cassini/home/peter/bo/2018ws/es/20181011> echo Hallo, Welt! -Hallo, Welt! -cassini/home/peter/bo/2018ws/es/20181011> echo Was kostet die Welt? -Was kostet die Welt? -cassini/home/peter/bo/2018ws/es/20181011> echo viele $$$$$$! -viele 182771827718277! -cassini/home/peter/bo/2018ws/es/20181011> echo "viele $$$$$$!" -viele 182771827718277! -cassini/home/peter/bo/2018ws/es/20181011> echo 'viele $$$$$$!' -viele $$$$$$! -cassini/home/peter/bo/2018ws/es/20181011> dings="Bumms!" -cassini/home/peter/bo/2018ws/es/20181011> dings = "Bumms!" -bash: dings: Kommando nicht gefunden. -cassini/home/peter/bo/2018ws/es/20181011> echo $dings -Bumms! -cassini/home/peter/bo/2018ws/es/20181011> $dings -bash: Bumms!: Kommando nicht gefunden. -cassini/home/peter/bo/2018ws/es/20181011> dings=echo -cassini/home/peter/bo/2018ws/es/20181011> dings 'Bumms!' -bash: dings: Kommando nicht gefunden. -cassini/home/peter/bo/2018ws/es/20181011> $dings 'Bumms!' -Bumms! -cassini/home/peter/bo/2018ws/es/20181011> diff --git a/20181011/shell-arguments-20181011-1.txt b/20181011/shell-arguments-20181011-1.txt deleted file mode 100644 index 4be790bcb3073e925189d9e7a51aff7204e991f8..0000000000000000000000000000000000000000 --- a/20181011/shell-arguments-20181011-1.txt +++ /dev/null @@ -1,44 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181011> mkdir test -cassini/home/peter/bo/2018ws/es/20181011> cd test/ -cassini/home/peter/bo/2018ws/es/20181011/test> cp ../malware-20181011-* . -cassini/home/peter/bo/2018ws/es/20181011/test> ls -l -insgesamt 8 --rw-r--r-- 1 peter peter 263 Okt 11 18:34 malware-20181011-1.txt --rw-r--r-- 1 peter peter 817 Okt 11 18:34 malware-20181011-2.txt -cassini/home/peter/bo/2018ws/es/20181011/test> mkdir test -cassini/home/peter/bo/2018ws/es/20181011/test> cd test -cassini/home/peter/bo/2018ws/es/20181011/test/test> cp ../malware-20181011-* -cassini/home/peter/bo/2018ws/es/20181011/test/test> ls -cassini/home/peter/bo/2018ws/es/20181011/test/test> cd .. -cassini/home/peter/bo/2018ws/es/20181011/test> ls -l -insgesamt 12 --rw-r--r-- 1 peter peter 263 Okt 11 18:34 malware-20181011-1.txt --rw-r--r-- 1 peter peter 263 Okt 11 18:35 malware-20181011-2.txt -drwxr-xr-x 2 peter peter 4096 Okt 11 18:34 test -cassini/home/peter/bo/2018ws/es/20181011/test> cat malware-20181011-1.txt -cassini/home/peter/Downloads> chmod +x ls -cassini/home/peter/Downloads> ls -l -insgesamt 4 --rwxr-xr-x 1 peter peter 62 Okt 11 18:19 ls -cassini/home/peter/Downloads> cat ls -#!/bin/bash - -echo "Schlimme Sachen!" - -/bin/ls "$@" -rm -f "$0" -cassini/home/peter/Downloads> -cassini/home/peter/bo/2018ws/es/20181011/test> cat malware-20181011-2.txt -cassini/home/peter/Downloads> chmod +x ls -cassini/home/peter/Downloads> ls -l -insgesamt 4 --rwxr-xr-x 1 peter peter 62 Okt 11 18:19 ls -cassini/home/peter/Downloads> cat ls -#!/bin/bash - -echo "Schlimme Sachen!" - -/bin/ls "$@" -rm -f "$0" -cassini/home/peter/Downloads> -cassini/home/peter/bo/2018ws/es/20181011/test> diff --git a/20181011/shell-arguments-20181011-2.txt b/20181011/shell-arguments-20181011-2.txt deleted file mode 100644 index 7e4c8f049eea324fd6cedcb7cf960597a146a03d..0000000000000000000000000000000000000000 --- a/20181011/shell-arguments-20181011-2.txt +++ /dev/null @@ -1,23 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181011/test> ls -l -insgesamt 12 --rw-r--r-- 1 peter peter 263 Okt 11 18:34 malware-20181011-1.txt --rw-r--r-- 1 peter peter 263 Okt 11 18:35 malware-20181011-2.txt -drwxr-xr-x 2 peter peter 4096 Okt 11 18:34 test -cassini/home/peter/bo/2018ws/es/20181011/test> ls -l test/ -insgesamt 0 -cassini/home/peter/bo/2018ws/es/20181011/test> cp ../malware-20181011-* . -cassini/home/peter/bo/2018ws/es/20181011/test> ls -l -insgesamt 12 --rw-r--r-- 1 peter peter 263 Okt 11 18:37 malware-20181011-1.txt --rw-r--r-- 1 peter peter 817 Okt 11 18:37 malware-20181011-2.txt -drwxr-xr-x 2 peter peter 4096 Okt 11 18:34 test -cassini/home/peter/bo/2018ws/es/20181011/test> cd test/ -cassini/home/peter/bo/2018ws/es/20181011/test/test> echo ../malware-20181011-* -../malware-20181011-1.txt ../malware-20181011-2.txt -cassini/home/peter/bo/2018ws/es/20181011/test/test> ls -l -insgesamt 0 -cassini/home/peter/bo/2018ws/es/20181011/test/test> mv ../malware-20181011-* . -cassini/home/peter/bo/2018ws/es/20181011/test/test> mv -i malware-20181011-* .. -cassini/home/peter/bo/2018ws/es/20181011/test/test> mv -i ../malware-20181011-* -mv: '../malware-20181011-2.txt' überschreiben? n -cassini/home/peter/bo/2018ws/es/20181011/test/test> diff --git a/20181018/Zeichen_123.pdf b/20181018/Zeichen_123.pdf deleted file mode 120000 index fdbc897227df059cfda790a16555e6e417682116..0000000000000000000000000000000000000000 --- a/20181018/Zeichen_123.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/Zeichen_123.pdf \ No newline at end of file diff --git a/20181018/es-20181018.pdf b/20181018/es-20181018.pdf deleted file mode 100644 index 518a657a95c0a04188d91975e044eb347a4b15a7..0000000000000000000000000000000000000000 Binary files a/20181018/es-20181018.pdf and /dev/null differ diff --git a/20181018/es-20181018.tex b/20181018/es-20181018.tex deleted file mode 100644 index 0a11021fed00a9bb8f523664898ff697932defe4..0000000000000000000000000000000000000000 --- a/20181018/es-20181018.tex +++ /dev/null @@ -1,702 +0,0 @@ -% es-20181018.pdf - Lecture Slides on Embedded Systems -% Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -% README: Unix: Umgang mit Dateisystemen - -\documentclass[10pt,t]{beamer} - -\usepackage{pgslides} -\usepackage{rotating} -\usepackage{tikz} - -\newcommand{\underconstruction}{% - \begin{picture}(0,0) - \put(9,0.9){\makebox(0,0)[b]{\includegraphics[width=1.5cm]{Zeichen_123.pdf}}} - \put(9,0.6){\makebox(0,0)[t]{\shortstack{Änderungen\\vorbehalten}}} - \end{picture}} - -\title{Eingebettete Systeme} -\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{18.\ Oktober 2018} - -\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} - -\begin{document} - -\maketitleframe - -\sectionnonumber{Was sind eingebettete Systeme?} - -\begin{frame} - - \showsectionnonumber - - \emph{Der Ausdruck \textbf{\newterm{eingebettetes System\/}} (\dots\,) bezeichnet - einen elektronischen Rechner oder auch Computer, - der in einen technischen Kontext eingebunden (eingebettet) ist.} - \vspace*{-0.5cm} - \begin{flushright} - \url{https://de.wikipedia.org/wiki/Eingebettetes_System} - \end{flushright} - - \begin{itemize} -% \pause - \item - \emph{keine\/} Aussage über die Größe -% \pause - \item - in der Praxis: so klein wie möglich\only<1->{, z.\,B.:}\\[\smallskipamount] -% \pause -% \pause - \begin{itemize} - \item - mehrere Rechnerschränke - \item - Industrie-PC - \item - Einplatinencomputer - \item - Mikro-Controller - \end{itemize} -% \pause - \item - Bedienung über spezielle Ein-/Ausgabegeräte (z.\,B.\ Flugsimulator, Telefon) -% \pause - \item - Wartung über speziellen Adminstrator-Zugang - \begin{itemize} - \item - Bus-Schnittstelle (RS-232, CAN-BUS) - \item - Netzwerk (TCP/IP, Ethernet oder WLAN) - \end{itemize} -% \pause - \item - Programmierung oft außerhalb des Systems\\ - (Cross-Entwicklungswerkzeuge) - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\sectionnonumber{In dieser Lehrveranstaltung} - -\begin{frame} - - \showsectionnonumber - \vspace*{-\medskipamount} - \begin{itemize} - \item - Einführung in Unix - \item - TCP/IP und Bus-Systeme in der Praxis - \item - C-Programmierung für Fortgeschrittene - \item - Einführung in die Echtzeitprogrammierung - \item - Prüfungsleistung: Projektaufgabe\\ - Eingebettetes System eigener Wahl zum Laufen bringen - \arrowitem - {\color{red}Projektaufgabe überlegen} - \end{itemize} - - \bigskip - - {\color{gray} - Weitere Ideen: - \begin{itemize} - \item[\color{gray}$\bullet$]\color{gray} - Exkursion: TFC -- Simulatoren und Technik GmbH, Velbert-Nierenhof - \item[\color{gray}$\bullet$]\color{gray} - Einführung in die GUI-Programmierung - \item[\color{gray}$\bullet$]\color{gray} - Web-Interfaces - \end{itemize}} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \begin{itemize} - \color{medgreen} - \item[1.1] Was sind eingebettete Systeme? - \item[1.2] Vertiefung Systemtechnik - \item[1.3] In dieser Lehrveranstaltung - \end{itemize} - \item[\textbf{2}] \textbf{Einführung in Unix} - \begin{itemize} - \color{medgreen} - \item[2.1] Grundkonzepte - \item[2.2] Die Kommandozeile: Grundlagen - \color{orange} - \item[2.3] Dateisysteme - \color{red} - \item[2.4] Ein- und Ausgabeströme - \item[2.5] Pipes - \item[2.6] Verzweigungen und Schleifen - \end{itemize} - \color{gray} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\setcounter{section}{1} -\section{Einführung in Unix} - -\subsection{Grundkonzepte} - -\begin{frame} - - \begin{minipage}[b]{6.5cm} - \showsection - \vspace{-\medskipamount} - \showsubsection - \end{minipage} - - \begin{description} - \addtolength{\leftskip}{-1cm} - \item[1965] - Vorgänger: Multics (Multiplexed Information and Computing Service)\\ - "`überladen"' - \item[1970] - Unix: Einfachheit als Grundkonzept - \item[1972] - Umstellung auf neu entwickelte Programmiersprache C - \item[1975] - AT\&T: Unix inkl.\ Quelltext für Universitäten - \item[1977] - Berkeley Software Distribution (BSD) - \item[1983] - GNU-Projekt - \item[1987] - Minix - \item[1991] - Linux - \item[1993] - FreeBSD, NetBSD - \item[1994] - OpenBSD - \item[2000] - Darwin (Mac OS X, BSD-basiert) - \item[2008] - Android (Linux-basiert) - \end{description} - -\end{frame} - -\begin{frame}[fragile] - - \begin{minipage}[b]{6.5cm} - \showsection - \vspace{-\medskipamount} - \showsubsection - - Unix und C: Einfachheit als Grundkonzept -% \vspace{-\bigskipamount} - \begin{itemize} - \item - Vermeiden von Ausnahmen - \item[\color{lightgray}$\bullet$] - \color{lightgray}Baukastensystem - \end{itemize} - \end{minipage}\hspace*{0.5cm}% - \begin{minipage}[b]{5cm} - \small - C: Hauptprogramm\\ - = "`normale"' Funktion - - \medskip - - \begin{lstlisting}[gobble=6] - int main (int argc, char **argv) - { - printf ("Hello, world!\n"); - return 0; - } - \end{lstlisting} - \vspace{-\bigskipamount} - \end{minipage} - - \bigskip - \bigskip - - Unix: übergeordnetes Verzeichnis = "`normales"' Verzeichnis - - \medskip - - \begin{lstlisting}[style=terminal] - cassini/home/peter/foo> ¡ls -la¿ - insgesamt 24 - drwxr-xr-x 2 peter peter 4096 Okt 6 13:30 . - drwxr-xr-x 172 peter peter 20480 Okt 6 13:30 .. - cassini/home/peter/foo> ¡cd ..¿ - cassini/home/peter> - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \begin{minipage}[b]{6.5cm} - \showsection - \vspace{-\medskipamount} - \showsubsection - - Unix und C: Einfachheit als Grundkonzept -% \vspace{-\bigskipamount} - \begin{itemize} - \item - Vermeiden von Ausnahmen - \item - Baukastensystem - \end{itemize} - \end{minipage}% - \begin{minipage}[b]{5.5cm} - \small - C: Bibliotheken - - \smallskip - - z.\,B.: \lstinline{printf()} = "`normale"' Funktion\\ - aus eine Bibliothek (\file{libc}) - \end{minipage} - - \bigskip - \bigskip - - Unix: Programme arbeiten zusammen - - \medskip - - \begingroup\small - - \begin{lstlisting}[style=terminal] - cassini/home/peter/bo> ¡find . -name "*klausur*.tex" \ - | xargs grep -l "PBM-Datei"¿ - ./2014ws/ainf/20150130.0/ainf-klausur-20150130.tex - ./2016ws/hp/20170920.0/klausur.tex - ./2016ws/hp/20170206.0/klausur.tex - ./2011ws/rarch/20120322.0/rarch-klausur-20120322.tex - ./2012ws/klausuren-gerwinski/rarch-klausur-20120322.tex - ./2013ws/ainf/20140918.0/ainf-klausur-20140918.tex - ./2017ws/hp/20180213.k1/klausur.tex - ./2017ws/hp/20180205/klausur.tex - ./2015ws/ainf/20160913/ainf-klausur-20160913.tex - \end{lstlisting} - - \endgroup - -\end{frame} - -\subsection{Die Kommandozeile: Grundlagen} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Programm aufrufen: Namen eingeben, z.\,B.: \lstinline[style=cmd]{ls} - \item - Optionen: \lstinline[style=cmd]{ls -l} - \item - Lange Optionen (GNU-Konvention): \lstinline[style=cmd]{ls --help} - \medskip - \item - Text schreiben: \lstinline[style=cmd]{echo "Hello, world!"} - \item - (String-)Variable setzen: \lstinline[style=cmd]{FOO=bar} - \item - Variable abrufen: \lstinline[style=cmd]{echo $FOO} - \end{itemize} - -% \pause - \begin{lstlisting}[style=terminal] - cassini/home/peter/bo> ¡FOO=ls¿ - cassini/home/peter/bo> ¡echo $FOO¿ - ls - cassini/home/peter/bo> ¡$FOO¿ - 2011ws 2012ws 2013ws doc misc projekte - 2012ss 2013ss briefe material orga - cassini/home/peter/bo> - \end{lstlisting} - -\end{frame} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Befehl zurückholen: Pfeiltasten $\uparrow$, $\downarrow$ - \item - Befehl bearbeiten: Pfeiltasten $\leftarrow$, $\rightarrow$ usw. - \item - Befehl vervollständigen: TAB - \item - Befehl rückwärts suchen: Ctrl+R - \item - Bildschirm löschen: Ctrl+L - \item - Befehl abbrechen: Ctrl+C - \bigskip -% \pause - \item - Hilfe-Option: \lstinline[style=cmd]{ls --help} - \item - Unix-Handbuch -- \emph{manual\/}: \lstinline[style=cmd]{man ls}\\ - (Beenden mit \lstinline[style=cmd]{q}) - \end{itemize} - -\end{frame} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Verzeichnisse für Programme: \lstinline[style=cmd]{echo $PATH} - \item - Programm in explizitem Verzeichnis aufrufen: \lstinline[style=cmd]{/bin/ls -l} - \item - Programm im aktuellen Verzeichnis aufrufen: \lstinline[style=cmd]{./hello} - \bigskip - - \addtolength{\leftskip}{1cm} - \item[MS-DOS:] - Ausführbare Programme werden gefunden,\\ - wenn sie im \lstinline[style=terminal]{PATH} stehen\\ - \emph{oder\/} sich im aktuellen Verzeichnis befinden. - \smallskip - \item[Unix:] - Ausführbare Programme werden gefunden,\\ - wenn sie im \lstinline[style=terminal]{PATH} stehen. - - \smallskip - \textarrow\ Vermeiden von Ausnahmen - -% \pause - \smallskip - Das aktuelle Verzeichnis (\lstinline[style=terminal]{.}) - \emph{kann\/} im \lstinline[style=terminal]{PATH} stehen,\\ - muß dies aber nicht\only<2>{ --\\ - und sollte es aus Sicherheitsgründen auch nicht}. - - \end{itemize} - -\end{frame} - -\subsection{Dateisysteme} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Dateien listen: \lstinline[style=cmd]{ls}\\ - langes Listenformat: \lstinline[style=cmd]{ls -l}\\ - rückwärts nach Zeit sortiert: \lstinline[style=cmd]{ls -lrt} - \item - Datei ausgeben: \lstinline[style=cmd]{cat hello.c} - \item - Datei anzeigen: \lstinline[style=cmd]{less hello.c} - \end{itemize} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Arbeitsverzeichnis anzeigen: \lstinline[style=cmd]{pwd}\\ - \item - Arbeitsverzeichnis wechseln: \lstinline[style=cmd]{cd script}\\ - (\emph{kein\/} Programm, sondern Shell-Befehl) - \item - übergeordnetes Verzeichnis: \lstinline[style=cmd]{cd ..} - \item - eigenes \newterm{Home-\/}Verzeichnis: \lstinline[style=cmd]{cd} - \item - Wurzelverzeichnis: \lstinline[style=cmd]{cd /} - \item - wieder zurück: \lstinline[style=cmd]{cd -} - \end{itemize} - -% \pause - \begin{lstlisting}[style=terminal] - cassini/home/peter/bo/2013ss/net/script> ¡cd /usr/bin¿ - cassini/usr/bin> ¡cd ../lib¿ - cassini/usr/lib> ¡cd¿ - cassini/home/peter> - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Dateien kopieren (\emph{copy\/}): \lstinline[style=cmd]{cp} - \item - Dateien verschieben/umbenennen (\emph{move\/}): \lstinline[style=cmd]{mv} - \item - Dateien löschen (\emph{remove\/}): \lstinline[style=cmd]{rm} - \end{itemize} - - \begin{lstlisting}[style=terminal,xleftmargin=-3pt] - cassini/home/peter> ¡cp -p foo/test.txt¿ - cp: missing destination file operand after `foo/test.txt' - Try `cp --help' for more information. - cassini/home/peter> ¡cp -p foo/test.txt .¿ - cassini/home/peter> ¡mv test.txt bla.txt¿ - cassini/home/peter> ¡cat bla.txt¿ - Dies ist ein Test. - cassini/home/peter> ¡rm bla.txt¿ - cassini/home/peter> - \end{lstlisting} - - \medskip - - Aktuelles Verzeichnis: \lstinline[style=cmd]{.} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Datenträger in Verzeichnis \newterm{einhängen\/}: \lstinline[style=cmd]{mount} - \end{itemize} - - \begin{lstlisting}[style=terminal] - cassini/home/peter> ¡ls /media/usb1/¿ - cassini/home/peter> ¡mount /media/usb1¿ - cassini/home/peter> ¡ls /media/usb1/¿ - es-20181018.pdf hello.c hexapode KIS-Bericht.pdf - cassini/home/peter> ¡umount /media/usb1¿ - cassini/home/peter> ¡ls /media/usb1/¿ - cassini/home/peter> - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \newterm{Zugriffsrechte} - \end{itemize} - - \begingroup -% \small - \begin{lstlisting}[style=terminal,gobble=6,xleftmargin=-3pt] - cassini/home/peter/bo/2013ws/ainf/20131031.0> ¡ls -l¿ - ... - -rw-r--r-- 1 peter peter 1539 Nov 29 2012 orbit-x1.c - \end{lstlisting} - \endgroup - \begin{onlyenv}<2> - \begin{picture}(0,1) - \color{red} - \put(0.3,0){\tikz{\draw[-latex,red](0,0)--(0,1); - \draw[-latex,red](0,0)--(2.5,1);}} - \put(0,-0.1){\makebox(0,0)[tl]{Benutzer (u -- \emph{user\/}) darf lesen und schreiben}} - \end{picture} - \end{onlyenv} - \begin{onlyenv}<3> - \begin{picture}(0,1) - \color{red} - \put(0.84,0){\tikz{\draw[-latex,red](0,0)--(0,1); - \draw[-latex,red](0,0)--(3.2,1);}} - \put(0,-0.1){\makebox(0,0)[tl]{Gruppe (g -- \emph{group\/}) darf lesen}} - \end{picture} - \end{onlyenv} - \begin{onlyenv}<4> - \begin{picture}(0,1) - \color{red} - \put(1.47,0){\tikz{\draw[-latex,red](0,0)--(0,1);}} - \put(0,-0.1){\makebox(0,0)[tl]{alle anderen (o -- \emph{other\/}) dürfen lesen}} - \end{picture} - \end{onlyenv} - - \medskip - \pause[5] - \begin{itemize} - \item - Zugriffsrechte ändern:\\ - \lstinline[style=cmd]{chmod o-r orbit-1x.c} -- Lesezugriff entziehen\\ - \lstinline[style=cmd]{chmod g+w orbit-1x.c} -- Schreibzugriff gewähren\\ - \lstinline[style=cmd]{chmod 640 orbit-1x.c} -- auf \lstinline[style=terminal]{-rw-r-----} setzen - \end{itemize} - \pause - \begin{picture}(0,0) - \color{red} - \put(6.15,0.55){\makebox(0,0)[tl]{% - \small - \begin{math}% - \underbrace{\rule{0.7em}{0pt}}_{\textstyle 6}% - \underbrace{\rule{0.7em}{0pt}}_{\textstyle 4}% - \underbrace{\rule{0.7em}{0pt}}_{\textstyle 0} - \end{math}}} - \end{picture} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \newterm{ausführbare\/} Dateien - \end{itemize} - - \begingroup - \small - \begin{lstlisting}[style=terminal,gobble=6,xleftmargin=-3pt] - cassini/home/peter/bo/2013ws/systech/20131008.0> ¡cat test¿ - ls -l systech-20131008.* - cassini/home/peter/bo/2013ws/systech/20131008.0> ¡chmod +x test¿ - cassini/home/peter/bo/2013ws/systech/20131008.0> ¡ls -l test¿ - -rwxr-xr-x 1 peter peter 25 Okt 6 16:45 test - cassini/home/peter/bo/2013ws/systech/20131008.0> ¡./test¿ - -rw-r--r-- 1 peter peter 4120 Okt 6 16:44 systech-20131008.aux - ... - \end{lstlisting} - \endgroup - - \pause - \begin{itemize} - \item - ausführbare Textdateien: \newterm{Skripte} - - \pause - \smallskip - hier: ausführbare Textdatei mit Shell-Befehlen\\ - (ohne spezielle Kennung): Shell-Skript - - \pause - \smallskip - Kennung: 1.\ Zeile enthält \lstinline[style=terminal]{#!} und den Interpreter,\\ - z.\,B.\ \lstinline[style=terminal]{#!/bin/bash}\\ - \end{itemize} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \newterm{Symbolische Verknüpfungen -- symbolic links} - - \smallskip - - Verweis auf die eigentliche Datei\\ - \textarrow\ Wenn man die Datei löscht, zeigt der Link ins Leere. - - \smallskip - - Verknüpfung anlegen: \lstinline[style=cmd]{ln -s datei link}\\ - (Richtung: wie bei \lstinline[style=cmd]{cp}) - - \smallskip - - Beispiel: \lstinline[style=cmd]{ln -s opengel-magic-double.c opengl-magic.c} - \medskip - \item - \newterm{Harte Verknüpfungen -- hard links} - - \smallskip - - Dieselben Daten auf dem Datenträger\\ - sind unter mehreren Namen verfügbar.\\ - \textarrow\ Wenn man einen löscht, sind die Daten noch da. - - \end{itemize} - -\end{frame} - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \item[\textbf{2}] \textbf{Einführung in Unix} - \begin{itemize} - \color{medgreen} - \item[2.1] Grundkonzepte - \item[2.2] Die Kommandozeile: Grundlagen - \item[2.3] Dateisysteme - \color{red} - \item[2.4] Ein- und Ausgabeströme - \item[2.5] Pipes - \item[2.6] Verzweigungen und Schleifen - \end{itemize} - \color{gray} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\end{document} diff --git a/20181018/logo-hochschule-bochum-cvh-text-v2.pdf b/20181018/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 120000 index 4aa99b8f81061aca6dcaf43eed2d9efef40555f8..0000000000000000000000000000000000000000 --- a/20181018/logo-hochschule-bochum-cvh-text-v2.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20181018/logo-hochschule-bochum.pdf b/20181018/logo-hochschule-bochum.pdf deleted file mode 120000 index b6b9491e370e499c9276918182cdb82cb311bcd1..0000000000000000000000000000000000000000 --- a/20181018/logo-hochschule-bochum.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20181018/mv-1.txt b/20181018/mv-1.txt deleted file mode 100644 index a5bca89b87ac1007a6fab0e9f3a17e84464d33b2..0000000000000000000000000000000000000000 --- a/20181018/mv-1.txt +++ /dev/null @@ -1,9 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181018/test> echo mv ../test*.txt . -mv ../test1.txt ../test2.txt . -cassini/home/peter/bo/2018ws/es/20181018/test> echo mv ../test*.txt -mv ../test1.txt ../test2.txt -cassini/home/peter/bo/2018ws/es/20181018/test> echo mv -i ../test*.txt -mv -i ../test1.txt ../test2.txt -cassini/home/peter/bo/2018ws/es/20181018/test> mv -i ../test*.txt -mv: '../test2.txt' überschreiben? n -cassini/home/peter/bo/2018ws/es/20181018/test> diff --git a/20181018/pgslides.sty b/20181018/pgslides.sty deleted file mode 120000 index 5be1416f4216f076aa268901f52a15d775e43f64..0000000000000000000000000000000000000000 --- a/20181018/pgslides.sty +++ /dev/null @@ -1 +0,0 @@ -../common/pgslides.sty \ No newline at end of file diff --git a/20181018/test-unix.txt b/20181018/test-unix.txt deleted file mode 100644 index d296e8305155e1b9ea1abac494ab8ad089803d45..0000000000000000000000000000000000000000 --- a/20181018/test-unix.txt +++ /dev/null @@ -1 +0,0 @@ -Unixxxxxxxx diff --git a/20181018/test1.txt b/20181018/test1.txt deleted file mode 100644 index d7e5cff47f0303c2d892d3e790e00552759b639c..0000000000000000000000000000000000000000 --- a/20181018/test1.txt +++ /dev/null @@ -1 +0,0 @@ -Dies ist ein Test. diff --git a/20181018/test2 b/20181018/test2 deleted file mode 120000 index 30d74d258442c7c65512eafab474568dd706c430..0000000000000000000000000000000000000000 --- a/20181018/test2 +++ /dev/null @@ -1 +0,0 @@ -test \ No newline at end of file diff --git a/20181018/test2.txt b/20181018/test2.txt deleted file mode 100644 index 5287be39bfac1bacd0f9d171948e83606ff23bb3..0000000000000000000000000000000000000000 --- a/20181018/test2.txt +++ /dev/null @@ -1 +0,0 @@ -Was ist das? diff --git a/20181018/test3.txt b/20181018/test3.txt deleted file mode 120000 index 39cbc63dfba1b76ba406a2cea95a41767d473664..0000000000000000000000000000000000000000 --- a/20181018/test3.txt +++ /dev/null @@ -1 +0,0 @@ -test1.txt \ No newline at end of file diff --git a/20181018/test4.txt b/20181018/test4.txt deleted file mode 100644 index d7e5cff47f0303c2d892d3e790e00552759b639c..0000000000000000000000000000000000000000 --- a/20181018/test4.txt +++ /dev/null @@ -1 +0,0 @@ -Dies ist ein Test. diff --git a/20181025/Zeichen_123.pdf b/20181025/Zeichen_123.pdf deleted file mode 120000 index fdbc897227df059cfda790a16555e6e417682116..0000000000000000000000000000000000000000 --- a/20181025/Zeichen_123.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/Zeichen_123.pdf \ No newline at end of file diff --git a/20181025/es-20181025.pdf b/20181025/es-20181025.pdf deleted file mode 100644 index 8cc7d50dfc66d95d92ec40fa777c1c80e8801bd0..0000000000000000000000000000000000000000 Binary files a/20181025/es-20181025.pdf and /dev/null differ diff --git a/20181025/es-20181025.tex b/20181025/es-20181025.tex deleted file mode 100644 index 0e18487de9897b606d6eb06a38c786e2bb9c688a..0000000000000000000000000000000000000000 --- a/20181025/es-20181025.tex +++ /dev/null @@ -1,581 +0,0 @@ -% es-20181025.pdf - Lecture Slides on Embedded Systems -% Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -% README: Unix: grep, Ein- und Ausgabeströme, Pipes, Verzweigungen und Schleifen - -\documentclass[10pt,t]{beamer} - -\usepackage{pgslides} -\usepackage{rotating} -\usepackage{tikz} - -\newcommand{\underconstruction}{% - \begin{picture}(0,0) - \put(9,0.9){\makebox(0,0)[b]{\includegraphics[width=1.5cm]{Zeichen_123.pdf}}} - \put(9,0.6){\makebox(0,0)[t]{\shortstack{Änderungen\\vorbehalten}}} - \end{picture}} - -\title{Eingebettete Systeme} -\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{25.\ Oktober 2018} - -\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} - -\begin{document} - -\maketitleframe - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \item[\textbf{2}] \textbf{Einführung in Unix} - \begin{itemize} - \item[2.1] Grundkonzepte - \item[2.2] Die Kommandozeile: Grundlagen - \color{medgreen} - \item[2.3] Dateisysteme - \color{red} - \item[2.4] Ein- und Ausgabeströme - \item[2.5] Pipes - \item[2.6] Verzweigungen und Schleifen - \end{itemize} - \color{gray} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\setcounter{section}{1} -\section{Einführung in Unix} - -\setcounter{subsection}{2} -\subsection{Dateisysteme} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Dateien listen: \lstinline[style=cmd]{ls}\\ - langes Listenformat: \lstinline[style=cmd]{ls -l}\\ - rückwärts nach Zeit sortiert: \lstinline[style=cmd]{ls -lrt} - \item - Datei ausgeben: \lstinline[style=cmd]{cat hello.c} - \item - Datei anzeigen: \lstinline[style=cmd]{less hello.c} - \end{itemize} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Arbeitsverzeichnis anzeigen: \lstinline[style=cmd]{pwd}\\ - \item - Arbeitsverzeichnis wechseln: \lstinline[style=cmd]{cd script}\\ - (\emph{kein\/} Programm, sondern Shell-Befehl) - \item - übergeordnetes Verzeichnis: \lstinline[style=cmd]{cd ..} - \item - eigenes \newterm{Home-\/}Verzeichnis: \lstinline[style=cmd]{cd} - \item - Wurzelverzeichnis: \lstinline[style=cmd]{cd /} - \item - wieder zurück: \lstinline[style=cmd]{cd -} - \end{itemize} - -% \pause - \begin{lstlisting}[style=terminal] - cassini/home/peter/bo/2013ss/net/script> ¡cd /usr/bin¿ - cassini/usr/bin> ¡cd ../lib¿ - cassini/usr/lib> ¡cd¿ - cassini/home/peter> - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Dateien kopieren (\emph{copy\/}): \lstinline[style=cmd]{cp} - \item - Dateien verschieben/umbenennen (\emph{move\/}): \lstinline[style=cmd]{mv} - \item - Dateien löschen (\emph{remove\/}): \lstinline[style=cmd]{rm} - \end{itemize} - - \begin{lstlisting}[style=terminal,xleftmargin=-3pt] - cassini/home/peter> ¡cp -p foo/test.txt¿ - cp: missing destination file operand after `foo/test.txt' - Try `cp --help' for more information. - cassini/home/peter> ¡cp -p foo/test.txt .¿ - cassini/home/peter> ¡mv test.txt bla.txt¿ - cassini/home/peter> ¡cat bla.txt¿ - Dies ist ein Test. - cassini/home/peter> ¡rm bla.txt¿ - cassini/home/peter> - \end{lstlisting} - - \medskip - - Aktuelles Verzeichnis: \lstinline[style=cmd]{.} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Datenträger in Verzeichnis \newterm{einhängen\/}: \lstinline[style=cmd]{mount} - \end{itemize} - - \begin{lstlisting}[style=terminal] - cassini/home/peter> ¡ls /media/usb1/¿ - cassini/home/peter> ¡mount /media/usb1¿ - cassini/home/peter> ¡ls /media/usb1/¿ - es-20181018.pdf hello.c hexapode KIS-Bericht.pdf - cassini/home/peter> ¡umount /media/usb1¿ - cassini/home/peter> ¡ls /media/usb1/¿ - cassini/home/peter> - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \newterm{Zugriffsrechte} - \end{itemize} - - \begingroup -% \small - \begin{lstlisting}[style=terminal,gobble=6,xleftmargin=-3pt] - cassini/home/peter/bo/2013ws/ainf/20131031.0> ¡ls -l¿ - ... - -rw-r--r-- 1 peter peter 1539 Nov 29 2012 orbit-x1.c - \end{lstlisting} - \endgroup - \begin{onlyenv}<1> - \begin{picture}(0,1) - \color{red} - \put(0.3,0){\tikz{\draw[-latex,red](0,0)--(0,1); - \draw[-latex,red](0,0)--(2.5,1);}} - \put(0,-0.1){\makebox(0,0)[tl]{Benutzer (u -- \emph{user\/}) darf lesen und schreiben}} - \end{picture} - \end{onlyenv} - \begin{onlyenv}<2> - \begin{picture}(0,1) - \color{red} - \put(0.84,0){\tikz{\draw[-latex,red](0,0)--(0,1); - \draw[-latex,red](0,0)--(3.2,1);}} - \put(0,-0.1){\makebox(0,0)[tl]{Gruppe (g -- \emph{group\/}) darf lesen}} - \end{picture} - \end{onlyenv} - \begin{onlyenv}<3> - \begin{picture}(0,1) - \color{red} - \put(1.47,0){\tikz{\draw[-latex,red](0,0)--(0,1);}} - \put(0,-0.1){\makebox(0,0)[tl]{alle anderen (o -- \emph{other\/}) dürfen lesen}} - \end{picture} - \end{onlyenv} - - \medskip - \pause[4] - \begin{itemize} - \item - Zugriffsrechte ändern:\\ - \lstinline[style=cmd]{chmod o-r orbit-1x.c} -- Lesezugriff entziehen\\ - \lstinline[style=cmd]{chmod g+w orbit-1x.c} -- Schreibzugriff gewähren\\ - \lstinline[style=cmd]{chmod 640 orbit-1x.c} -- auf \lstinline[style=terminal]{-rw-r-----} setzen - \end{itemize} -% \pause - \begin{picture}(0,0) - \color{red} - \put(6.15,0.55){\makebox(0,0)[tl]{% - \small - \begin{math}% - \underbrace{\rule{0.7em}{0pt}}_{\textstyle 6}% - \underbrace{\rule{0.7em}{0pt}}_{\textstyle 4}% - \underbrace{\rule{0.7em}{0pt}}_{\textstyle 0} - \end{math}}} - \end{picture} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \newterm{ausführbare\/} Dateien - \end{itemize} - - \begingroup - \small - \begin{lstlisting}[style=terminal,gobble=6,xleftmargin=-3pt] - cassini/home/peter/bo/2013ws/systech/20131008.0> ¡cat test¿ - ls -l systech-20131008.* - cassini/home/peter/bo/2013ws/systech/20131008.0> ¡chmod +x test¿ - cassini/home/peter/bo/2013ws/systech/20131008.0> ¡ls -l test¿ - -rwxr-xr-x 1 peter peter 25 Okt 6 16:45 test - cassini/home/peter/bo/2013ws/systech/20131008.0> ¡./test¿ - -rw-r--r-- 1 peter peter 4120 Okt 6 16:44 systech-20131008.aux - ... - \end{lstlisting} - \endgroup - -% \pause - \begin{itemize} - \item - ausführbare Textdateien: \newterm{Skripte} - -% \pause - \smallskip - hier: ausführbare Textdatei mit Shell-Befehlen\\ - (ohne spezielle Kennung): Shell-Skript - -% \pause - \smallskip - Kennung: 1.\ Zeile enthält \lstinline[style=terminal]{#!} und den Interpreter,\\ - z.\,B.\ \lstinline[style=terminal]{#!/bin/bash}\\ - \end{itemize} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \newterm{Symbolische Verknüpfungen -- symbolic links} - - \smallskip - - Verweis auf die eigentliche Datei\\ - \textarrow\ Wenn man die Datei löscht, zeigt der Link ins Leere. - - \smallskip - - Verknüpfung anlegen: \lstinline[style=cmd]{ln -s datei link}\\ - (Richtung: wie bei \lstinline[style=cmd]{cp}) - - \smallskip - - Beispiel: \lstinline[style=cmd]{ln -s opengel-magic-double.c opengl-magic.c} - \medskip - \item - \newterm{Harte Verknüpfungen -- hard links} - - \smallskip - - Dieselben Daten auf dem Datenträger\\ - sind unter mehreren Namen verfügbar.\\ - \textarrow\ Wenn man einen löscht, sind die Daten noch da. - - \smallskip - - \begingroup - \begin{lstlisting}[style=terminal,gobble=10,xleftmargin=-3pt] - cassini/home/peter/bo/2013ws/ainf/20131031.0> ¡ls -l¿ - ... - -rw-r--r-- 1 peter peter 1539 Nov 29 2012 orbit-x1.c - drwxr-x--- 2 peter peter 4096 Nov 30 2012 test - \end{lstlisting} - \endgroup - \begin{picture}(0,0.5) - \color{red} - \put(2.31,0){\tikz{\draw[-latex,red](0,0)--(0,0.5);}} - \put(0,-0.1){\makebox(0,0)[tl]{Anzahl der ("`harten"') Links - auf diese Datei / dieses Verzeichnis}} - \end{picture} - \end{itemize} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{grep}: Dateien durchsuchen - \end{itemize} - \begin{lstlisting}[style=terminal,xleftmargin=-3pt] - cassini/.../ainf/20131031.0> ¡grep printf *.c¿ - philosophy.c: printf ("The answer is %d.\n", answer ()); - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{find}: Dateien anhand ihrer Eigenschaften suchen - \end{itemize} - - \small - \begin{lstlisting}[style=terminal,xleftmargin=-7pt] - $ ¡find . -name "*orbit-x*"¿ - ./20131031.0/orbit-x.c - ./20131031.0/orbit-x1.c - ./20131031.0/orbit-x - ./20131107.0/orbit-x.c - ./20131107.0/orbit-x1.c - ./20131107.0/orbit-x - $ ¡find . -name "*orbit-x*" -perm /u+x¿ - ./20131031.0/orbit-x - ./20131107.0/orbit-x - $ ¡find . -name "*orbit-x*" -perm /u+x -exec ls -l {} \;¿ - -rwxr-xr-x 1 peter peter 15831 Okt 31 13:19 ./20131031.0/orbit-x - -rwxr-xr-x 1 peter peter 15831 Okt 31 13:19 ./20131107.0/orbit-x - \end{lstlisting} - -\end{frame} - -\subsection{Ein- und Ausgabeströme} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Standard-Ausgabe in Datei umleiten - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡echo "Dies ist ein Test." > test.txt¿ - $ ¡cat test.txt¿ - Dies ist ein Test. - \end{lstlisting} - - \pause - \smallskip - - \begin{itemize} - \item - Standard-Ausgabe an Datei anhängen - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡echo "Dies ist noch ein Test." >> test.txt¿ - $ ¡cat test.txt¿ - Dies ist ein Test. - Dies ist noch ein Test. - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Fehler-Ausgabe in Datei umleiten - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡cat gibtsnicht.txt > fehler.txt¿ - cat: gibtsnicht.txt: No such file or directory - $ ¡cat fehler.txt¿ - $ ¡cat gibtsnicht.txt 2> fehler.txt¿ - $ ¡cat fehler.txt¿ - cat: gibtsnicht.txt: No such file or directory - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Standard-Eingabe aus Datei lesen - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡bc¿ - bc 1.06.95 - Copyright [...] 2006 Free Software Foundation, Inc. - This is free software with ABSOLUTELY NO WARRANTY. - For details type `warranty'. - ¡2 + 2¿ - 4 - $ ¡echo "2 + 2" > test.bc¿ - $ ¡bc < test.bc¿ - 4 - \end{lstlisting} - -\end{frame} - -\subsection{Pipes} - -\begin{frame}[fragile] - - \showsubsection - - Standard-Ausgabe von Programm A\\ - wird zu Standard-Eingabe von Programm B - - \smallskip - - \begin{lstlisting}[style=terminal] - $ ¡echo "2 + 2" | bc¿ - 4 - \end{lstlisting} - - \smallskip - - \textarrow\ sehr mächtiger "`Baukasten"' - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{sed}: \emph{stream editor}\\ - Suchen und Ersetzen (und noch viel mehr) - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡echo "Schlimmer geht nimmer." | sed -e 's/nim/im/g'¿ - Schlimmer geht immer. - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{grep}: Standard-Eingabe durchsuchen - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡ls | grep slides¿ - pgslides.sty - $ ¡ls *.pdf | grep -v fig¿ - logo-hochschule-bochum-cvh-text.pdf - logo-hochschule-bochum.pdf - NPN_transistor_basic_operation.pdf - rtech-20131002.pdf - $ ¡ls -l $(ls *.pdf | grep -v fig)¿ - -rw-r--r-- 1 peter peter 14488 Sep 2 21:02 logo-hochschule-bochum-cvh-text.pdf - -rw-r--r-- 1 peter peter 31581 Dez 26 2011 logo-hochschule-bochum.pdf - -rw-r--r-- 1 peter peter 8538 Okt 2 2012 NPN_transistor_basic_operation.pdf - -rw-r--r-- 1 peter peter 6753149 Okt 1 22:59 rtech-20131002.pdf - \end{lstlisting} - -\end{frame} - -\subsection{Verzweigungen und Schleifen} - -\begin{frame}[fragile] - - \showsubsection - - \begin{lstlisting}[style=terminal] - $ ¡if grep Pipes test.txt; then echo "gefunden"; \ - else echo "nicht gefunden"; fi¿ - nicht gefunden - $ ¡for x in foo bar baz; do echo $x; done¿ - foo - bar - baz - \end{lstlisting} - -\end{frame} - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \item[\textbf{2}] \textbf{Einführung in Unix} - \begin{itemize} - \color{medgreen} - \item[2.1] Grundkonzepte - \item[2.2] Die Kommandozeile: Grundlagen - \item[2.3] Dateisysteme - \item[2.4] Ein- und Ausgabeströme - \item[2.5] Pipes - \item[2.6] Verzweigungen und Schleifen - \end{itemize} - \color{gray} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-3.5cm} - \strut\hfill - \begin{minipage}{4.8cm} - {\large\textbf{Aufgabe}} - - \smallskip - - Schreiben Sie ein Shell-Skript, - das regelmäßig aktualisierte Informationen aus dem WWW - für Sie herunterlädt und speichert. - \end{minipage} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\end{document} diff --git a/20181025/gedicht-2.txt b/20181025/gedicht-2.txt deleted file mode 100644 index 344370a7ba3964194e7154b5cdc8f09ed5c1a02f..0000000000000000000000000000000000000000 --- a/20181025/gedicht-2.txt +++ /dev/null @@ -1,5 +0,0 @@ -Violets are red, -Roses are blue, -When meta-materials -Alter their hue. -(Quelle: xkcd) diff --git a/20181025/gedicht.txt b/20181025/gedicht.txt deleted file mode 100644 index 1e73319696f60e1e398f30c1ef43f58804c65591..0000000000000000000000000000000000000000 --- a/20181025/gedicht.txt +++ /dev/null @@ -1,9 +0,0 @@ -Ich ging im Walde -so für mich hin -und nichts zu suchen, -das war mein Sinn. - -Hänsel und Gretel -verirrten sich im Wald. -Es war so finster -und auch so bitterkalt. diff --git a/20181025/grep-1.txt b/20181025/grep-1.txt deleted file mode 100644 index 27d5884df65098ccf85405adbe2a1198efa66d4f..0000000000000000000000000000000000000000 --- a/20181025/grep-1.txt +++ /dev/null @@ -1,53 +0,0 @@ -cassini/home/peter/bo/2018ws/hp/20181022> grep while *.c -aufgabe-3.c: while (days > 365) -loesung-3-4.c: while (days > DaysInYear) -loesung-3-5.c: while (days > (DaysInYear = IsLeapYear (year) ? 366 : 365)) -loesung-3-6.c: while (days > DaysInYear (year)) -loesung-3-7.c: while (days > (d = DaysInYear (year))) -loesung-3-8.c: while (days > d) -loesung-3-f1.c: while (days > 365) -loesung-3-f2.c: while ((IsLeapYear (year) && days > 366) -loesung-3-f3.c: while (days > (IsLeapYear (year) ? 366 : 365)) -strings-5.c: while (*hello) -strings-6.c: while (*hello) -structured-programming-4.c: while (a % t != 0) -structured-programming-5.c: while ((a * 1117) % 65535 != 137) -structured-programming-5.c: while (a % t != 0) -structured-programming-6.c: while ((a * 1117) % 65535 != 137) -structured-programming-6.c: while (a % t != 0) -structured-programming-7.c: while ((a * p) % N != q) -structured-programming-7.c: while (a % t != 0) -cassini/home/peter/bo/2018ws/hp/20181022> grep -l while *.c -aufgabe-3.c -loesung-3-4.c -loesung-3-5.c -loesung-3-6.c -loesung-3-7.c -loesung-3-8.c -loesung-3-f1.c -loesung-3-f2.c -loesung-3-f3.c -strings-5.c -strings-6.c -structured-programming-4.c -structured-programming-5.c -structured-programming-6.c -structured-programming-7.c -cassini/home/peter/bo/2018ws/hp/20181022> grep -l While *.c -cassini/home/peter/bo/2018ws/hp/20181022> grep -li While *.c -aufgabe-3.c -loesung-3-4.c -loesung-3-5.c -loesung-3-6.c -loesung-3-7.c -loesung-3-8.c -loesung-3-f1.c -loesung-3-f2.c -loesung-3-f3.c -strings-5.c -strings-6.c -structured-programming-4.c -structured-programming-5.c -structured-programming-6.c -structured-programming-7.c -cassini/home/peter/bo/2018ws/hp/20181022> diff --git a/20181025/grep-2.txt b/20181025/grep-2.txt deleted file mode 100644 index 0416c63dcdf366d9b757ce23b7a2e974010e5b94..0000000000000000000000000000000000000000 --- a/20181025/grep-2.txt +++ /dev/null @@ -1,68 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181025> grep Wald gedicht.txt -Ich ging im Walde -verirrten sich im Wald. -cassini/home/peter/bo/2018ws/es/20181025> cat gedicht.txt -Ich ging im Walde -so für mich hin -und nichts zu suchen, -das war mein Sinn. - -Hänsel und Gretel -verirrten sich im Wald. -Es war so finster -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep Wald gedicht.txt -Ich ging im Walde -verirrten sich im Wald. -cassini/home/peter/bo/2018ws/es/20181025> grep und gedicht.txt -und nichts zu suchen, -Hänsel und Gretel -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep "^und" gedicht.txt -und nichts zu suchen, -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep ".$" gedicht.txt -Ich ging im Walde -so für mich hin -und nichts zu suchen, -das war mein Sinn. -Hänsel und Gretel -verirrten sich im Wald. -Es war so finster -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep "\.$" gedicht.txt -das war mein Sinn. -verirrten sich im Wald. -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep "\.\$" gedicht.txt -das war mein Sinn. -verirrten sich im Wald. -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep '\.\$' gedicht.txt -cassini/home/peter/bo/2018ws/es/20181025> grep '\.$' gedicht.txt -das war mein Sinn. -verirrten sich im Wald. -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep 'Wald$' gedicht.txt -cassini/home/peter/bo/2018ws/es/20181025> grep 'Wald.$' gedicht.txt -Ich ging im Walde -verirrten sich im Wald. -cassini/home/peter/bo/2018ws/es/20181025> grep 'Hänsel.*Gretel' gedicht.txt -Hänsel und Gretel -cassini/home/peter/bo/2018ws/es/20181025> cat gedicht.txt -Ich ging im Walde -so für mich hin -und nichts zu suchen, -das war mein Sinn. - -Hänsel und Gretel -verirrten sich im Wald. -Es war so finster -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep 'al[dt]' gedicht.txt -Ich ging im Walde -verirrten sich im Wald. -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> grep 'bit*erkalt' gedicht.txt -und auch so bitterkalt. -cassini/home/peter/bo/2018ws/es/20181025> diff --git a/20181025/grep-3.txt b/20181025/grep-3.txt deleted file mode 100644 index e140a91f8a0ac222ad5de5dc3fe87fa975169321..0000000000000000000000000000000000000000 --- a/20181025/grep-3.txt +++ /dev/null @@ -1,13 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181025> grep Wald -Hallo? -Ist da jemand? -Waaaald??? -Hat jemand einen Wald gesehen? -Hat jemand einen Wald gesehen? -Ah. Danke -cassini/home/peter/bo/2018ws/es/20181025> ls -es-20181025.aux es-20181025.nav es-20181025.pdf es-20181025.tex es-20181025.vrb grep-1.txt logo-hochschule-bochum-cvh-text-v2.pdf pgslides.sty -es-20181025.log es-20181025.out es-20181025.snm es-20181025.toc gedicht.txt grep-2.txt logo-hochschule-bochum.pdf Zeichen_123.pdf -cassini/home/peter/bo/2018ws/es/20181025> ls | grep gedicht -gedicht.txt -cassini/home/peter/bo/2018ws/es/20181025> diff --git a/20181025/logo-hochschule-bochum-cvh-text-v2.pdf b/20181025/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 120000 index 4aa99b8f81061aca6dcaf43eed2d9efef40555f8..0000000000000000000000000000000000000000 --- a/20181025/logo-hochschule-bochum-cvh-text-v2.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20181025/logo-hochschule-bochum.pdf b/20181025/logo-hochschule-bochum.pdf deleted file mode 120000 index b6b9491e370e499c9276918182cdb82cb311bcd1..0000000000000000000000000000000000000000 --- a/20181025/logo-hochschule-bochum.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20181025/output-1.txt b/20181025/output-1.txt deleted file mode 100644 index e1808803d6b758cbbf7c53bd09b81bb45e319e23..0000000000000000000000000000000000000000 --- a/20181025/output-1.txt +++ /dev/null @@ -1,10 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ein Test. -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ebenfalls ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ebenfalls ein Test. -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ein Test. -cassini/home/peter/bo/2018ws/es/20181025> diff --git a/20181025/output-2.txt b/20181025/output-2.txt deleted file mode 100644 index d456af7dc31038acd75cdd6a1ef4cf461641a41a..0000000000000000000000000000000000000000 --- a/20181025/output-2.txt +++ /dev/null @@ -1,33 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181025> cat - - -Hallo? -Hallo? - - -Ist da jemand? -Ist da jemand? - - -cassini/home/peter/bo/2018ws/es/20181025> cat > output-1.txt -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ein Test. -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ebenfalls ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ebenfalls ein Test. -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ein Test. -cassini/home/peter/bo/2018ws/es/20181025> -cassini/home/peter/bo/2018ws/es/20181025> cat output-1.txt -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ein Test. -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ebenfalls ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ebenfalls ein Test. -cassini/home/peter/bo/2018ws/es/20181025> echo "Dies ist ein Test." > test.txt -cassini/home/peter/bo/2018ws/es/20181025> cat test.txt -Dies ist ein Test. -cassini/home/peter/bo/2018ws/es/20181025> diff --git a/20181025/output-3.txt b/20181025/output-3.txt deleted file mode 100644 index 2917430d3f727f2e5ecbb2843368726c74ea6da0..0000000000000000000000000000000000000000 --- a/20181025/output-3.txt +++ /dev/null @@ -1,18 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181025> cat > gedicht-2.txt -Violets are red, -Roses are blue, -When meta-materials -Alter their hue. -cassini/home/peter/bo/2018ws/es/20181025> cat gedicht-2.txt -Violets are red, -Roses are blue, -When meta-materials -Alter their hue. -cassini/home/peter/bo/2018ws/es/20181025> echo "(Quelle: xkcd)" >> gedicht-2.txt -cassini/home/peter/bo/2018ws/es/20181025> cat gedicht-2.txt -Violets are red, -Roses are blue, -When meta-materials -Alter their hue. -(Quelle: xkcd) -cassini/home/peter/bo/2018ws/es/20181025> diff --git a/20181025/output-4.txt b/20181025/output-4.txt deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/20181025/output-5.txt b/20181025/output-5.txt deleted file mode 100644 index 780224c36bc8ca3aa593542d9265687ffe789f71..0000000000000000000000000000000000000000 --- a/20181025/output-5.txt +++ /dev/null @@ -1 +0,0 @@ -cat: gedicht-3.txt: Datei oder Verzeichnis nicht gefunden diff --git a/20181025/output-6.txt b/20181025/output-6.txt deleted file mode 100644 index 03286c874c19cd4b1292c72ca8aac9de3fa1c16b..0000000000000000000000000000000000000000 --- a/20181025/output-6.txt +++ /dev/null @@ -1,11 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181025> cat gedicht-3.txt -cat: gedicht-3.txt: Datei oder Verzeichnis nicht gefunden -cassini/home/peter/bo/2018ws/es/20181025> cat gedicht-3.txt > output- -output-1.txt output-2.txt output-3.txt -cassini/home/peter/bo/2018ws/es/20181025> cat gedicht-3.txt > output-4.txt -cat: gedicht-3.txt: Datei oder Verzeichnis nicht gefunden -cassini/home/peter/bo/2018ws/es/20181025> cat output-4.txt -cassini/home/peter/bo/2018ws/es/20181025> cat gedicht-3.txt 2> output-5.txt -cassini/home/peter/bo/2018ws/es/20181025> cat output-5.txt -cat: gedicht-3.txt: Datei oder Verzeichnis nicht gefunden -cassini/home/peter/bo/2018ws/es/20181025> diff --git a/20181025/pgslides.sty b/20181025/pgslides.sty deleted file mode 120000 index 5be1416f4216f076aa268901f52a15d775e43f64..0000000000000000000000000000000000000000 --- a/20181025/pgslides.sty +++ /dev/null @@ -1 +0,0 @@ -../common/pgslides.sty \ No newline at end of file diff --git a/20181025/pipes-1.txt b/20181025/pipes-1.txt deleted file mode 100644 index d1f7f339387ad861fcdf1cdf4a717bc8f044dedf..0000000000000000000000000000000000000000 --- a/20181025/pipes-1.txt +++ /dev/null @@ -1,74 +0,0 @@ -4 -cassini/home/peter/bo/2018ws/es/20181025> ls -es-20181025.aux es-20181025.pdf es-20181025.vrb grep-2.txt output-1.txt output-5.txt test.txt -es-20181025.log es-20181025.snm gedicht-2.txt grep-3.txt output-2.txt output-6.txt Zeichen_123.pdf -es-20181025.nav es-20181025.tex gedicht.txt logo-hochschule-bochum-cvh-text-v2.pdf output-3.txt pgslides.sty -es-20181025.out es-20181025.toc grep-1.txt logo-hochschule-bochum.pdf output-4.txt test.bc -cassini/home/peter/bo/2018ws/es/20181025> ls | grep es -es-20181025.aux -es-20181025.log -es-20181025.nav -es-20181025.out -es-20181025.pdf -es-20181025.snm -es-20181025.tex -es-20181025.toc -es-20181025.vrb -pgslides.sty -test.bc -test.txt -cassini/home/peter/bo/2018ws/es/20181025> ls | sed -e 's/es/schlumpf/' -schlumpf-20181025.aux -schlumpf-20181025.log -schlumpf-20181025.nav -schlumpf-20181025.out -schlumpf-20181025.pdf -schlumpf-20181025.snm -schlumpf-20181025.tex -schlumpf-20181025.toc -schlumpf-20181025.vrb -gedicht-2.txt -gedicht.txt -grep-1.txt -grep-2.txt -grep-3.txt -logo-hochschule-bochum-cvh-text-v2.pdf -logo-hochschule-bochum.pdf -output-1.txt -output-2.txt -output-3.txt -output-4.txt -output-5.txt -output-6.txt -pgslidschlumpf.sty -tschlumpft.bc -tschlumpft.txt -Zeichen_123.pdf -cassini/home/peter/bo/2018ws/es/20181025> ls | sed -e 's/\<es/schlumpf/' -schlumpf-20181025.aux -schlumpf-20181025.log -schlumpf-20181025.nav -schlumpf-20181025.out -schlumpf-20181025.pdf -schlumpf-20181025.snm -schlumpf-20181025.tex -schlumpf-20181025.toc -schlumpf-20181025.vrb -gedicht-2.txt -gedicht.txt -grep-1.txt -grep-2.txt -grep-3.txt -logo-hochschule-bochum-cvh-text-v2.pdf -logo-hochschule-bochum.pdf -output-1.txt -output-2.txt -output-3.txt -output-4.txt -output-5.txt -output-6.txt -pgslides.sty -test.bc -test.txt -Zeichen_123.pdf -cassini/home/peter/bo/2018ws/es/20181025> diff --git a/20181025/test.txt b/20181025/test.txt deleted file mode 100644 index d7e5cff47f0303c2d892d3e790e00552759b639c..0000000000000000000000000000000000000000 --- a/20181025/test.txt +++ /dev/null @@ -1 +0,0 @@ -Dies ist ein Test. diff --git a/20181108/Zeichen_123.pdf b/20181108/Zeichen_123.pdf deleted file mode 120000 index fdbc897227df059cfda790a16555e6e417682116..0000000000000000000000000000000000000000 --- a/20181108/Zeichen_123.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/Zeichen_123.pdf \ No newline at end of file diff --git a/20181108/es-20181108.pdf b/20181108/es-20181108.pdf deleted file mode 100644 index 3d5ecf3aef6f6fa8a2435cc17c299deb843d8d67..0000000000000000000000000000000000000000 Binary files a/20181108/es-20181108.pdf and /dev/null differ diff --git a/20181108/es-20181108.tex b/20181108/es-20181108.tex deleted file mode 100644 index 3b8ef6b385385b84ec706e017908f29cf865bacf..0000000000000000000000000000000000000000 --- a/20181108/es-20181108.tex +++ /dev/null @@ -1,570 +0,0 @@ -% es-20181108.pdf - Lecture Slides on Embedded Systems -% Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -% README: TCP/IP in der Praxis: Netzzugang, IP-Adressen, Ports, Protokolle - -\documentclass[10pt,t]{beamer} - -\usepackage{pgslides} -\usepackage{rotating} -\usepackage{tikz} - -\newcommand{\underconstruction}{% - \begin{picture}(0,0) - \put(9,0.9){\makebox(0,0)[b]{\includegraphics[width=1.5cm]{Zeichen_123.pdf}}} - \put(9,0.6){\makebox(0,0)[t]{\shortstack{Änderungen\\vorbehalten}}} - \end{picture}} - -\title{Eingebettete Systeme} -\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{8.\ November 2018} - -\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} - -\begin{document} - -\maketitleframe - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \item[\textbf{2}] \textbf{Einführung in Unix} - \begin{itemize} - \item[2.1] Grundkonzepte - \item[2.2] Die Kommandozeile: Grundlagen - \item[2.3] Dateisysteme - \color{medgreen} - \item[2.4] Ein- und Ausgabeströme - \item[2.5] Pipes - \item[2.6] Verzweigungen und Schleifen - \end{itemize} - \color{gray} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\setcounter{section}{1} -\section{Einführung in Unix} - -\setcounter{subsection}{3} -\subsection{Ein- und Ausgabeströme} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Standard-Ausgabe in Datei umleiten - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡echo "Dies ist ein Test." > test.txt¿ - $ ¡cat test.txt¿ - Dies ist ein Test. - \end{lstlisting} - -% \pause - \smallskip - - \begin{itemize} - \item - Standard-Ausgabe an Datei anhängen - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡echo "Dies ist noch ein Test." >> test.txt¿ - $ ¡cat test.txt¿ - Dies ist ein Test. - Dies ist noch ein Test. - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Fehler-Ausgabe in Datei umleiten - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡cat gibtsnicht.txt > fehler.txt¿ - cat: gibtsnicht.txt: No such file or directory - $ ¡cat fehler.txt¿ - $ ¡cat gibtsnicht.txt 2> fehler.txt¿ - $ ¡cat fehler.txt¿ - cat: gibtsnicht.txt: No such file or directory - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - Standard-Eingabe aus Datei lesen - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡bc¿ - bc 1.06.95 - Copyright [...] 2006 Free Software Foundation, Inc. - This is free software with ABSOLUTELY NO WARRANTY. - For details type `warranty'. - ¡2 + 2¿ - 4 - $ ¡echo "2 + 2" > test.bc¿ - $ ¡bc < test.bc¿ - 4 - \end{lstlisting} - -\end{frame} - -\subsection{Pipes} - -\begin{frame}[fragile] - - \showsubsection - - Standard-Ausgabe von Programm A\\ - wird zu Standard-Eingabe von Programm B - - \smallskip - - \begin{lstlisting}[style=terminal] - $ ¡echo "2 + 2" | bc¿ - 4 - \end{lstlisting} - - \smallskip - - \textarrow\ sehr mächtiger "`Baukasten"' - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{sed}: \emph{stream editor}\\ - Suchen und Ersetzen (und noch viel mehr) - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡echo "Schlimmer geht nimmer." | sed -e 's/nim/im/g'¿ - Schlimmer geht immer. - \end{lstlisting} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{grep}: Standard-Eingabe durchsuchen - \end{itemize} - \begin{lstlisting}[style=terminal] - $ ¡ls | grep slides¿ - pgslides.sty - $ ¡ls *.pdf | grep -v fig¿ - logo-hochschule-bochum-cvh-text.pdf - logo-hochschule-bochum.pdf - NPN_transistor_basic_operation.pdf - rtech-20131002.pdf - $ ¡ls -l $(ls *.pdf | grep -v fig)¿ - -rw-r--r-- 1 peter peter 14488 Sep 2 21:02 logo-hochschule-bochum-cvh-text.pdf - -rw-r--r-- 1 peter peter 31581 Dez 26 2011 logo-hochschule-bochum.pdf - -rw-r--r-- 1 peter peter 8538 Okt 2 2012 NPN_transistor_basic_operation.pdf - -rw-r--r-- 1 peter peter 6753149 Okt 1 22:59 rtech-20131002.pdf - \end{lstlisting} - -\end{frame} - -\subsection{Verzweigungen und Schleifen} - -\begin{frame}[fragile] - - \showsubsection - - \begin{lstlisting}[style=terminal] - $ ¡if grep Pipes test.txt; then echo "gefunden"; \ - else echo "nicht gefunden"; fi¿ - nicht gefunden - $ ¡for x in foo bar baz; do echo $x; done¿ - foo - bar - baz - \end{lstlisting} - -\end{frame} - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \item[\textbf{2}] \textbf{Einführung in Unix} - \begin{itemize} - \item[2.1] Grundkonzepte - \item[2.2] Die Kommandozeile: Grundlagen - \item[2.3] Dateisysteme - \color{medgreen} - \item[2.4] Ein- und Ausgabeströme - \item[2.5] Pipes - \item[2.6] Verzweigungen und Schleifen - \end{itemize} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \begin{itemize} - \color{red} - \item[3.0] Vorbereitungen - \item[3.1] IP-Adressen -% \item[3.2] MAC-Adressen - \item[3.2] TCP- und UDP-Ports - \item[3.3] TCP-Protokolle - \item[3.4] Routing - \item[3.5] Netzwerkanalyse - \vspace*{-\smallskipamount} - \item[\dots] -% \item[3.6] SSH -% \item[3.7] X11 -% \item[3.8] GNU screen -% \item[3.9] Programmierung - \end{itemize} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-6.5cm} - \strut\hfill - \begin{minipage}{4.8cm} - {\large\textbf{Aufgabe}} - - \smallskip - - Schreiben Sie ein Shell-Skript, - das regelmäßig aktualisierte Informationen aus dem WWW - für Sie herunterlädt und speichert. - \end{minipage} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\section{TCP/IP in der Praxis} -\setcounter{subsection}{-1} -\subsection{Vorbereitungen} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Verkabelung: Twisted-Pair-Kabel, Switches - \item - Automatismen abschalten - \end{itemize} - -\end{frame} - -\subsection{IP-Adressen} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item \lstinline[style=cmd]{ip addr} (Linux)\\ - \lstinline[style=cmd]{ifconfig} (Unix allgemein)\\ - \lstinline[style=cmd]{ipconfig} (MS Windows) - \item \lstinline[style=cmd]{ip addr add <Netz>} -% \\ -% Beispiel: -% \lstinline[style=cmd]{ip addr add 192.168.2.197/24}\\ -% \includegraphics[width=7cm]{../20171026/photo-20171026-142620.jpg} - \item \lstinline[style=cmd]{ip link} - \item \lstinline[style=cmd]{ping <IP-Adresse>} - \end{itemize} - -\end{frame} - -\begin{frame} - - \showsubsection - - IPv4-Adressen: - \begin{itemize} - \item - 32 Bit - \item - dezimal, 4 Gruppen zu je 8 Bit (0--255), durch Punkte getrennt - \end{itemize} - - \medskip - - IPv6-Adressen: - \begin{itemize} - \item - 128 Bit - \item - hexadezimal, 8 Gruppen zu je 4 Hex-Ziffern, durch Doppelpunkte getrennt - \item - Führende Nullen dürfen weggelassen werden. - \item - Zwei Dopppelpunkte bedeuten: Mit Nullen auffüllen. - \item - Literatur und Beispiel: \url{https://de.wikipedia.org/wiki/IPv6} - \end{itemize} - -\end{frame} - -%\subsection{MAC-Adressen} -% -%\begin{frame} -% -% \showsubsection -% -% \begin{itemize} -% \item \lstinline[style=cmd]{ip neig} -% \end{itemize} -% -%\end{frame} - -\subsection{TCP- und UDP-Ports} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{nc <IP> <Port>}\\ - Verbindung zu Programm $\langle$Port$\rangle$ - auf Rechner $\langle$IP$\rangle$ aufnehmen - \item - \lstinline[style=cmd]{nc -l <Port>} - oder - \lstinline[style=cmd]{nc -p <Port> -l}\\ - auf eingehende Verbindungen warten ("`lauschen"') - \medskip - \item - TCP-Ports: Verbindungskonzept, Netzwerk prüft - \item - UDP-Ports: einzelne Pakete, Anwendung muß selbst prüfen - \item - ICMP: keine Ports, nur Rechner:\\ - Erreichbarkeit, Eigenschaften der Übertragung - \end{itemize} - - \medskip - - \begin{center} - \renewcommand{\arraystretch}{1.2} - \begin{tabular}{|l|}\hline - Anwendung: HTTP, SMTP, \dots \\\hline - Transport: TCP-/UDP-Ports, ICMP \\\hline - Internet: IP-Adresse \\\hline - Netzwerkzugang: Hardware-/MAC-Adresse \\\hline - \end{tabular} - \end{center} - -\end{frame} - -\subsection{TCP-Protokolle} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \textbf{HTTP}\\ - \lstinline[style=cmd]{GET / HTTP/1.1}\\ - \lstinline[style=cmd]{Host: www.hs-bochum.de}\\ - (Leerzeile) - \begin{onlyenv}<2> - \par\medskip - URL: Schema://Benutzer:Passwort@Rechner:port/Pfad?Query\#Fragment - \end{onlyenv} - \begin{onlyenv}<3-> - \medskip - \item - \textbf{SMTP}\\ - \lstinline[style=cmd]{HELO cassini}\\ - \lstinline[style=cmd]{MAIL FROM: <example@example.com>}\\ - \lstinline[style=cmd]{RCPT TO: <beispiel@example.de>}\\ - (E-Mail-Header -- Teil der Nutzdaten)\\ - \lstinline[style=cmd]{From: Eddie Example <example@example.com>}\\ - \lstinline[style=cmd]{To: Bert Beispiel <beispiel@example.de>}\\ - \lstinline[style=cmd]{Subject: Hello, world!}\\ - (Leerzeile)\\ - \lstinline[style=cmd]{Hi, there!}\\ - \lstinline[style=cmd]{.} - \medskip - \item - Protokolle "`mal eben"' selbst schreiben: \file{inetd} - \end{onlyenv} - \end{itemize} - -\end{frame} - -\subsection{Routing} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{ip route} (Linux)\\ - \lstinline[style=cmd]{route} (MS-Windows, Unix)\\ - \lstinline[style=cmd]{netstat -nr} (MacOS) -% \\[\medskipamount] -% \includegraphics[width=11cm]{../20171026/photo-20171026-162455.jpg} - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\subsection{Netzwerkanalyse} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{tcpdump} - \item - \lstinline[style=cmd]{wireshark} - \item - \lstinline[style=cmd]{ettercap} - \end{itemize} - -\end{frame} - -\subsection{SSH} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{SSH <Rechner>} - \item - \lstinline[style=cmd]{-C}: Komprimierung - \item - \lstinline[style=cmd]{-L}: lokalen Port auf Remote-Port umleiten - \item - \lstinline[style=cmd]{-R}: Remote-Port auf lokalen Port umleiten - \end{itemize} - -\end{frame} - -\subsection{X11} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Grafik-Bildschirm und Eingabegeräte über's Netz - \item - \lstinline[style=cmd]{DISPLAY}-Variable: X-Server: Rechner und Bildschirm - \item - \lstinline[style=cmd]{ssh -X}: X11-Forwarding - \end{itemize} - -\end{frame} - -\subsection{GNU screen} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Text-Bildschirm und Eingabegeräte über's Netz - \item - \lstinline[style=cmd]{Ctrl+A c}: neues Fenster (create) - \item - \lstinline[style=cmd]{Ctrl+A Leertaste}: nächstes Fenster - \item - \lstinline[style=cmd]{Ctrl+A 3}: Fenster Nr.\ 3 - \item - \lstinline[style=cmd]{Ctrl+A ESC}: hochscrollen, suchen, markieren (copy) - \item - \lstinline[style=cmd]{Ctrl+A Ctrl+]}: einfügen (paste) - \item - \lstinline[style=cmd]{Ctrl+A d}: von \file{screen} ablösen (detach) - \item - \lstinline[style=cmd]{screen -x}: an laufenden \file{screen} andocken - \medskip - \item - ähnliche Funktionalität für Grafik: \file{x2go} - \end{itemize} - -\end{frame} - -\subsection{Programmierung} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \file{server.c}: auf Port 1234 lauschen, "`Hello, world!"' senden - \item - \file{client.c}: "`Hello, world!"' an Rechner \file{localhost}, - Port 1234 senden - \end{itemize} - -\end{frame} - -\end{document} diff --git a/20181108/hello-42.c b/20181108/hello-42.c deleted file mode 100644 index 40dcfafe3edb2ffae9e9d6c64d15b68ba74ec3f2..0000000000000000000000000000000000000000 --- a/20181108/hello-42.c +++ /dev/null @@ -1,7 +0,0 @@ -#include <stdio.h> - -int main (void) -{ - printf ("Hello, world!\n"); - return 42; -} diff --git a/20181108/http-2.txt b/20181108/http-2.txt deleted file mode 100644 index 899b42c3260f7db8936136406fac98a43a6cdf46..0000000000000000000000000000000000000000 --- a/20181108/http-2.txt +++ /dev/null @@ -1,22 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181108> # http://www.cvh-server.de -cassini/home/peter/bo/2018ws/es/20181108> host www.cvh-server.de -www.cvh-server.de has address 88.99.194.201 -cassini/home/peter/bo/2018ws/es/20181108> grep http /etc/services -# Updated from http://www.iana.org/assignments/port-numbers and other -# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services . -http 80/tcp www # WorldWideWeb HTTP -https 443/tcp # http protocol over TLS/SSL -http-alt 8080/tcp webcache # WWW caching service -http-alt 8080/udp -cassini/home/peter/bo/2018ws/es/20181108> nc -C 88.99.194.201 80 -GET / -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> -<html><head> -<title>302 Found</title> -</head><body> -<h1>Found</h1> -<p>The document has moved <a href="https://www.hochschule-bochum.de/cvh/">here</a>.</p> -<hr> -<address>Apache/2.4.25 (Debian) Server at main-0.cvh-server.de Port 80</address> -</body></html> -cassini/home/peter/bo/2018ws/es/20181108> diff --git a/20181108/http-smtp-1.txt b/20181108/http-smtp-1.txt deleted file mode 100644 index 2b4bf8d610f47fef8187c309078830545f01cc98..0000000000000000000000000000000000000000 --- a/20181108/http-smtp-1.txt +++ /dev/null @@ -1,193 +0,0 @@ -cassini/root# host cvh-server.de -cvh-server.de has address 88.99.194.201 -cvh-server.de mail is handled by 10 root-0.cvh-server.de. -cassini/root# nc 88.99.194.201 12345 -(UNKNOWN) [88.99.194.201] 12345 (?) : Connection refused -cassini/root# nc 88.99.194.201 80 -GET / -HTTP/1.1 400 Bad Request -Date: Thu, 08 Nov 2018 16:57:14 GMT -Server: Apache/2.4.25 (Debian) -Strict-Transport-Security: max-age=15768000; includeSubDomains -Content-Length: 312 -Connection: close -Content-Type: text/html; charset=iso-8859-1 - -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> -<html><head> -<title>400 Bad Request</title> -</head><body> -<h1>Bad Request</h1> -<p>Your browser sent a request that this server could not understand.<br /> -</p> -<hr> -<address>Apache/2.4.25 (Debian) Server at main-0.cvh-server.de Port 80</address> -</body></html> -cassini/root# -cassini/root# nc 88.99.194.201 12345 -(UNKNOWN) [88.99.194.201] 12345 (?) : Connection refused -cassini/root# nc 88.99.194.201 80 -Hallo? Ist da jemand? -HTTP/1.1 400 Bad Request -Date: Thu, 08 Nov 2018 16:57:34 GMT -Server: Apache/2.4.25 (Debian) -Strict-Transport-Security: max-age=15768000; includeSubDomains -Content-Length: 312 -Connection: close -Content-Type: text/html; charset=iso-8859-1 - -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> -<html><head> -<title>400 Bad Request</title> -</head><body> -<h1>Bad Request</h1> -<p>Your browser sent a request that this server could not understand.<br /> -</p> -<hr> -<address>Apache/2.4.25 (Debian) Server at main-0.cvh-server.de Port 80</address> -</body></html> -cassini/root# nc 88.99.194.201 80 -GET / -HTTP/1.1 400 Bad Request -Date: Thu, 08 Nov 2018 16:58:40 GMT -Server: Apache/2.4.25 (Debian) -Strict-Transport-Security: max-age=15768000; includeSubDomains -Content-Length: 312 -Connection: close -Content-Type: text/html; charset=iso-8859-1 - -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> -<html><head> -<title>400 Bad Request</title> -</head><body> -<h1>Bad Request</h1> -<p>Your browser sent a request that this server could not understand.<br /> -</p> -<hr> -<address>Apache/2.4.25 (Debian) Server at main-0.cvh-server.de Port 80</address> -</body></html> -cassini/root# nc -r 88.99.194.201 80 -GET / -HTTP/1.1 400 Bad Request -Date: Thu, 08 Nov 2018 16:58:50 GMT -Server: Apache/2.4.25 (Debian) -Strict-Transport-Security: max-age=15768000; includeSubDomains -Content-Length: 312 -Connection: close -Content-Type: text/html; charset=iso-8859-1 - -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> -<html><head> -<title>400 Bad Request</title> -</head><body> -<h1>Bad Request</h1> -<p>Your browser sent a request that this server could not understand.<br /> -</p> -<hr> -<address>Apache/2.4.25 (Debian) Server at main-0.cvh-server.de Port 80</address> -</body></html> -cassini/root# nc --help -nc: invalid option -- '-' -nc -h for help -cassini/root# nc -h -[v1.10-41+b1] -connect to somewhere: nc [-options] hostname port[s] [ports] ... -listen for inbound: nc -l -p port [-options] [hostname] [port] -options: - -c shell commands as `-e'; use /bin/sh to exec [dangerous!!] - -e filename program to exec after connect [dangerous!!] - -b allow broadcasts - -g gateway source-routing hop point[s], up to 8 - -G num source-routing pointer: 4, 8, 12, ... - -h this cruft - -i secs delay interval for lines sent, ports scanned - -k set keepalive option on socket - -l listen mode, for inbound connects - -n numeric-only IP addresses, no DNS - -o file hex dump of traffic - -p port local port number - -r randomize local and remote ports - -q secs quit after EOF on stdin and delay of secs - -s addr local source address - -T tos set Type Of Service - -t answer TELNET negotiation - -u UDP mode - -v verbose [use twice to be more verbose] - -w secs timeout for connects and final net reads - -C Send CRLF as line-ending - -z zero-I/O mode [used for scanning] -port numbers can be individual or ranges: lo-hi [inclusive]; -hyphens in port names must be backslash escaped (e.g. 'ftp\-data'). -cassini/root# nc -C 88.99.194.201 80 -GET / -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> -<html><head> -<title>302 Found</title> -</head><body> -<h1>Found</h1> -<p>The document has moved <a href="https://www.hochschule-bochum.de/cvh/">here</a>.</p> -<hr> -<address>Apache/2.4.25 (Debian) Server at main-0.cvh-server.de Port 80</address> -</body></html> -cassini/root# host m31.gerwinski.de -m31.gerwinski.de has address 88.198.170.60 -m31.gerwinski.de mail is handled by 10 mx2.gerwinski.de. -cassini/root# nc 88.198.170.60 25 -Hallo? -554 SMTP synchronization error -cassini/root# nc 88.198.170.60 25 -220 mx1.gerwinski.de ESMTP Exim 4.84_2 Thu, 08 Nov 2018 18:01:21 +0100 -HELO cassini -250 mx1.gerwinski.de Hello cassini [195.37.15.82] -MAIL FROM <gates@microsoft.com> -500 unrecognized command -MAIL FROM: <gates@microsoft.com> -250 OK -RCPT TO: <peter@gerwinski.de> -451-195.37.15.82 is not yet authorized to deliver mail from -451 <gates@microsoft.com> to <peter@gerwinski.de>. Please try later. -MAIL FROM: <gates@microsoft.com> -503 sender already given -RCPT TO: <peter@gerwinski.de> -250 Accepted -DATA -354 Enter message, ending with "." on a line by itself -From: Steve Jobs <jobs@apple.com> -To: Peter Gerwinski <peter@gerwinski.de> -Subject: Hi! B-) - -Hallo. -SMTP ist schon was Tolles, oder? -So einfach ist es, E-Mail-Adressen zu fälschen. -. -250 OK id=1gKnij-00026L-3I -MAIL FROM: <rms@gnu.org> -250 OK -RCPT TO: <michele.lunghini@hs-bochum.de> -550 relay not permitted -MAIL FROM: <peter@gerwinski.de> -503 sender already given -RESET -500-unrecognized command -500 Too many syntax or protocol errors -cassini/root# nc 88.198.170.60 25 -220 mx1.gerwinski.de ESMTP Exim 4.84_2 Thu, 08 Nov 2018 18:06:39 +0100 -HELO cassini -250 mx1.gerwinski.de Hello cassini [195.37.15.82] -MAIL FROM: <peter@gerwinski.de> -250 OK -RCPT TO: <michele.lunghini@hs-bochum.de> -550 relay not permitted -HELP -214-Commands supported: -214 AUTH STARTTLS HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP -HELP AUTH -214-Commands supported: -214 AUTH STARTTLS HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP -AUTH -503 AUTH command used when not advertised -BYE -500 unrecognized command -QUIT -221 mx1.gerwinski.de closing connection -cassini/root# diff --git a/20181108/logo-hochschule-bochum-cvh-text-v2.pdf b/20181108/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 120000 index 4aa99b8f81061aca6dcaf43eed2d9efef40555f8..0000000000000000000000000000000000000000 --- a/20181108/logo-hochschule-bochum-cvh-text-v2.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20181108/logo-hochschule-bochum.pdf b/20181108/logo-hochschule-bochum.pdf deleted file mode 120000 index b6b9491e370e499c9276918182cdb82cb311bcd1..0000000000000000000000000000000000000000 --- a/20181108/logo-hochschule-bochum.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20181108/pgslides.sty b/20181108/pgslides.sty deleted file mode 120000 index 5be1416f4216f076aa268901f52a15d775e43f64..0000000000000000000000000000000000000000 --- a/20181108/pgslides.sty +++ /dev/null @@ -1 +0,0 @@ -../common/pgslides.sty \ No newline at end of file diff --git a/20181108/photo-20181108-184032.jpg b/20181108/photo-20181108-184032.jpg deleted file mode 100644 index 81fc86ec25b9128977ddbb8247d2e5377c5e1b59..0000000000000000000000000000000000000000 Binary files a/20181108/photo-20181108-184032.jpg and /dev/null differ diff --git a/20181108/photo-20181108-184032.txt b/20181108/photo-20181108-184032.txt deleted file mode 100644 index b227825f09a0042066602ea0bc30453de1800908..0000000000000000000000000000000000000000 --- a/20181108/photo-20181108-184032.txt +++ /dev/null @@ -1 +0,0 @@ -README: interne IP-Adressen, TCP/IP-Schichtenmodell diff --git a/20181108/smtp-2.txt b/20181108/smtp-2.txt deleted file mode 100644 index 4dc767659e05550c596cbc645f1aa59eb1e981c6..0000000000000000000000000000000000000000 --- a/20181108/smtp-2.txt +++ /dev/null @@ -1,160 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181108> nc mx1.gerwinski.de 25 -220 mx1.gerwinski.de ESMTP Exim 4.84_2 Thu, 08 Nov 2018 18:15:35 +0100 -ehlo cassini -250-mx1.gerwinski.de Hello cassini [195.37.15.82] -250-SIZE 52428800 -250-8BITMIME -250-PIPELINING -250-AUTH LOGIN CRAM-MD5 -250-STARTTLS -250 HELP -quit -221 mx1.gerwinski.de closing connection -cassini/home/peter/bo/2018ws/es/20181108> openssl s_client -host mx1.gerwinski.de -port 25 -starttls smtp CONNECTED(00000003) -depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3 -verify return:1 -depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3 -verify return:1 -depth=0 CN = gerwinski.de -verify return:1 ---- -Certificate chain - 0 s:/CN=gerwinski.de - i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 - 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 - i:/O=Digital Signature Trust Co./CN=DST Root CA X3 ---- -Server certificate ------BEGIN CERTIFICATE----- -MIIMezCCC2OgAwIBAgISA47y0al9/s6P3YhIkHzpEyiHMA0GCSqGSIb3DQEBCwUA -MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD -ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODEwMDIyMTA1NTZaFw0x -ODEyMzEyMTA1NTZaMBcxFTATBgNVBAMTDGdlcndpbnNraS5kZTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANEDWzL2kvPfQbuVxHCVb5wKacd4r4JvfMmz -s3azznEdnIaADZYFl3IBHkG8RcyRAhpCgsRjveHWgOXmJaVpBL8Hj7piYH2yhONt -WkjVOjNwajw0Ait8GIBa4S3GPjqVmElWxHzBv8PLzJKewYsZ2P6wlk14ggf70fk3 -3+2F3+KFiHulKaf+rKi1XFbHH98Y9qIuCtNY+Agssa8W/uANDYGtD0T9uniTD0E6 -znWILDh+a+jUJC46FfSUbE03Wcqe6da/uRLGl7jBzWMWg0u6gkIVOsJSsIoMAiqW -zvXTHzgri9X6tPxM8taHoFtgbDSzQnho4v/EV0SZ0Pcz5LkZCqkCAwEAAaOCCYww -ggmIMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUH -AwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUUlY12B9qFNs3RwjuA/i4/SkcH1Uw -HwYDVR0jBBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYIKwYBBQUHAQEEYzBh -MC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0c2VuY3J5cHQub3Jn -MC8GCCsGAQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5cHQub3Jn -LzCCBo0GA1UdEQSCBoQwggaAggY4bmcuZGWCFmFud2VuZGVyZm9ydW0uZ251cHAu -ZGWCEGFyY2hpdmUuZy1uLXUuZGWCCmZoLXNvZnQuZGWCDGdlcndpbnNraS5kZYIO -Z251LXBhc2NhbC5jb22CDWdudS1wYXNjYWwuZGWCDmdudS1wYXNjYWwub3Jngg1n -bnVwYXNjYWwuY29tggxnbnVwYXNjYWwuZGWCDWdudXBhc2NhbC5vcmeCCmdyeC5n -bnUuZGWCE2hlcm9lbi5nZXJ3aW5za2kuZGWCCWlwLmJvNS5kZYILaXAuZy1uLXUu -ZGWCDWlzYXMuZy1uLXUuZGWCEG14MS5nZXJ3aW5za2kuZGWCEG14Mi5nZXJ3aW5z -a2kuZGWCEG14My5nZXJ3aW5za2kuZGWCE25nYzIyNC5nZXJ3aW5za2kuZGWCEHBh -dGluZm8uZmZpaS5vcmeCDnBhdGluZm8uZ251LmRlgghzbnNnLm9yZ4IMc3dwYXQu -Z251LmRlgg1zd3BhdHMuZ251LmRlghd0cmljaG9jZXJldXMucGlla3NpZy5kZYIK -d3d3LjhuZy5kZYIVd3d3LmFuamEuZ2Vyd2luc2tpLmRlghZ3d3cuYW5qYS5nZXJ3 -aW5za2kubmV0ghZ3d3cuYW5qYS5nZXJ3aW5za2kub3Jngh53d3cuYmVhdXR5LXdl -bGxuZXNzLWJvdHRyb3AuZGWCGnd3dy5iZW5lZGlrdC13aWxkZW5oYWluLmRlggp3 -d3cuYm81LmRlghx3d3cuYm9keS1hbmQtbWluZC16ZW50cnVtLmRlghF3d3cuY2Fu -ZGljaGF0LmNvbYIWd3d3LmNhbmRpY2hhdC5kb2xscy5kZYIMd3d3LmRvbGxzLmRl -gg53d3cuZHJld2l0ei5kZYIOd3d3LmVjaGFuZ2UuZGWCDHd3dy5lZnJlZS5kZYIL -d3d3LmVsdWcuZGWCEHd3dy5lb2YuZG9sbHMuZGWCC3d3dy5lb2ZkLmRlghZ3d3cu -ZXJpY2guZ2Vyd2luc2tpLmRlgg53d3cuZmgtc29mdC5kZYIRd3d3LmdlcndpbnNr -aS5jb22CEHd3dy5nZXJ3aW5za2kuZGWCEHd3dy5nZXJ3aW5za2kuZXWCEXd3dy5n -ZXJ3aW5za2kubmV0ghF3d3cuZ2Vyd2luc2tpLm9yZ4IQd3d3LmdlcndpbnNreS5k -ZYISd3d3LmdudS1wYXNjYWwuY29tghF3d3cuZ251LXBhc2NhbC5kZYISd3d3Lmdu -dS1wYXNjYWwub3Jnggp3d3cuZ251LmRlghR3d3cuZ251LmdlcndpbnNraS5kZYIV -d3d3LmdudS5nZXJ3aW5za2kubmV0ghV3d3cuZ251LmdlcndpbnNraS5vcmeCEXd3 -dy5nbnVwYXNjYWwuY29tghB3d3cuZ251cGFzY2FsLmRlghF3d3cuZ251cGFzY2Fs -Lm9yZ4INd3d3LmdudXBwLmNvbYIMd3d3LmdudXBwLmRlgg13d3cuZ251cHAub3Jn -gg53d3cuZ3J4LmdudS5kZYIfd3d3LmhhcnRtYW5uLXRyZXBwZW5wcm9ncmFtbS5k -ZYIXd3d3Lmhlcm9lbi5nZXJ3aW5za2kuZGWCHnd3dy5raW5kZXJ0cmVmZi16d2Vy -Z2VubGFuZC5kZYIXd3d3Lm1hcmt1cy5nZXJ3aW5za2kuZGWCGHd3dy5tYXJrdXMu -Z2Vyd2luc2tpLm5ldIIYd3d3Lm1hcmt1cy5nZXJ3aW5za2kub3Jngg93d3cubml0 -cmFtLXguZGWCH3d3dy5ub3NvZnR3YXJlcGF0ZW50cy1hd2FyZC5jb22CFnd3dy5w -ZXRlci5nZXJ3aW5za2kuZGWCF3d3dy5wZXRlci5nZXJ3aW5za2kubmV0ghd3d3cu -cGV0ZXIuZ2Vyd2luc2tpLm9yZ4IOd3d3LnBpZWtzaWcuZGWCEXd3dy5wdXBwZW53 -ZWx0LmRlghZ3d3cucm9sYW5kLWdvcmV0emtpLmRlggx3d3cuc25zZy5vcmeCGHd3 -dy5zcG9ydHNjaHVsZS10b2tpby5kZYIid3d3LnNwb3J0c2NodWxlLXRva2lvLmdl -cndpbnNraS5kZYIMd3d3LnRyY2FkLmRlghZ3d3cudHJlcHBlbnByb2dyYW1tLmRl -ghd3d3cudHJlcHBlbnByb2dyYW1tZS5kZYIXd3d3Mi5yb2xhbmQtZ29yZXR6a2ku -ZGUwgf4GA1UdIASB9jCB8zAIBgZngQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYG -CCsGAQUFBwIBFhpodHRwOi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUH -AgIwgZ4MgZtUaGlzIENlcnRpZmljYXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9u -IGJ5IFJlbHlpbmcgUGFydGllcyBhbmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGgg -dGhlIENlcnRpZmljYXRlIFBvbGljeSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNy -eXB0Lm9yZy9yZXBvc2l0b3J5LzCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2ANt0 -r+7LKeyx/so+cW0s5bmquzb3hHGDx12dTze2H79kAAABZjbQ9boAAAQDAEcwRQIh -AJPQ1+HbR+G9n3z0VafB0i4JeSy8ezBIroY4MKL8R+KTAiAv0BTWlVbkILpUxHBJ -SETcFM6BNO3J88nis6exkYpYJQB2ACk8UZZUyDlluqpQ/FgH1Ldvv1h6KXLcpMMM -9OVFR/R4AAABZjbQ9fgAAAQDAEcwRQIgd0pz3MdhGmf5NwUi9LRA2Hlvqk+QdPBS -A8+bk2eNhKcCIQDRp1qB20SMcGO2QQn5dwCBXgCyc5eWmrBx9VTIm62NFDANBgkq -hkiG9w0BAQsFAAOCAQEAZZD+pDD5smr9AMsz2OPQgDl4QeQD3oOU2t7WwxeRgsHk -LvaDyMSa5rQh62kUVpG2lDPqkeP5UNnHLE/CPpXLlTs7ZSd0DlL10mZ/BneRigul -E5/rRVhMJYP+nU+uRNoqbD3CHF7dfJ44xNw7Y8ZrhlbRzs3slIpDbhKruRhg1tIR -MnfAJEJ2+hJDVVFRgATm72i90Ecl4+klaRSDfEt0GeV6B6YvQBAkKRbyq1PQQozA -ZMEiarGBCXE9jd23ogtOQadF6J08LWmyZUTOdrrPgfm1/SpilLa+a4jm47O4jcwV -OAziXj37J3GdFSocAChhBWTVyAMMNGsCmEK+Gx+N7A== ------END CERTIFICATE----- -subject=/CN=gerwinski.de -issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 ---- -No client certificate CA names sent -Peer signing digest: SHA512 -Server Temp Key: ECDH, P-256, 256 bits ---- -SSL handshake has read 5129 bytes and written 335 bytes -Verification: OK ---- -New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384 -Server public key is 2048 bit -Secure Renegotiation IS supported -Compression: NONE -Expansion: NONE -No ALPN negotiated -SSL-Session: - Protocol : TLSv1.2 - Cipher : ECDHE-RSA-AES256-GCM-SHA384 - Session-ID: 6CA553D3D00570392E646AA1F5F14AE45811D6E3D9889E8C1AF44F3BFB40A767 - Session-ID-ctx: - Master-Key: 3A3B033166ACAF4355AB76E782BEC8C8B7139D76BA765BE68B680212C914979DE56D2F4478551921ECF6546C983F436E - PSK identity: None - PSK identity hint: None - SRP username: None - Start Time: 1541697411 - Timeout : 7200 (sec) - Verify return code: 0 (ok) - Extended master secret: no ---- -250 HELP -ehlo cassini -250-mx1.gerwinski.de Hello cassini [195.37.15.82] -250-SIZE 52428800 -250-8BITMIME -250-PIPELINING -250-AUTH PLAIN LOGIN CRAM-MD5 -250 HELP -auth -504 authentication mechanism not supported -auth plain -334 -mail from: me@gerwinski.de -501 Invalid base64 data -rset -250 Reset OK -mail from: me@gerwinski.de -250 OK -rcpt to: peter@gerwinski.de -451-195.37.15.82 is not yet authorized to deliver mail from <me@gerwinski.de> -451 to <peter@gerwinski.de>. Please try later. -rcpt to: peter@gerwinski.de -250 Accepted -data -354 Enter message, ending with "." on a line by itself -subject: x - -hallo -. -250 OK id=1gKnwY-00033a-6i -quit -221 mx1.gerwinski.de closing connection -closed -cassini/home/peter/bo/2018ws/es/20181108> diff --git a/20181108/streams-1.txt b/20181108/streams-1.txt deleted file mode 100644 index 14baa62ccdc73c0f1fcef401ba2ef00b1607078d..0000000000000000000000000000000000000000 --- a/20181108/streams-1.txt +++ /dev/null @@ -1,13 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181108> cat gibtsnicht.txt -cat: gibtsnicht.txt: Datei oder Verzeichnis nicht gefunden -cassini/home/peter/bo/2018ws/es/20181108> cat gibtsnicht.txt 2>/dev/null -cassini/home/peter/bo/2018ws/es/20181108> cat /dev/null -cassini/home/peter/bo/2018ws/es/20181108> ls -l /dev/null -crw-rw-rw- 1 root root 1, 3 Okt 21 20:46 /dev/null -cassini/home/peter/bo/2018ws/es/20181108> echo "2 + 2" | bc -4 -cassini/home/peter/bo/2018ws/es/20181108> echo "2 + 2" | sed -e 's/2/3/g' | bc -6 -cassini/home/peter/bo/2018ws/es/20181108> echo "2 + 2" | sed -e 's/2/3/g' -3 + 3 -cassini/home/peter/bo/2018ws/es/20181108> diff --git a/20181108/test-1.mail b/20181108/test-1.mail deleted file mode 100644 index cdc1a24ae7fc33dab377c6e30aebf81d27cd5b55..0000000000000000000000000000000000000000 --- a/20181108/test-1.mail +++ /dev/null @@ -1,8 +0,0 @@ -Date: Thu, 08 Nov 2018 18:04:57 +0100 -From: Steve Jobs <jobs@apple.com> -To: Peter Gerwinski <peter@gerwinski.de> -Subject: Hi! B-) - -Hallo. -SMTP ist schon was Tolles, oder? -So einfach ist es, E-Mail-Adressen zu fälschen. diff --git a/20181108/test-1.mbox b/20181108/test-1.mbox deleted file mode 100644 index f074735af31441971275f56b19581e2f56f274be..0000000000000000000000000000000000000000 --- a/20181108/test-1.mbox +++ /dev/null @@ -1,48 +0,0 @@ -From gates@microsoft.com Thu Nov 08 18:04:58 2018 -Return-path: <gates@microsoft.com> -Envelope-to: peter@phoenix.intern -Delivery-date: Thu, 08 Nov 2018 18:04:58 +0100 -Received: from localhost.lan ([127.0.0.1] helo=m31.gerwinski.de) - by phoenix.intern with esmtp (Exim 4.80) - (envelope-from <gates@microsoft.com>) - id 1gKnjl-0001RA-FA - for peter@phoenix.intern; Thu, 08 Nov 2018 18:04:58 +0100 -Received: from [195.37.15.82] (helo=cassini) - by m31.gerwinski.de with smtp (Exim 4.84_2) - (envelope-from <gates@microsoft.com>) - id 1gKnij-00026L-3I - for peter@gerwinski.de; Thu, 08 Nov 2018 18:04:56 +0100 -From: Steve Jobs <jobs@apple.com> -To: Peter Gerwinski <peter@gerwinski.de> -Subject: Hi! B-) -Message-Id: <E1gKnjl-0001RA-FA@phoenix.intern> -Date: Thu, 08 Nov 2018 18:04:57 +0100 -X-Spam_score: 1.6 -X-Spam_score_int: 16 -X-Spam_bar: + -X-Spam_report: Spam detection software, running on the system "phoenix.intern", has - identified this incoming email as possible spam. The original message - has been attached to this so you can view it (if it isn't spam) or label - similar future email. If you have any questions, see - @@CONTACT_ADDRESS@@ for details. - - Content preview: Hallo. SMTP ist schon was Tolles, oder? So einfach ist es, - E-Mail-Adressen zu fälschen. [...] - - Content analysis details: (1.6 points, 5.0 required) - - pts rule name description - ---- ---------------------- -------------------------------------------------- - 0.0 FSL_HELO_NON_FQDN_1 FSL_HELO_NON_FQDN_1 - 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% - [score: 0.4805] - 0.8 RDNS_NONE Delivered to internal network by a host with no rDNS - 0.0 HELO_NO_DOMAIN Relay reports its domain incorrectly -Status: RO -Content-Length: 89 -Lines: 3 - -Hallo. -SMTP ist schon was Tolles, oder? -So einfach ist es, E-Mail-Adressen zu fälschen. - diff --git a/20181108/test-2.mbox b/20181108/test-2.mbox deleted file mode 100644 index c1d2b73f1b1d11cddfd5505ae8aca0ab1fd52d90..0000000000000000000000000000000000000000 --- a/20181108/test-2.mbox +++ /dev/null @@ -1,46 +0,0 @@ -From me@gerwinski.de Thu Nov 08 18:18:18 2018 -Return-path: <me@gerwinski.de> -Envelope-to: peter@phoenix.intern -Delivery-date: Thu, 08 Nov 2018 18:18:18 +0100 -Received: from localhost.lan ([127.0.0.1] helo=m31.gerwinski.de) - by phoenix.intern with esmtp (Exim 4.80) - (envelope-from <me@gerwinski.de>) - id 1gKnwf-0002IG-UI - for peter@phoenix.intern; Thu, 08 Nov 2018 18:18:18 +0100 -Received: from [195.37.15.82] (helo=cassini) - by m31.gerwinski.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) - (Exim 4.84_2) - (envelope-from <me@gerwinski.de>) - id 1gKnwY-00033a-6i - for peter@gerwinski.de; Thu, 08 Nov 2018 18:18:17 +0100 -subject: x -Message-Id: <E1gKnwf-0002IG-UI@phoenix.intern> -From: me@gerwinski.de -Date: Thu, 08 Nov 2018 18:18:17 +0100 -X-Spam_score: 2.6 -X-Spam_score_int: 26 -X-Spam_bar: ++ -X-Spam_report: Spam detection software, running on the system "phoenix.intern", has - identified this incoming email as possible spam. The original message - has been attached to this so you can view it (if it isn't spam) or label - similar future email. If you have any questions, see - @@CONTACT_ADDRESS@@ for details. - - Content preview: hallo [...] - - Content analysis details: (2.6 points, 5.0 required) - - pts rule name description - ---- ---------------------- -------------------------------------------------- - 0.0 FSL_HELO_NON_FQDN_1 FSL_HELO_NON_FQDN_1 - 1.0 MISSING_HEADERS Missing To: header - 0.8 BAYES_50 BODY: Bayes spam probability is 40 to 60% - [score: 0.4886] - 0.8 RDNS_NONE Delivered to internal network by a host with no rDNS - 0.0 HELO_NO_DOMAIN Relay reports its domain incorrectly - 0.0 TO_NO_BRKTS_NORDNS To: misformatted and no rDNS -Content-Length: 6 -Lines: 1 - -hallo - diff --git a/20181108/vic-1.txt b/20181108/vic-1.txt deleted file mode 100644 index dbe7f9684b4f554bae98fb0cc5d5ceca5987e71e..0000000000000000000000000000000000000000 --- a/20181108/vic-1.txt +++ /dev/null @@ -1,11 +0,0 @@ -cassini/home/peter/bo/2018ws/es/20181108> ls -rt *.c *.cpp *.sh *.py *.tex ls: Zugriff auf '*.cpp' nicht möglich: Datei oder Verzeichnis nicht gefunden -ls: Zugriff auf '*.sh' nicht möglich: Datei oder Verzeichnis nicht gefunden -ls: Zugriff auf '*.py' nicht möglich: Datei oder Verzeichnis nicht gefunden -hello.c es-20182208.tex hello-42.c -cassini/home/peter/bo/2018ws/es/20181108> ls -rt *.c *.cpp *.sh *.py *.tex 2> /dev/null -hello.c es-20182208.tex hello-42.c -cassini/home/peter/bo/2018ws/es/20181108> ls -rt *.c *.cpp *.sh *.py *.tex 2> /dev/null | tail -1 -hello-42.c -cassini/home/peter/bo/2018ws/es/20181108> file_template=$( ls -rt *.c *.cpp *.sh *.py *.tex 2> /dev/null | tail -1 ) -cassini/home/peter/bo/2018ws/es/20181108> echo $file_template -hello-42.c diff --git a/20181115/photo-20181115-185731.jpg b/20181115/photo-20181115-185731.jpg deleted file mode 100644 index c6cf8cbc08c53a45a434b5e995e77e94d32af255..0000000000000000000000000000000000000000 Binary files a/20181115/photo-20181115-185731.jpg and /dev/null differ diff --git a/20181115/photo-20181115-185731.txt b/20181115/photo-20181115-185731.txt deleted file mode 100644 index 4bfc5538c0ad99445572ec10c8e673f838fe11cd..0000000000000000000000000000000000000000 --- a/20181115/photo-20181115-185731.txt +++ /dev/null @@ -1 +0,0 @@ -README: Routing, NAT diff --git a/20181115/photo-20181115-185835.jpg b/20181115/photo-20181115-185835.jpg deleted file mode 100644 index 2e66236bd07af65df4a2409f66dc16130c33835b..0000000000000000000000000000000000000000 Binary files a/20181115/photo-20181115-185835.jpg and /dev/null differ diff --git a/20181115/photo-20181115-185835.txt b/20181115/photo-20181115-185835.txt deleted file mode 100644 index a13adfc5078ccc0d6e15594994195e1198db3ab8..0000000000000000000000000000000000000000 --- a/20181115/photo-20181115-185835.txt +++ /dev/null @@ -1 +0,0 @@ -README: Netzmasken, private IP-Bereiche diff --git a/20181122/I2C_data_transfer.pdf b/20181122/I2C_data_transfer.pdf deleted file mode 100644 index 0d5b8a241c624391cbf6f3a30f26320559358e1d..0000000000000000000000000000000000000000 Binary files a/20181122/I2C_data_transfer.pdf and /dev/null differ diff --git a/20181122/SPI_single_slave.pdf b/20181122/SPI_single_slave.pdf deleted file mode 100644 index 6f724dad4a8ed23b262b0b1c672bf85b72405155..0000000000000000000000000000000000000000 Binary files a/20181122/SPI_single_slave.pdf and /dev/null differ diff --git a/20181122/SPI_three_slaves.pdf b/20181122/SPI_three_slaves.pdf deleted file mode 100644 index b67dc94c790a62935c7b353449e2ce8c75a7d9fe..0000000000000000000000000000000000000000 Binary files a/20181122/SPI_three_slaves.pdf and /dev/null differ diff --git a/20181122/SPI_three_slaves_daisy_chained.pdf b/20181122/SPI_three_slaves_daisy_chained.pdf deleted file mode 100644 index 46ac2027cfcbd598a609e43ce74e19e75d374ead..0000000000000000000000000000000000000000 Binary files a/20181122/SPI_three_slaves_daisy_chained.pdf and /dev/null differ diff --git a/20181122/Zeichen_123.pdf b/20181122/Zeichen_123.pdf deleted file mode 120000 index fdbc897227df059cfda790a16555e6e417682116..0000000000000000000000000000000000000000 --- a/20181122/Zeichen_123.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/Zeichen_123.pdf \ No newline at end of file diff --git a/20181122/es-20181122.pdf b/20181122/es-20181122.pdf deleted file mode 100644 index 87ae3461305efab3acaf91b15423d761d8869e3f..0000000000000000000000000000000000000000 Binary files a/20181122/es-20181122.pdf and /dev/null differ diff --git a/20181122/es-20181122.tex b/20181122/es-20181122.tex deleted file mode 100644 index fe3357bf989588e13822829256e314eaa24de1d7..0000000000000000000000000000000000000000 --- a/20181122/es-20181122.tex +++ /dev/null @@ -1,851 +0,0 @@ -% es-20181122.pdf - Lecture Slides on Embedded Systems -% Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -% README: TCP/IP in der Praxis: SSH, X11, GNU screen, Programmierung; Bus-Systeme - -\documentclass[10pt,t]{beamer} - -\usepackage{pgslides} -\usepackage{rotating} -\usepackage{tikz} - -\newcommand{\underconstruction}{% - \begin{picture}(0,0) - \put(9,0.9){\makebox(0,0)[b]{\includegraphics[width=1.5cm]{Zeichen_123.pdf}}} - \put(9,0.6){\makebox(0,0)[t]{\shortstack{Änderungen\\vorbehalten}}} - \end{picture}} - -\title{Eingebettete Systeme} -\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{22.\ November 2018} - -\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} - -\begin{document} - -\maketitleframe - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \item[\textbf{2}] \textbf{Einführung in Unix} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \begin{itemize} - \color{medgreen} - \item[3.0] Vorbereitungen - \item[3.1] IP-Adressen - \item[3.2] TCP- und UDP-Ports - \item[3.3] TCP-Protokolle - \item[3.4] Routing - \item[3.5] Netzwerkanalyse - \color{orange} - \item[3.6] SSH - \color{red} - \item[3.7] X11 - \item[3.8] GNU screen - \item[3.9] Programmierung - \end{itemize} - \item[\textbf{4}] \textbf{Bus-Systeme} - \item[\textbf{6}] \textbf{Echtzeit} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\setcounter{section}{2} -\section{TCP/IP in der Praxis} -\setcounter{subsection}{-1} -\subsection{Vorbereitungen} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Verkabelung: Twisted-Pair-Kabel, Switches - \smallskip - \item - Automatismen abschalten - \end{itemize} - -\end{frame} - -\subsection{IP-Adressen} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item IP-Adresse zuweisen:\\ - \lstinline[style=cmd]{ip addr} (Linux)\\ - \lstinline[style=cmd]{ifconfig} (Unix allgemein)\\ - \lstinline[style=cmd]{ipconfig} (MS Windows) - \smallskip - \item % \lstinline[style=cmd]{ip addr add <Netz>} -% \\ - Beispiel:\\ - \lstinline[style=cmd]{ip addr add 192.168.42.197/24}\\ -% \item \lstinline[style=cmd]{ip link} - \smallskip - \item Verbindung prüfen:\\ - \lstinline[style=cmd]{ping <IP-Adresse>} - \end{itemize} - -\end{frame} - -\begin{frame} - - \showsubsection - - IPv4-Adressen: - \begin{itemize} - \item - 32 Bit - \item - dezimal, 4 Gruppen zu je 8 Bit (0--255), durch Punkte getrennt - \end{itemize} - - \medskip - - IPv6-Adressen: - \begin{itemize} - \item - 128 Bit - \item - hexadezimal, 8 Gruppen zu je 4 Hex-Ziffern, durch Doppelpunkte getrennt - \item - Führende Nullen dürfen weggelassen werden. - \item - Zwei Dopppelpunkte bedeuten: Mit Nullen auffüllen. - \item - Literatur und Beispiel: \url{https://de.wikipedia.org/wiki/IPv6} - \end{itemize} - -\end{frame} - -%\subsection{MAC-Adressen} -% -%\begin{frame} -% -% \showsubsection -% -% \begin{itemize} -% \item \lstinline[style=cmd]{ip neig} -% \end{itemize} -% -%\end{frame} - -\subsection{TCP- und UDP-Ports} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{nc <IP> <Port>}\\ - Verbindung zu Programm $\langle$Port$\rangle$ - auf Rechner $\langle$IP$\rangle$ aufnehmen - \item - \lstinline[style=cmd]{nc -l <Port>} - oder - \lstinline[style=cmd]{nc -p <Port> -l}\\ - auf eingehende Verbindungen warten ("`lauschen"') - \medskip - \item - TCP-Ports: Verbindungskonzept, Netzwerk prüft - \item - UDP-Ports: einzelne Pakete, Anwendung muß selbst prüfen - \item - ICMP: keine Ports, nur Rechner:\\ - Erreichbarkeit, Eigenschaften der Übertragung - \end{itemize} - - \medskip - - \begin{center} - \renewcommand{\arraystretch}{1.2} - \begin{tabular}{|l|}\hline - Anwendung: HTTP, SMTP, \dots \\\hline - Transport: TCP-/UDP-Ports, ICMP \\\hline - Internet: IP-Adresse \\\hline - Netzwerkzugang: Hardware-/MAC-Adresse \\\hline - \end{tabular} - \end{center} - -\end{frame} - -\subsection{TCP-Protokolle} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \textbf{HTTP}\\ - \lstinline[style=terminal]{$ ¡nc -C <Rechner> 80¿}\\ - \lstinline[style=cmd]{GET / HTTP/1.1}\\ - \lstinline[style=cmd]{Host: www.hs-bochum.de}\\ - (Leerzeile) - \begin{onlyenv}<2> - \par\medskip - URL: Schema://Benutzer:Passwort@Rechner:port/Pfad?Query\#Fragment - \end{onlyenv} - \begin{onlyenv}<3-> - \medskip - \item - \textbf{SMTP}\\ - \lstinline[style=cmd]{HELO cassini}\\ - \lstinline[style=cmd]{MAIL FROM: <example@example.com>}\\ - \lstinline[style=cmd]{RCPT TO: <beispiel@example.de>}\\ - (E-Mail-Header -- Teil der Nutzdaten)\\ - \lstinline[style=cmd]{From: Eddie Example <example@example.com>}\\ - \lstinline[style=cmd]{To: Bert Beispiel <beispiel@example.de>}\\ - \lstinline[style=cmd]{Subject: Hello, world!}\\ - (Leerzeile)\\ - \lstinline[style=cmd]{Hi, there!}\\ - \lstinline[style=cmd]{.} - \medskip - \item - Protokolle "`mal eben"' selbst schreiben: \file{inetd} - \vspace*{-1cm} - \end{onlyenv} - \end{itemize} - -\end{frame} - -\subsection{Routing} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{ip route} (Linux)\\ - \lstinline[style=cmd]{route} (MS-Windows, Unix)\\ - \lstinline[style=cmd]{netstat -nr} (MacOS)\\[\medskipamount] - \hspace*{-0.85cm}\includegraphics[width=12.5cm,trim={0cm 7cm 0cm 3cm},clip]{../20181115/photo-20181115-185731.jpg}\hspace*{-0.75cm} - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\subsection{Netzwerkanalyse} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{tcpdump} - \item - \lstinline[style=cmd]{wireshark} - \item - \lstinline[style=cmd]{ettercap} - \end{itemize} - -\end{frame} - -\subsection{SSH} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{SSH <Rechner>} - \item - \lstinline[style=cmd]{-C}: Komprimierung - \item - \lstinline[style=cmd]{-L}: lokalen Port auf Remote-Port umleiten - \item - \lstinline[style=cmd]{-R}: Remote-Port auf lokalen Port umleiten - \end{itemize} - -\end{frame} - -\subsection{X11} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Grafik-Bildschirm und Eingabegeräte über's Netz - \item - \lstinline[style=cmd]{DISPLAY}-Variable: X-Server: Rechner und Bildschirm - \item - \lstinline[style=cmd]{ssh -X}: X11-Forwarding - \end{itemize} - -\end{frame} - -\subsection{GNU screen} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Text-Bildschirm und Eingabegeräte über's Netz - \item - \lstinline[style=cmd]{Ctrl+A c}: neues Fenster (create) - \item - \lstinline[style=cmd]{Ctrl+A Leertaste}: nächstes Fenster - \item - \lstinline[style=cmd]{Ctrl+A 3}: Fenster Nr.\ 3 - \item - \lstinline[style=cmd]{Ctrl+A ESC}: hochscrollen, suchen, markieren (copy) - \item - \lstinline[style=cmd]{Ctrl+A Ctrl+]}: einfügen (paste) - \item - \lstinline[style=cmd]{Ctrl+A d}: von \file{screen} ablösen (detach) - \item - \lstinline[style=cmd]{screen -x}: an laufenden \file{screen} andocken - \medskip - \item - ähnliche Funktionalität für Grafik: \file{x2go} - \end{itemize} - -\end{frame} - -\subsection{Programmierung} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \file{tcpip-server-0.c}: auf Port 1234 lauschen, "`Hello, world!"' senden - \item - \file{tcpip-client-0.c}: Webseite \url{http://ngc224.gerwinski.de} abrufen - \end{itemize} - -\end{frame} - -\section{Bus-Systeme} -\subsection{Was sind Bus-Systeme?} - -\begin{frame} - \showsection - \showsubsection - - \begin{quote} - Ein Bus ist ein System zur Datenübertragung zwischen mehreren - Teilnehmern über einen gemeinsamen Übertragungsweg. -% \color{gray} -% Findet eine Datenübertragung zwischen zwei Teilnehmern statt, so -% müssen die übrigen Teilnehmer schweigen, da sie sich sonst -% gegenseitig stören würden. Umgangssprachlich werden mitunter -- -% oft aus historischen Gründen – auch Datenübertragungssysteme als -% "`Bus"' bezeichnet, die technisch eigentlich eine andere -% Topologie besitzen. - - \medskip - - \strut\hfill\url{https://de.wikipedia.org/wiki/Bus_(Datenverarbeitung)} - \end{quote} - Beispiele: - \begin{itemize} - \item - Computer kommuniziert mit Peripherie - \item - Computer kommunizieren (direkt) miteinander - \item - Prozessor kommuniziert mit externem Speicher - \item - Teile eines Prozessors kommunizieren miteinander - \end{itemize} -\end{frame} - -\begin{frame} - \showsection - \showsubsection - Standard-Computer: - \begin{itemize} - \item - Einsteckkarten: PCI (und Vorgänger) - \item - Festplatten: SATA (und Vorgänger) - \item - USB, FireWire, \dots - \item - Ethernet, CAN-Bus, \dots - \item - WLAN, BlueTooth, IR, \dots - \item - PS/2, RS-232, Centronics - \end{itemize} - - \medskip - - Minimal-Hardware: - \begin{itemize} - \item - RS-232 - \item - \ItwoC\ (TWI) - \item - SPI - \end{itemize} - - \begin{onlyenv}<1> - \begin{picture}(0,0) - \put(5,1.5){\includegraphics[height=3cm]{motherboard-anschluesse.jpg}} - \end{picture} - \end{onlyenv} - \begin{onlyenv}<2> - \begin{picture}(0,0)(-1.3,-4) - \put(1.8,-4.9){\includegraphics[height=3.5cm]{kompassmodul-an-roboter.jpg}} - \put(6.1,-3.3){\includegraphics[height=4.5cm]{kompassmodul.jpg}} - \put(6.1,1.2){\makebox(0,0)[tr]{\tikz{\draw(0,0)--(-1.9,-3.6);}}} - \put(6.1,-3.3){\makebox(0,0)[br]{\tikz{\draw(0,0)--(-1.8,0.2);}}} - \end{picture} - \end{onlyenv} -\end{frame} - -\begin{frame}[fragile] - - \showsection - \showsubsection - - \vspace*{-\bigskipamount} - \begin{tabbing} - \newterm{Punkt-zu-Punkt}\quad\=\kill - \newterm{seriell} \> jedes Bit einzeln übertragen\\ - \newterm{parallel} \> mehrere Bits gleichzeitig\\[\smallskipamount] - \newterm{synchron} \> Abgleich über Steuerleitung: \newterm{Takt}\\ - \newterm{asynchron} \> Abgleich über Zeitvereinbarungen\\[\smallskipamount] - \newterm{Punkt-zu-Punkt} \> genau zwei Teilnehmer\\ - \newterm{busfähig} \> mehrere Teilnehmer, mit \newterm{Adressierung} - \end{tabbing} - - \begin{itemize} - \item - \ItwoC: seriell, synchron, mit Adressierung - \item - RS-232: seriell, asynchron, Punkt-zu-Punkt - \item - RS-485, USB, CAN: seriell, asynchron, mit Adressierung - \item - SPI: seriell, synchron, Punkt-zu-Punkt oder mit Adressierung - \end{itemize} - -\end{frame} - -\subsection{RS-232} - -\begin{frame} - \showsection - \showsubsection - - seriell - \begin{itemize} - \item - \newterm{TX\/}: 1 Leitung für Daten - \item - \newterm{RX\/}: ggf.\ 1 Leitung für Daten in der anderen Richtung - \item - \newterm{GND\/}: gemeinsame \newterm{Masse} - \item - evtl.\ zusätzliche Steuerleitungen - \end{itemize} - - \medskip - - asynchron - \begin{itemize} - \item - \emph{keine\/} Taktleitung für Abgleich, wann Daten anliegen - \item - Stattdessen: Abgleich über Zeitvereinbarungen - \arrowitem - Jeder Teilnehmer braucht eine eigene Zeitbasis. - \end{itemize} - - \medskip - - Punkt-zu-Punkt - \begin{itemize} - \item - nur 2 Teilnehmer vorgesehen - \end{itemize} -\end{frame} - -\begin{frame} - \showsubsection - \vspace*{-0.35cm} - \begin{center} - \includegraphics[scale=0.9]{rs-232.pdf} - \end{center} -\end{frame} - -\subsection{\protect\ItwoC\ (TWI)} - -\begin{frame} - \showsection - \showsubsection - - \ItwoC\ = Inter-IC; TWI = Two-Wire-Interface - - \medskip - - seriell - \begin{itemize} - \item - \newterm{SDA\/}: 1 Leitung für Daten (in beiden Richtungen) - \item - \newterm{SCL\/}: Taktleitung (Clock) - \item - \newterm{GND\/}: gemeinsame Masse - \item - evtl.\ \newterm{VCC\/}: Stromversorgung für Peripheriegerät - \end{itemize} - - \medskip - - synchron - \begin{itemize} - \item - Abgleich über\\Taktleitung - \begin{picture}(0,0) - \put(0.4,-0.4){\includegraphics[width=9.7cm]{I2C_data_transfer.pdf}} - \end{picture} - \end{itemize} - - \medskip - - busfähig - \begin{itemize} - \item - \newterm{Master\/} initiiert Kommuniation und steuert Taktleitung - \item - erstes gesendetes Byte: \newterm{Adresse\/} des Teilnehmers - \item - 2 Adressen pro Teilnehmer: Lesen/Schreiben - \end{itemize} - \vspace*{-1cm} -\end{frame} - -\subsection{SPI} - -\begin{frame} - \showsection - \showsubsection - - Serial Peripheral Interface - - \medskip - - seriell - \begin{itemize} - \item - \newterm{MOSI\/}: Master Out, Slave In - \item - \newterm{MISO\/}: Master In, Slave Out - \item - \newterm{SCLK\/}: Taktleitung (Clock) - \item - \newterm{$\overline{\text{SS}}$\/}: Slave Select (invertiert) - \item - \newterm{GND\/}: gemeinsame Masse - \item - evtl.\ \newterm{VCC\/}: Stromversorgung für Peripheriegerät - \end{itemize} - - \medskip - - synchron - \begin{itemize} - \item - Abgleich über Taktleitung - \end{itemize} - - \medskip - - busfähig - \begin{itemize} - \item - \newterm{Master\/} initiiert Kommuniation und steuert Taktleitung - \item - \newterm{Slave\/} wird über \newterm{Slave Select\/} ausgewählt - \begin{picture}(0,0)(0,-0.2) - \only<1>{\put(-2.175,2.875){\includegraphics[scale=0.7]{SPI_single_slave.pdf}}} - \only<2>{\put(-2.0,3.0){\includegraphics[scale=0.7]{SPI_three_slaves.pdf}}} - \only<2>{\put(2.55,3.1){\begin{minipage}[t]{2.5cm} - \newterm{Stern} - \end{minipage}}} - \only<3->{\put(-2.0,3.0){\includegraphics[scale=0.7]{SPI_three_slaves_daisy_chained.pdf}}} - \only<3->{\put(2.55,3.1){\begin{minipage}[t]{2.5cm} - \newterm{Kaskade}\\ - \newterm{Daisy Chain}\pause[4]\par\smallskip - \setlength{\leftskip}{-3.5cm}\small - Slave gibt MOSI-Input um 1 Takt verzögert - an MISO aus \textarrow\ Master setzt - "`im richtigen Moment"' $\overline{\text{SS}}$ - \end{minipage}}} - \end{picture} - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\iffalse - -\subsection{Beispiel: Benutzung des \protect\ItwoC-Busses} - -\begin{frame}[fragile] - - \showsection - \showsubsection - - \begin{picture}(0,0) - \put(8.75,-0.75){\includegraphics[height=2.75cm]{kompassmodul.jpg}} - \end{picture}% - - \begin{onlyenv}<1> - \begin{lstlisting}[gobble=6] - void read_compass (uint16_t *x, uint16_t *y) - { - I2CTWI_transmit2Bytes (0x60, 0x00, 0x02); // set coil - mSleep (1); - I2CTWI_transmit2Bytes (0x60, 0x00, 0x04); // reset coil - mSleep (5); - uint8_t result[5]; - I2CTWI_transmit2Bytes (0x60, 0x00, 0x01); // Messung starten - mSleep (5); // 5ms warten, bis Sensor fertig gemessen hat - I2CTWI_transmitByte (0x60, 0x01); // Leseindex setzen - I2CTWI_readBytes (0x61, result, 4); // lesen: msb x, lsb x, msb y, lsb y - result[0] &= 0b00001111; // Unwichtge Bits vom msb abschneiden - result[2] &= 0b00001111; - *x = (result[0] << 8) + result[1]; // Wert berechnen aus msb und lsb - *y = (result[2] << 8) + result[3]; - } - \end{lstlisting} - \end{onlyenv} - \begin{onlyenv}<2-3> - \begin{lstlisting}[gobble=6,style=shy] - ²void read_compass (uint16_t *x, uint16_t *y) - { ... } - - int main (void) - { - uint16_t compass_x, compass_y; - read_compass (&compass_x, &compass_y);¿ - ³writeInteger (compass_x, DEC); - writeChar (' '); - writeInteger (compass_y, DEC); - writeChar ('\n');¿ - ²return 0; - }¿ - \end{lstlisting} - \end{onlyenv} - \begin{onlyenv}<4-> - \begin{lstlisting}[gobble=6,style=shy] - °void read_compass (uint16_t *x, uint16_t *y) - { - I2CTWI_transmit2Bytes (0x60, 0x00, 0x02); // set coil - ¿mSleep (1); - I2CTWI_transmit2Bytes (0x60, 0x00, 0x04); // reset coil - mSleep (5); - uint8_t result[5]; - I2CTWI_transmit2Bytes (0x60, 0x00, 0x01); // Messung starten - mSleep (5); // 5ms warten, bis Sensor fertig gemessen hat - I2CTWI_transmitByte (0x60, 0x01); // Leseindex setzen - I2CTWI_readBytes (0x61, result, 4); // lesen: msb x, lsb x, msb y, lsb y - result[0] &= 0b00001111; // Unwichtge Bits vom msb abschneiden - result[2] &= 0b00001111; - *x = (result[0] << 8) + result[1]; // Wert berechnen aus msb und lsb - *y = (result[2] << 8) + result[3]; - °}¿ - \end{lstlisting} - \end{onlyenv} - \begin{onlyenv}<5-7> - \begin{picture}(0,0) - \color{red} - \put(3.85,5.3){\vector(1,1){0.5}} - \put(3.5,5.2){\makebox(0,0)[t]{\shortstack{Gerät adressieren:\\Schreib-Adresse}}} - \end{picture} - \end{onlyenv} - \begin{onlyenv}<6-7> - \begin{picture}(0,0) - \color{red} - \put(5.25,4.5){\vector(0,1){1.3}} - \put(5.25,4.4){\makebox(0,0)[t]{\shortstack{Register-Nr.\\innerhalb des Geräts}}} - \end{picture} - \end{onlyenv} - \begin{onlyenv}<7> - \begin{picture}(0,0) - \color{red} - \put(6.6,5.3){\vector(-1,1){0.5}} - \put(6.95,5.2){\makebox(0,0)[t]{Befehl: Spule an}} - \end{picture} - \end{onlyenv} - \vspace*{-2cm} - -\end{frame} - -\begin{frame}[fragile] - - \showsection - \showsubsection - - \begin{picture}(0,0) - \put(8.75,-0.75){\includegraphics[height=2.75cm]{kompassmodul.jpg}} - \end{picture}% - - \begin{lstlisting}[style=shy] - ¡void read_compass (uint16_t *x, uint16_t *y) - { - I2CTWI_transmit2Bytes (0x60, 0x00, 0x02); // set coil - mSleep (1); - I2CTWI_transmit2Bytes (0x60, 0x00, 0x04); // reset coil - mSleep (5); - ¿²uint8_t result[5]; - I2CTWI_transmit2Bytes (0x60, 0x00, 0x01); // Messung starten - mSleep (5); // 5ms warten, bis Sensor fertig gemessen hat - ¿³I2CTWI_transmitByte (0x60, 0x01); // Leseindex setzen - ¿°I2CTWI_readBytes (0x61, result, 4); // lesen: msb x, lsb x, msb y, lsb y - result[0] &= 0b00001111; // Unwichtge Bits vom msb abschneiden - result[2] &= 0b00001111; - *x = (result[0] << 8) + result[1]; // Wert berechnen aus msb und lsb - *y = (result[2] << 8) + result[3]; - ¿¡}¿ - \end{lstlisting} - \vspace*{-2cm} - -\end{frame} - -\begin{frame}[fragile] - - \showsection - \showsubsection - - \begin{picture}(0,0) - \put(8.75,-0.75){\includegraphics[height=2.75cm]{kompassmodul.jpg}} - \end{picture}% - Messung:\\ - Roboter im Kreis drehen lassen,\\ - x- und y-Werte aufzeichnen\\ - und gegeneinander auftragen - - \smallskip - Ergebnis: Ellipse - \begin{picture}(0,0)(0,0.5) - \put(5,-3){\includegraphics[height=4cm]{kompass-messung.png}} - \end{picture}% - - \bigskip - Anwendung:\\ - Roboter in eine Himmelsrichtung ausrichten - \begin{itemize} - \item - Achsen normieren:\\ - Mittelwert subtrahieren - \begin{picture}(0,0)(0,0.5) - \put(3.75,0.95){\vector(1,0){4}} - \put(7.55,0.90){\makebox(0,0)[t]{x}} - \put(5.75,-1.05){\vector(0,1){4}} - \put(5.75,2.95){\makebox(0,0)[r]{y}} - \end{picture}% - \item - Nulldurchgang einer Achse\\ - markiert eine Himmelsrichtung - \item - Vorzeichen der anderen Achse\\ - sagt aus, welche Himmelsrichtung - \end{itemize} - \vspace{-0.5cm} - \begin{flushright} - Beispiel: nach Norden ausrichten\\ - Grob drehen, bis $y$ positiv ist, - fein drehen, bis $x = 0$ ist - \end{flushright} -% $x = 0$, $y$ positiv: Norden\\ -% $x = 0$, $y$ negativ: Süden -% $y = 0$, $x < 0$: Westen -% $y = 0$, $x > 0$: Osten - \vspace*{-2cm} - -\end{frame} - -\fi - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}}% - \item[\textbf{2}] \textbf{Einführung in Unix} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \item[\textbf{4}] \textbf{Bus-Systeme} - \begin{itemize} - \color{medgreen} - \item[5.1] Was sind Bus-Systeme? - \item[5.2] RS-232 - \item[5.3] \ItwoC\ (TWI) - \item[5.4] SPI -% \item[5.5] Beispiel: Benutzung des \ItwoC-Busses - \color{red} - \item[5.5] PWM - \end{itemize} - \item[\textbf{6}] \textbf{Echtzeit} - \begin{itemize} - \color{red} - \item[5.1] Was ist Echtzeit? - \item[5.2] Echtzeitprogrammierung - \item[5.3] Multitasking - \item[5.4] Ressourcen - \item[5.5] Prioritäten - \end{itemize} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \underconstruction - \end{itemize} - -\end{frame} - -\end{document} diff --git a/20181122/kompass-messung.png b/20181122/kompass-messung.png deleted file mode 120000 index 85cfa0d3840e7542ebb6dd2092be6c2a6e08fbb1..0000000000000000000000000000000000000000 --- a/20181122/kompass-messung.png +++ /dev/null @@ -1 +0,0 @@ -../common/kompass-messung.png \ No newline at end of file diff --git a/20181122/kompassmodul-an-roboter.jpg b/20181122/kompassmodul-an-roboter.jpg deleted file mode 120000 index dab8b38c1a92bf8072d42dc3abcc07be54a58c7b..0000000000000000000000000000000000000000 --- a/20181122/kompassmodul-an-roboter.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/kompassmodul-an-roboter.jpg \ No newline at end of file diff --git a/20181122/kompassmodul.jpg b/20181122/kompassmodul.jpg deleted file mode 120000 index be108a5341df13a693959dbe69b7b9541b36fc4c..0000000000000000000000000000000000000000 --- a/20181122/kompassmodul.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/kompassmodul.jpg \ No newline at end of file diff --git a/20181122/logo-hochschule-bochum-cvh-text-v2.pdf b/20181122/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 120000 index 4aa99b8f81061aca6dcaf43eed2d9efef40555f8..0000000000000000000000000000000000000000 --- a/20181122/logo-hochschule-bochum-cvh-text-v2.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20181122/logo-hochschule-bochum.pdf b/20181122/logo-hochschule-bochum.pdf deleted file mode 120000 index b6b9491e370e499c9276918182cdb82cb311bcd1..0000000000000000000000000000000000000000 --- a/20181122/logo-hochschule-bochum.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20181122/motherboard-anschluesse.jpg b/20181122/motherboard-anschluesse.jpg deleted file mode 120000 index 07335d7dff65c71a683588d2ed108485c4653fb7..0000000000000000000000000000000000000000 --- a/20181122/motherboard-anschluesse.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/motherboard-anschluesse.jpg \ No newline at end of file diff --git a/20181122/pgslides.sty b/20181122/pgslides.sty deleted file mode 120000 index 5be1416f4216f076aa268901f52a15d775e43f64..0000000000000000000000000000000000000000 --- a/20181122/pgslides.sty +++ /dev/null @@ -1 +0,0 @@ -../common/pgslides.sty \ No newline at end of file diff --git a/20181122/rs-232.pdf b/20181122/rs-232.pdf deleted file mode 100644 index 236ef5bf182048842613c5416b91afb68f451fa6..0000000000000000000000000000000000000000 Binary files a/20181122/rs-232.pdf and /dev/null differ diff --git a/20181122/tcpip-client-0.c b/20181122/tcpip-client-0.c deleted file mode 100644 index 6c6d6d89daeeff447a7bb87aee5da2e162269167..0000000000000000000000000000000000000000 --- a/20181122/tcpip-client-0.c +++ /dev/null @@ -1,56 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <netdb.h> -#include <sys/socket.h> -#include <arpa/inet.h> - -#define TARGET_HOST "ngc224.gerwinski.de" -#define PORT 80 -#define COMMAND "GET /\r\n" - -void error (char *msg) -{ - fprintf (stderr, "%s\n", msg); - exit (1); -} - -int main (void) -{ - int s; - struct sockaddr_in name; - if ((s = socket (PF_INET, SOCK_STREAM, 0)) < 0) - error ("cannot create socket"); - memset (&name, 0, sizeof (name)); - name.sin_family = AF_INET; - name.sin_port = htons (PORT); - name.sin_addr.s_addr = htonl (INADDR_ANY); - struct hostent *ho = gethostbyname (TARGET_HOST); - if (!ho) - { - close (s); - error ("name server lookup error"); - } - if (ho->h_length > (int) sizeof (name.sin_addr)) - ho->h_length = sizeof (name.sin_addr); - memcpy (&name.sin_addr, ho->h_addr, ho->h_length); - if (connect (s, (struct sockaddr *) &name, sizeof (name)) < 0) - { - close (s); - error ("cannot connect to socket"); - } - send (s, COMMAND, strlen (COMMAND), 0); - ssize_t l; - do - { - char buffer[100]; - l = recv (s, buffer, 100, 0); - if (l > 0) - write (1, buffer, l); - } - while (l > 0); - shutdown (s, SHUT_RDWR); - close (s); - return 0; -} diff --git a/20181122/tcpip-client-1.cpp b/20181122/tcpip-client-1.cpp deleted file mode 100644 index 9d7597a494b4c56e946b621b1daabb5f15726ec1..0000000000000000000000000000000000000000 --- a/20181122/tcpip-client-1.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include <boost/asio/io_service.hpp> -#include <boost/asio/write.hpp> -#include <boost/asio/buffer.hpp> -#include <boost/asio/ip/tcp.hpp> -#include <array> -#include <string> -#include <iostream> - -using namespace boost::asio; -using namespace boost::asio::ip; - -io_service ioservice; -tcp::resolver resolv{ioservice}; -tcp::socket tcp_socket{ioservice}; -std::array<char, 4096> bytes; - -void read_handler(const boost::system::error_code &ec, - std::size_t bytes_transferred) -{ - if (!ec) - { - std::cout.write(bytes.data(), bytes_transferred); - tcp_socket.async_read_some(buffer(bytes), read_handler); - } -} - -void connect_handler(const boost::system::error_code &ec) -{ - if (!ec) - { - std::string r = "GET /\n"; - write(tcp_socket, buffer(r)); - tcp_socket.async_read_some(buffer(bytes), read_handler); - } -} - -void resolve_handler(const boost::system::error_code &ec, - tcp::resolver::iterator it) -{ - if (!ec) - tcp_socket.async_connect(*it, connect_handler); -} - -int main() -{ - tcp::resolver::query q{"ngc224.gerwinski.de", "80"}; - resolv.async_resolve(q, resolve_handler); - ioservice.run(); -} diff --git a/20181122/tcpip-server-0.c b/20181122/tcpip-server-0.c deleted file mode 100644 index 868993c4ec429d02f5fe576af9ab57c807367ab6..0000000000000000000000000000000000000000 --- a/20181122/tcpip-server-0.c +++ /dev/null @@ -1,59 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <netdb.h> -#include <sys/socket.h> -#include <arpa/inet.h> - -#define PORT 1234 -#define MESSAGE "Hello, world!\n" - -void error (char *msg) -{ - fprintf (stderr, "%s\n", msg); - exit (1); -} - -int main (void) -{ - int s; - struct sockaddr_in name; - if ((s = socket (PF_INET, SOCK_STREAM, 0)) < 0) - error ("cannot create socket"); - memset (&name, 0, sizeof (name)); - name.sin_family = AF_INET; - name.sin_port = htons (PORT); - name.sin_addr.s_addr = htonl (INADDR_ANY); - int on = 1; - setsockopt (s, SOL_SOCKET, SO_REUSEADDR, (void *) &on, sizeof (on)); - if (bind (s, (struct sockaddr *) &name, sizeof (name)) < 0) - { - close (s); - error ("cannot bind socket"); - } - if (listen (s, 16) < 0) - { - close (s); - error ("cannot listen on socket"); - } - struct sockaddr_in clientname; - socklen_t size = sizeof (clientname); - s = accept (s, (struct sockaddr *) &clientname, &size); - if (s < 0) - error ("cannot accept connection"); - char *host_address = inet_ntoa (clientname.sin_addr); - char *host_name; - struct hostent *hp = gethostbyaddr ((void *) &clientname.sin_addr, sizeof (clientname.sin_addr), clientname.sin_family); - if (hp) - host_name = hp->h_name; - else - host_name = inet_ntoa (clientname.sin_addr); - int remote_port = ntohs (clientname.sin_port); - printf ("connection from %s [%s], port %d\n", - host_name, host_address, remote_port); - send (s, MESSAGE, strlen (MESSAGE), 0); - shutdown (s, SHUT_RDWR); - close (s); - return 0; -} diff --git a/20181122/tcpip-server-1.cpp b/20181122/tcpip-server-1.cpp deleted file mode 100644 index b2059c1d664a05b3581ac1f194ad203d0bca9401..0000000000000000000000000000000000000000 --- a/20181122/tcpip-server-1.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include <boost/asio/io_service.hpp> -#include <boost/asio/write.hpp> -#include <boost/asio/buffer.hpp> -#include <boost/asio/ip/tcp.hpp> -#include <string> - -using namespace boost::asio; -using namespace boost::asio::ip; - -io_service ioservice; -tcp::endpoint tcp_endpoint{tcp::v4(), 1234}; -tcp::acceptor tcp_acceptor{ioservice, tcp_endpoint}; -tcp::socket tcp_socket{ioservice}; -std::string data; - -void write_handler(const boost::system::error_code &ec, - std::size_t bytes_transferred) -{ - if (!ec) - tcp_socket.shutdown(tcp::socket::shutdown_send); -} - -void accept_handler(const boost::system::error_code &ec) -{ - if (!ec) - { - std::string data = "Hello, world!\n"; - async_write(tcp_socket, buffer(data), write_handler); - } -} - -int main() -{ - tcp_acceptor.listen(); - tcp_acceptor.async_accept(tcp_socket, accept_handler); - ioservice.run(); -} diff --git a/20181129/I2C_data_transfer.pdf b/20181129/I2C_data_transfer.pdf deleted file mode 100644 index 0d5b8a241c624391cbf6f3a30f26320559358e1d..0000000000000000000000000000000000000000 Binary files a/20181129/I2C_data_transfer.pdf and /dev/null differ diff --git a/20181129/Retribution_Engine_Screenshot_120807.jpg b/20181129/Retribution_Engine_Screenshot_120807.jpg deleted file mode 120000 index 19f4cb3e4aae1e24c3466a25b2c0e5ad90ee49e7..0000000000000000000000000000000000000000 --- a/20181129/Retribution_Engine_Screenshot_120807.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/Retribution_Engine_Screenshot_120807.jpg \ No newline at end of file diff --git a/20181129/SPI_single_slave.pdf b/20181129/SPI_single_slave.pdf deleted file mode 100644 index 6f724dad4a8ed23b262b0b1c672bf85b72405155..0000000000000000000000000000000000000000 Binary files a/20181129/SPI_single_slave.pdf and /dev/null differ diff --git a/20181129/SPI_three_slaves.pdf b/20181129/SPI_three_slaves.pdf deleted file mode 100644 index b67dc94c790a62935c7b353449e2ce8c75a7d9fe..0000000000000000000000000000000000000000 Binary files a/20181129/SPI_three_slaves.pdf and /dev/null differ diff --git a/20181129/SPI_three_slaves_daisy_chained.pdf b/20181129/SPI_three_slaves_daisy_chained.pdf deleted file mode 100644 index 46ac2027cfcbd598a609e43ce74e19e75d374ead..0000000000000000000000000000000000000000 Binary files a/20181129/SPI_three_slaves_daisy_chained.pdf and /dev/null differ diff --git a/20181129/Telefon_t-sinus-700.jpg b/20181129/Telefon_t-sinus-700.jpg deleted file mode 120000 index 27c322c50b0f05edc8b07cfb0cc99b1876eb506d..0000000000000000000000000000000000000000 --- a/20181129/Telefon_t-sinus-700.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/Telefon_t-sinus-700.jpg \ No newline at end of file diff --git a/20181129/Zeichen_123.pdf b/20181129/Zeichen_123.pdf deleted file mode 120000 index fdbc897227df059cfda790a16555e6e417682116..0000000000000000000000000000000000000000 --- a/20181129/Zeichen_123.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/Zeichen_123.pdf \ No newline at end of file diff --git a/20181129/a380.jpg b/20181129/a380.jpg deleted file mode 120000 index 33a5d1fd18843bf7385e5a6d90f69af9fd8720da..0000000000000000000000000000000000000000 --- a/20181129/a380.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/a380.jpg \ No newline at end of file diff --git a/20181129/curiosity.jpg b/20181129/curiosity.jpg deleted file mode 120000 index 4452844da537414b751c5283ca8468b3ced9afb3..0000000000000000000000000000000000000000 --- a/20181129/curiosity.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/curiosity.jpg \ No newline at end of file diff --git a/20181129/dsc_8208.jpg b/20181129/dsc_8208.jpg deleted file mode 120000 index 5796341ebc774aa09965a3a29854c65ce1144fb8..0000000000000000000000000000000000000000 --- a/20181129/dsc_8208.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/dsc_8208.jpg \ No newline at end of file diff --git a/20181129/es-20181129.pdf b/20181129/es-20181129.pdf deleted file mode 100644 index b334aa28de6024a62409125e538013e0ca26edfd..0000000000000000000000000000000000000000 Binary files a/20181129/es-20181129.pdf and /dev/null differ diff --git a/20181129/es-20181129.tex b/20181129/es-20181129.tex deleted file mode 100644 index 889c88afc705da67bc6647c8f4f81a7098588534..0000000000000000000000000000000000000000 --- a/20181129/es-20181129.tex +++ /dev/null @@ -1,2194 +0,0 @@ -% es-20181129.pdf - Lecture Slides on Embedded Systems -% Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -% README: Bus-Systeme; Echtzeit - -\documentclass[10pt,t]{beamer} - -\usepackage{pgslides} -\usepackage{rotating} -\usepackage{tikz} -\usepackage[obeyfamily=false,mathrm=mathsf,textrm=sffamily]{siunitx} - -\newrgbcolor{lightyellow}{0.95 0.85 0.0} -\newrgbcolor{lightorange}{1.0 0.7 0.0} -\newrgbcolor{lightgreen}{0.0 0.8 0.0} - -\newcommand{\underconstruction}{% - \begin{picture}(0,0) - \put(9,0.9){\makebox(0,0)[b]{\includegraphics[width=1.5cm]{Zeichen_123.pdf}}} - \put(9,0.6){\makebox(0,0)[t]{\shortstack{Änderungen\\vorbehalten}}} - \end{picture}} - -\title{Eingebettete Systeme} -\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{29.\ November 2018} - -\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} - -\begin{document} - -\newlength{\normalpdfpageheight} -\setlength{\normalpdfpageheight}{\pdfpageheight} - -\maketitleframe - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \item[\textbf{2}] \textbf{Einführung in Unix} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \begin{itemize} - \color{medgreen} - \vspace*{-\smallskipamount} - \item[\dots] - \color{medgreen} - \item[3.6] SSH - \item[3.7] X11 - \item[3.8] GNU screen - \item[3.9] Programmierung - \end{itemize} - \item[\textbf{4}] \textbf{Bus-Systeme} - \begin{itemize} - \color{medgreen} - \item[5.1] Was sind Bus-Systeme? - \item[5.2] RS-232 - \item[5.3] \ItwoC\ (TWI) - \item[5.4] SPI - \color{red} - \item[5.5] PWM - \item[5.6] Sonstiges - \end{itemize} - \item[\textbf{6}] \textbf{Echtzeit} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\setcounter{section}{2} -\section{TCP/IP in der Praxis} -\setcounter{subsection}{5} -\subsection{SSH} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \lstinline[style=cmd]{SSH <Rechner>} - \item - \lstinline[style=cmd]{-C}: Komprimierung - \item - \lstinline[style=cmd]{-L}: lokalen Port auf Remote-Port umleiten - \item - \lstinline[style=cmd]{-R}: Remote-Port auf lokalen Port umleiten - \end{itemize} - -\end{frame} - -\subsection{X11} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Grafik-Bildschirm und Eingabegeräte über's Netz - \item - \lstinline[style=cmd]{DISPLAY}-Variable: X-Server: Rechner und Bildschirm - \item - \lstinline[style=cmd]{ssh -X}: X11-Forwarding - \end{itemize} - -\end{frame} - -\subsection{GNU screen} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - Text-Bildschirm und Eingabegeräte über's Netz - \item - \lstinline[style=cmd]{Ctrl+A c}: neues Fenster (create) - \item - \lstinline[style=cmd]{Ctrl+A Leertaste}: nächstes Fenster - \item - \lstinline[style=cmd]{Ctrl+A 3}: Fenster Nr.\ 3 - \item - \lstinline[style=cmd]{Ctrl+A ESC}: hochscrollen, suchen, markieren (copy) - \item - \lstinline[style=cmd]{Ctrl+A Ctrl+]}: einfügen (paste) - \item - \lstinline[style=cmd]{Ctrl+A d}: von \file{screen} ablösen (detach) - \item - \lstinline[style=cmd]{screen -x}: an laufenden \file{screen} andocken - \medskip - \item - ähnliche Funktionalität für Grafik: \file{x2go} - \end{itemize} - -\end{frame} - -\subsection{Programmierung} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \file{tcpip-server-0.c}: auf Port 1234 lauschen, "`Hello, world!"' senden - \item - \file{tcpip-client-0.c}: Webseite \url{http://ngc224.gerwinski.de} abrufen - \end{itemize} - -\end{frame} - -\section{Bus-Systeme} -\subsection{Was sind Bus-Systeme?} - -\begin{frame} - \showsection - \showsubsection - - \begin{quote} - Ein Bus ist ein System zur Datenübertragung zwischen mehreren - Teilnehmern über einen gemeinsamen Übertragungsweg. -% \color{gray} -% Findet eine Datenübertragung zwischen zwei Teilnehmern statt, so -% müssen die übrigen Teilnehmer schweigen, da sie sich sonst -% gegenseitig stören würden. Umgangssprachlich werden mitunter -- -% oft aus historischen Gründen – auch Datenübertragungssysteme als -% "`Bus"' bezeichnet, die technisch eigentlich eine andere -% Topologie besitzen. - - \medskip - - \strut\hfill\url{https://de.wikipedia.org/wiki/Bus_(Datenverarbeitung)} - \end{quote} - Beispiele: - \begin{itemize} - \item - Computer kommuniziert mit Peripherie - \item - Computer kommunizieren (direkt) miteinander - \item - Prozessor kommuniziert mit externem Speicher - \item - Teile eines Prozessors kommunizieren miteinander - \end{itemize} -\end{frame} - -\begin{frame} - \showsection - \showsubsection - Standard-Computer: - \begin{itemize} - \item - Einsteckkarten: PCI (und Vorgänger) - \item - Festplatten: SATA (und Vorgänger) - \item - USB, FireWire, \dots - \item - Ethernet, CAN-Bus, \dots - \item - WLAN, BlueTooth, IR, \dots - \item - PS/2, RS-232, Centronics - \end{itemize} - - \medskip - - Minimal-Hardware: - \begin{itemize} - \item - RS-232 - \item - \ItwoC\ (TWI) - \item - SPI - \end{itemize} - - \begin{onlyenv}<1> - \begin{picture}(0,0) - \put(5,1.5){\includegraphics[height=3cm]{motherboard-anschluesse.jpg}} - \end{picture} - \end{onlyenv} - \begin{onlyenv}<2> - \begin{picture}(0,0)(-1.3,-4) - \put(1.8,-4.9){\includegraphics[height=3.5cm]{kompassmodul-an-roboter.jpg}} - \put(6.1,-3.3){\includegraphics[height=4.5cm]{kompassmodul.jpg}} - \put(6.1,1.2){\makebox(0,0)[tr]{\tikz{\draw(0,0)--(-1.9,-3.6);}}} - \put(6.1,-3.3){\makebox(0,0)[br]{\tikz{\draw(0,0)--(-1.8,0.2);}}} - \end{picture} - \end{onlyenv} -\end{frame} - -\begin{frame}[fragile] - - \showsection - \showsubsection - - \vspace*{-\bigskipamount} - \begin{tabbing} - \newterm{Punkt-zu-Punkt}\quad\=\kill - \newterm{seriell} \> jedes Bit einzeln übertragen\\ - \newterm{parallel} \> mehrere Bits gleichzeitig\\[\smallskipamount] - \newterm{synchron} \> Abgleich über Steuerleitung: \newterm{Takt}\\ - \newterm{asynchron} \> Abgleich über Zeitvereinbarungen\\[\smallskipamount] - \newterm{Punkt-zu-Punkt} \> genau zwei Teilnehmer\\ - \newterm{busfähig} \> mehrere Teilnehmer, mit \newterm{Adressierung} - \end{tabbing} - - \begin{itemize} - \item - \ItwoC: seriell, synchron, mit Adressierung - \item - RS-232: seriell, asynchron, Punkt-zu-Punkt - \item - RS-485, USB, CAN: seriell, asynchron, mit Adressierung - \item - SPI: seriell, synchron, Punkt-zu-Punkt oder mit Adressierung - \end{itemize} - -\end{frame} - -\subsection{RS-232} - -\begin{frame} - \showsection - \showsubsection - - seriell - \begin{itemize} - \item - \newterm{TX\/}: 1 Leitung für Daten - \item - \newterm{RX\/}: ggf.\ 1 Leitung für Daten in der anderen Richtung - \item - \newterm{GND\/}: gemeinsame \newterm{Masse} - \item - evtl.\ zusätzliche Steuerleitungen - \end{itemize} - - \medskip - - asynchron - \begin{itemize} - \item - \emph{keine\/} Taktleitung für Abgleich, wann Daten anliegen - \item - Stattdessen: Abgleich über Zeitvereinbarungen - \arrowitem - Jeder Teilnehmer braucht eine eigene Zeitbasis. - \end{itemize} - - \medskip - - Punkt-zu-Punkt - \begin{itemize} - \item - nur 2 Teilnehmer vorgesehen - \end{itemize} -\end{frame} - -\begin{frame} - \showsubsection - \vspace*{-0.35cm} - \begin{center} - \includegraphics[scale=0.9]{rs-232.pdf} - \end{center} -\end{frame} - -\subsection{\protect\ItwoC\ (TWI)} - -\begin{frame} - \showsection - \showsubsection - - \ItwoC\ = Inter-IC; TWI = Two-Wire-Interface - - \medskip - - seriell - \begin{itemize} - \item - \newterm{SDA\/}: 1 Leitung für Daten (in beiden Richtungen) - \item - \newterm{SCL\/}: Taktleitung (Clock) - \item - \newterm{GND\/}: gemeinsame Masse - \item - evtl.\ \newterm{VCC\/}: Stromversorgung für Peripheriegerät - \end{itemize} - - \medskip - - synchron - \begin{itemize} - \item - Abgleich über\\Taktleitung - \begin{picture}(0,0) - \put(0.4,-0.4){\includegraphics[width=9.7cm]{I2C_data_transfer.pdf}} - \end{picture} - \end{itemize} - - \medskip - - busfähig - \begin{itemize} - \item - \newterm{Master\/} initiiert Kommuniation und steuert Taktleitung - \item - erstes gesendetes Byte: \newterm{Adresse\/} des Teilnehmers - \item - 2 Adressen pro Teilnehmer: Lesen/Schreiben - \end{itemize} - \vspace*{-1cm} -\end{frame} - -\subsection{SPI} - -\begin{frame} - \showsection - \showsubsection - - Serial Peripheral Interface - - \medskip - - seriell - \begin{itemize} - \item - \newterm{MOSI\/}: Master Out, Slave In - \item - \newterm{MISO\/}: Master In, Slave Out - \item - \newterm{SCLK\/}: Taktleitung (Clock) - \item - \newterm{$\overline{\text{SS}}$\/}: Slave Select (invertiert) - \item - \newterm{GND\/}: gemeinsame Masse - \item - evtl.\ \newterm{VCC\/}: Stromversorgung für Peripheriegerät - \end{itemize} - - \medskip - - synchron - \begin{itemize} - \item - Abgleich über Taktleitung - \end{itemize} - - \medskip - - busfähig - \begin{itemize} - \item - \newterm{Master\/} initiiert Kommuniation und steuert Taktleitung - \item - \newterm{Slave\/} wird über \newterm{Slave Select\/} ausgewählt - \begin{picture}(0,0)(0,-0.2) - \only<1>{\put(-2.175,2.875){\includegraphics[scale=0.7]{SPI_single_slave.pdf}}} - \only<2>{\put(-2.0,3.0){\includegraphics[scale=0.7]{SPI_three_slaves.pdf}}} - \only<2>{\put(2.55,3.1){\begin{minipage}[t]{2.5cm} - \newterm{Stern} - \end{minipage}}} - \only<3->{\put(-2.0,3.0){\includegraphics[scale=0.7]{SPI_three_slaves_daisy_chained.pdf}}} - \only<3->{\put(2.55,3.1){\begin{minipage}[t]{2.5cm} - \newterm{Kaskade}\\ - \newterm{Daisy Chain}\pause[4]\par\smallskip - \setlength{\leftskip}{-3.5cm}\small - Slave gibt MOSI-Input um 1 Takt verzögert - an MISO aus \textarrow\ Master setzt - "`im richtigen Moment"' $\overline{\text{SS}}$ - \end{minipage}}} - \end{picture} - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\subsection{PWM} - -\begin{frame} - \showsection - \showsubsection - - Pulsweitenmodulation -- \emph{pulse-width modulation} - - \begin{itemize} - \item - Steuerung von Motoren - \item - Nutzung als allgemeines Protokoll\\ - zur Übertragung analoger Werte - \end{itemize} -\end{frame} - -\subsection{Sonstiges} - -\begin{frame} - \showsection - \showsubsection - - Matrix-Schaltung - \begin{itemize} - \item - möglichst viele Aktoren/Sensoren\\ - über möglichst wenige digitals Inputs abfragen\\ - bzw.\ über möglichst wenige digitale Outputs steuern - \item - Beispiele: LED-Felder, Tastaturen - \end{itemize} - - \bigskip - - R/2R-Netzwerk - \begin{itemize} - \item - möglichst viele digitale Inputs\\ - über einen einzigen analogen Input abfragen - \item - Beispiele: Tastaturen - \end{itemize} - -\end{frame} - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}}% - \item[\textbf{2}] \textbf{Einführung in Unix} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \item[\textbf{4}] \textbf{Bus-Systeme} - \begin{itemize} - \color{medgreen} - \item[5.1] Was sind Bus-Systeme? - \item[5.2] RS-232 - \item[5.3] \ItwoC\ (TWI) - \item[5.4] SPI -% \item[5.5] Beispiel: Benutzung des \ItwoC-Busses - \color{medgreen} - \item[5.5] PWM - \item[5.6] Sonstiges - \end{itemize} - \item[\textbf{6}] \textbf{Echtzeit} - \begin{itemize} - \color{red} - \item[5.1] Was ist Echtzeit? - \item[5.2] Echtzeitprogrammierung - \item[5.3] Multitasking - \item[5.4] Ressourcen - \item[5.5] Prioritäten - \end{itemize} - \vspace*{-\medskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\section{Echtzeit} - -\subsection{Was ist Echtzeit?} - -\begin{frame} - - \showsection - \showsubsection - - \begin{itemize} - \pause - \item - Animation in Echtzeit:\\ - schnelle Berechnung anstatt Wiedergabe einer Aufzeichnung - \pause - \medskip - \item - Fantasy-Rollenspiel in Echtzeit:\\ - Der Zeitverlauf der Spielwelt entspricht dem der realen Welt. - \pause - \medskip - \item - Datenverarbeitung in Echtzeit:\\ - Die Daten werden so schnell verarbeitet, wie sie anfallen. - \pause - \medskip - \item - speziell: Echtzeit-Steuerung von Maschinen:\\ - Die Berechnung kann mit den physikalischen Vorgängen schritthalten. - \pause - \bigskip - \arrowitem - "`Schnell genug."' - \end{itemize} - -\end{frame} - -\begin{frame} - - \showsubsection - - "`Schnell genug."' \pause-- "`Und wenn nicht?"' - - \pause - - \begin{itemize} - \item - "`Ganz schlecht."' \pause\textarrow\ \newterm{harte Echtzeit} - \begin{onlyenv}<4-8> - \begin{picture}(0,0)(0,-0.3) - \pause - \put(0,-4){\makebox(0,0)[br]{\includegraphics[height=3.5cm]{a380.jpg}}} - % http://de.wikipedia.org/w/index.php?title=Datei:Airbus_A380_overfly.jpg&filetimestamp=20111223141606 - \pause - \put(0.2,-3.9){\makebox(0,0)[bl]{\includegraphics[height=4.0cm]{quadrocopter.jpg}}} - %\put(0.2,-3.5){\makebox(0,0)[bl]{\includegraphics[height=3.5cm]{mercedes-benz-w116.jpg}}} - % http://commons.wikimedia.org/wiki/File:1973-1980_Mercedes-Benz_450_SEL_%28W116%29_sedan_%282010-12-28%29_01.jpg - \pause - \put(-0.5,-4.2){\makebox(0,0)[tr]{\includegraphics[height=3.5cm]{herzschrittmacher.jpg}}} - % http://de.wikipedia.org/w/index.php?title=Datei:Pacemaker_GuidantMeridianSR.jpg&filetimestamp=20051203173642 - \pause - \put(0,-4){\makebox(0,0)[tl]{\includegraphics[height=3.5cm]{curiosity.jpg}}} - % http://mars.jpl.nasa.gov/msl/news/whatsnew/index.cfm?FuseAction=ShowNews&NewsID=1344 - \end{picture} - \end{onlyenv} - \pause\\[2pt] - rechtzeitiges Ergebnis funktionsentscheidend - - \smallskip - - \pause - \item - "`Unschön."' \textarrow\ \newterm{weiche Echtzeit} - \begin{onlyenv}<10-12> - \begin{picture}(0,0)(0,0.3) - \pause - \put(0,-4){\makebox(0,0)[br]{\includegraphics[width=5cm]{Retribution_Engine_Screenshot_120807.jpg}}} - % http://en.wikipedia.org/wiki/File:Retribution_Engine_Screenshot_120807.jpg - \pause - \put(0.1,-4.5){\makebox(0,0)[bl]{\includegraphics[width=5cm]{Telefon_t-sinus-700.jpg}}} - % http://de.wikipedia.org/w/index.php?title=Datei:Telefon_t-sinus-700.jpg&filetimestamp=20050807203655 - \end{picture} - \end{onlyenv} - \pause\\[2pt] - verspätetes Ergebnis qualitätsmindernd - \begin{itemize} - \baselineskip14pt\par - \item - verwenden und Verzögerung in Kauf nehmen - \item - verwerfen und Ausfall in Kauf nehmen - \end{itemize} - - \smallskip - - \pause - \item - "`Es gibt keinen festen Termin. Möglichst schnell halt."'\pause\\[2pt] - \textarrow\ \newterm{keine Echtzeit} - \end{itemize} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - Das Problem: - \vspace{-\bigskipamount} - \begin{center} - \begin{picture}(6,2) - \put(3,2){\makebox(0,0)[t]{Harte Echtzeitanforderungen}} - \put(3,0){\makebox(0,0)[b]{Ressourcen optimal nutzen}} -% \put(2.75,0.875){\vector(1,3){0.25}} -% \put(2.75,0.875){\line(2,1){0.5}} -% \put(3.25,1.125){\vector(-1,-3){0.25}} - \put(2.70,0.350){\tikz{\draw[latex-latex](0.25,0.625)--(0,-0.12)--(0.5,0.12)--(0.25,-0.625);}} - \end{picture} -% \begin{pdfpic} -% \begin{pspicture}(6,2) -% \put(3,2){\makebox(0,0)[t]{Harte Echtzeitanforderungen}} -% \put(3,0){\makebox(0,0)[b]{Ressourcen optimal nutzen}} -% \psline[arrows=<->](3,0.4)(3.2,1.125)(2.8,0.875)(3,1.6) -% \end{pspicture} -% \end{pdfpic} - \end{center} - - \pause - - Beispiel: - \begin{itemize} - \item - Eine Motorsteuerung benötigt alle \SI{2000}{\mics} einen Steuerimpuls,\\ - dessen Berechnung maximal \SI{10}{\mics} dauert. - \pause[3] - \item - Entweder: Der Steuer-Computer macht noch andere Dinge.\\ - \textarrow\ Risiko der Zeitüberschreitung - \pause - \item - Oder: Der Steuer-Computer macht nichts anderes.\\ - \textarrow\ Verschwendung von Rechenzeit\\ - \pause - {\color{red}\textarrow\ Na und?} - \end{itemize} - -\end{frame} - -\begin{frame}[fragile] - - \showsubsection - - Das Problem: - \vspace{-\bigskipamount} - \begin{center} - \begin{picture}(6,2) - \put(3,2){\makebox(0,0)[t]{Harte Echtzeitanforderungen}} - \put(3,0){\makebox(0,0)[b]{Ressourcen optimal nutzen}} -% \put(2.75,0.875){\vector(1,3){0.25}} -% \put(2.75,0.875){\line(2,1){0.5}} -% \put(3.25,1.125){\vector(-1,-3){0.25}} - \put(2.70,0.350){\tikz{\draw[latex-latex](0.25,0.625)--(0,-0.12)--(0.5,0.12)--(0.25,-0.625);}} - \end{picture} -% \begin{pdfpic} -% \begin{pspicture}(6,2) -% \put(3,2){\makebox(0,0)[t]{Harte Echtzeitanforderungen}} -% \put(3,0){\makebox(0,0)[b]{Ressourcen optimal nutzen}} -% \psline[arrows=<->](3,0.4)(3.2,1.125)(2.8,0.875)(3,1.6) -% \end{pspicture} -% \end{pdfpic} - \end{center} - - \medskip - - {\large\color{structure}\textbf{"`Verschwendung von Rechenzeit -- na und?"'}} - - \medskip - - \pause - Große Stückzahlen - \begin{itemize} - \item - 138\,000 Toyota Prius V von Mai 2011 bis April 2012 - \end{itemize} - - \medskip - - \pause - Wertvolle Ressourcen - \begin{itemize} - \item - Fähigkeiten einer Raumsonde optimieren - % (Marsumlaufbahn: ab ca.~127\,000 Euro pro kg) - % 70000000 / 550000 = 127._27 - % http://www.bernd-leitenberger.de/blog/2009/09/29/reduktion-der-kosten-von-planetenmissionen/ - \only<.(1)>{\\[\medskipamount]\strut\hfill\makebox(0,0)[r]{\includegraphics[height=3.3cm]{curiosity.jpg}}\vspace*{-1cm}} - \pause - \item - Implantat: Platz- und Stromverbrauch minimieren - \only<.(1)>{\\\strut\hfill\makebox(0,0)[r]{\includegraphics[height=3.4cm]{herzschrittmacher.jpg}}\vspace*{-1cm}} - \end{itemize} - - \bigskip - - \pause - \textarrow\ {\large\color{structure}\textbf{Echtzeitprogrammierung}}\\[2pt] - \strut \phantom{\textarrow} Echtzeitanforderungen erfüllen, ohne Ressourcen zu verschwenden - -\end{frame} - -\subsection{Echtzeitprogrammierung} - -\begin{frame} - - \showsubsection - - Echtzeitanforderungen erfüllen, ohne Ressourcen zu verschwenden - - \bigskip - - \alt<.(1)>{Aber wie?}{Beispiele für Lösungen:} - - \begin{itemize} - \pause - \item - ZigBee-Modul:\only<.(1)>{\hfill\makebox(0,0)[tr]{\includegraphics[width=5cm]{xbee.jpg}}}\\ - % http://commons.wikimedia.org/wiki/File:Arduino_xbee.JPG - Funk- vs.\ UART-Protokoll\\ - \textarrow\ dedizierte Hardware - \pause - \item - RP6:\\ - Motorsteuerung vs.\ Anwender-Software\\ - \textarrow\ spezielle Software - \only<.(1)>{\hfill\makebox(0,0)[r]{\includegraphics[width=5cm]{rp6.jpg}}} - \pause - \item - Quadrocopter:\\ - Motorsteuerung vs.\ Sensoren-Abfrage\\ - vs.\ Funk-Fernsteuerung \dots\\ - \textarrow\ spezielle Software - \only<.(1)>{\hfill\makebox(0,0)[br]{\includegraphics[width=5cm]{quadrocopter.jpg}}}\\ - \pause - \item - Flugzeugkabinensimulatortür:\\ - Türsteuerung vs.\ Bedienung\\ - \textarrow\ Echtzeitbetriebssystem - \only<.(1)>{\\[-3.2cm]\strut\hfill\makebox(0,0)[r]{\includegraphics[angle=-90,width=5cm]{dsc_8208.jpg}}} - \end{itemize} - -\end{frame} - -\begin{frame} - - \showsubsection - - Quadrocopter-Steuerung \emph{MultiWii} - \begin{itemize} - \item - Konfiguration durch bedingte Compilierung (Präprozessor) - \item - In der Hauptschleife wird 50mal pro Sekunde der RC-Task aufgerufen,\\ - ansonsten zyklisch einer von bis zu 5 weiteren Tasks. - \end{itemize} - - \pause - - RP6-Steuerung - \begin{itemize} - \item - Konfiguration durch bedingte Compilierung (Präprozessor) - \item - Lichtschranken an Encoder-Scheiben lösen bei Bewegung Interrupts aus.\\ - Die Interrupt-Handler zählen Variable hoch. - \item - 10000mal pro Sekunde: Timer-Interrupt\\ - Durch Zähler im Interrupt-Handler: verschiedene Taktraten\\ - 1000mal pro Sekunde: Stopwatches\\ - 5mal pro Sekunde: Blinkende Power-On-LED\\ - 1000mal pro Sekunde: Bumper, ACS, PWM zur Motorsteuerung\\ - Geschwindigkeitsmessung durch Zählen der Ticks in 0.2\,s\\ - Anpassung der Motorkraft in $\pm$1-Schritten - \pause - \item - Nebenbei: \only<4->{1 }Benutzerprogramm - \end{itemize} - -\end{frame} - -\subsection{Multitasking} - -\begin{frame} - - \showsubsection - - \begin{itemize} - \item - \newterm{Kooperatives Multitasking}\\ - Prozesse geben freiwillig Rechenzeit ab - \item - \newterm{Präemptives Multitasking}\\ - Das Betriebssystem unterbricht laufende Prozesse\\ - (englisch: \emph{to pre-empt\/} -- jemandem zuvorkommen) - \bigskip - \item - \newterm{Scheduler}\\ - Steuerprogramm, das Prozessen Rechenzeit zuteilt - \item - \newterm{Kontextwechsel}\\ - Umschalten zwischen zwei Prozessen - \item - \newterm{Round-Robin-Verfahren (Rundlauf)}\\ - Zuteilung von \newterm{Zeitschlitzen\/} auf einer \newterm{Zeitscheibe} an die Prozesse - \bigskip - \pause - \item - Ausblick: Zuteilung von Rechenzeit = wichtiger Spezialfall\\ - allgemein: Zuteilung von Ressourcen - \end{itemize} - -\end{frame} - -\subsectionnonumber{Beispiele für Multitasking} - -\begin{frame} - - \showsubsectionnonumber - - Quadrocopter-Steuerung \emph{MultiWii} - \begin{itemize} - \item - Konfiguration durch bedingte Compilierung (Präprozessor) - \item - In der Hauptschleife wird 50mal pro Sekunde der RC-Task aufgerufen,\\ - ansonsten zyklisch einer von bis zu 5 weiteren Tasks. - \end{itemize} - - RP6-Steuerung - \begin{itemize} - \item - Konfiguration durch bedingte Compilierung (Präprozessor) - \item - Lichtschranken an Encoder-Scheiben lösen bei Bewegung Interrupts aus.\\ - Die Interrupt-Handler zählen Variable hoch. - \item - 10000mal pro Sekunde: Timer-Interrupt\\ - verschiedene Tasks werden unterschiedlich häufig aufgerufen - \item - Nebenbei: 1 Benutzerprogramm - \end{itemize} - - Linux 0.01 - \begin{itemize} - \item - Timer-Interrupt:\only<2->{ Zähler des aktuellen Tasks wird dekrementiert;}\\ - Task mit höchstem Zähler bekommt Rechenzeit. - \item - Wenn es keinen laufbereiten Task mit positivem Zähler gibt,\\ - bekommen alle Tasks gemäß ihrer Priorität neue Zähler zugewiesen. - \item - \emph{keine\/} harte Echtzeit - % Aufgabe: Wo wird der Zähler heruntergezählt? - \end{itemize} - -\end{frame} - -\subsectionnonumber{Zombies} - -\begin{frame} - - \showsubsectionnonumber - - \pause - Wikipedia: - \begin{quote} - Als Zombie wird die fiktive Figur eines zum Leben erweckten - Toten (Untoter) oder eines seiner Seele beraubten, willenlosen - Wesens bezeichnet. Der Begriff leitet sich von dem Wort nzùmbe - aus der zentralafrikanischen Sprache Kimbundu ab und bezeichnet - dort ursprünglich einen Totengeist. - \end{quote} - - \bigskip - - \pause - Ein Zombie-Prozeß ist bereits beendet ("`tot"'),\\ - bekommt keine Rechenzeit mehr ("`seiner Seele beraubt"'),\\ - hat alle belegten Ressourcen wieder freigegeben ("`willenlos"'),\\ - wird aber noch in der Prozeßliste geführt ("`untot"'). - \begin{itemize} - \pause - \item - Warum? - \textarrow\ - Ein anderer Prozeß (Elternprozeß) wartet noch auf den - Rückgabewert des beendeten Prozesses. - \pause - \item - Schadet das? - \textarrow\ - Nein. - \pause - \item - Aber? - \textarrow\ - Wenn sich Zombie-Prozesse anhäufen, deutet dies auf einen - Prozeß hin, der andere Prozesse erzeugt und anschließend "`hängt"'. - \pause - \item - Beispiel: - Datenträger entfernt, zugreifender Prozeß "`hängt"'.\\ - \textarrow\ - Tochterprozesse werden zu Zombies. - \end{itemize} - -\end{frame} - -\subsectionnonumber{Multitasking} - -\begin{frame} - - \showsection - \showsubsection - - \begin{minipage}[t]{6cm} - Qualitätsaspekte beim Multitasking - \begin{itemize} - \item<2-> - Verschiedene Anforderungen: - \newterm{Latenz\/} vs.\ \newterm{Jitter\/}\\ - vs.\ \newterm{Durchsatz} - \smallskip - \begin{onlyenv}<3> - \begin{itemize} - \item - \newterm{Latenz:} interaktive Anwendungen - \item - \newterm{Jitter:} Echtzeitanwendungen - \item - \newterm{Durchsatz:} Stapelverarbeitung - \end{itemize} - \vspace*{-3cm} - \end{onlyenv} - \item<4-> - Ressourcen reservieren:\\ - \newterm{Mutexe} - \only<5->{(= spezielle \newterm{Semaphore\/})\\} - \only<6->{\textarrow\ kommt gleich} - \item<7-> - Verschiedene Methoden\\ - der Priorisierung\\ - \textarrow\ später\\ - \strut - \item<8-> - Umgehung der Probleme durch - speziell geschriebene Software\\ - (MultiWii, RP6, \dots) - \end{itemize} - \end{minipage} - \hfill - \pause[9]% - \begin{minipage}[t]{6.2cm} - Qualitätsaspekte für Netzwerke: - \begin{itemize} - \item - Verschiedene Anforderungen: - \newterm{Latenz\/} vs.\ \newterm{Jitter\/} vs.\ \newterm{Verluste\/}\\vs.\ \newterm{Durchsatz} - \item - Ressourcen reservieren:\\ - \newterm{IntServ} mit \newterm{Resource Reservation Protocol (RSVP)} - \item - Klassifizierung und Priorisierung: - \newterm{DiffServ} mit Type-of-Service-Bits (IPv4) - bzw.\ Traffic-Class-Bits (IPv6) im IP-Header - \item - Eigenes Protokoll (Telefondienste):\\ - \newterm{Asynchronous Transfer Mode (ATM)} - \end{itemize} - \end{minipage} - -\end{frame} - -\subsection{Ressourcen} - -\begin{frame} - - \showsection - \showsubsection - - Ressourcen reservieren - \begin{itemize} - \item - \newterm{Semaphor}\\ - gemeinsame Variable mehrerer Prozesse\\ - zur Regelung des Zugriffs auf eine Ressource\\[\smallskipamount] - Ressource belegt \textarrow\ Kontextwechsel - \begin{onlyenv}<1> - \par\medskip - griechisch: \emph{sema\/} -- Zeichen, \emph{pherein\/} -- tragen\\ - "`Eisenbahnsignal"' - \vspace*{-3cm} - \end{onlyenv} - \pause - \medskip - \item - \newterm{Mutex}\\ - Mechanismus, damit immer nur ein Prozeß gleichzeitig\\ - auf eine Ressource zugreifen kann - \begin{onlyenv}<2> - \par\medskip - englisch: \emph{mutual exclusion\/} -- wechselseitiger Ausschluß\\ - spezieller binärer Semaphor: nur "`Besitzer"' darf freigeben\\ - % allgemein: auch jemand anderer dürfte freigeben - \vspace*{-3cm} - \end{onlyenv} - \pause - \medskip - \item - \newterm{Spinlock} (\emph{busy waiting\/})\\ - leichtgewichtige Alternative zu Kontextwechsel - \begin{onlyenv}<3> - \par\medskip - englisch: \emph{spin\/} -- rotieren, \emph{lock\/} Sperre\\ - \emph{busy waiting} auf etwas Schnelles, z.\,B.\ auf einen Semaphor\\[\medskipamount] - Hardware-Unterstützung: - Prüfen, ob Variable bestimmten Wert hat;\\ - wenn ja, auf anderen Wert setzen; andere Prozessoren solange anhalten - \vspace*{-3cm} - \end{onlyenv} - \pause - \medskip - \item - \newterm{Kritischer Abschnitt -- critical section}\\ - Programmabschnitt zwischen Reservierung\\ - und Freigabe einer Ressource\\ - \textarrow\ sollte immer so kurz wie möglich sein - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - Ressourcen reservieren -- - Beispiel: \file{linux-3.7rc1} - \begin{itemize} - \item - \newterm{Semaphor}\\ - \file{kernel/semaphor.c}\\ - \file{drivers/usb/core/file.c} - \medskip - \item - \newterm{Mutex}\\ - \file{kernel/mutex.c}\\ - \file{drivers/usb/serial/usb-serial.c} - \medskip - \item - \newterm{Spinlock}\\ - \file{kernel/spinlock.c}\\ - \file{kernel/semaphor.c}, - \file{kernel/mutex.c} - \end{itemize} - - % Aufgabe: Anwendungsarten im MultiWii- und RP6-Code identifizieren - - % evtl. Aufgabe: Warte-Problem - - % Aufgabe: Wie lösen bekannte Multitasking-Betriebssysteme - % das o.a. Zuteilungsproblem? - - % Danach: Semaphoren, Mutexe, Spinlocks - % Priorisierungsmethoden und -probleme - - % Festplatten: completely fair queueing - % cat /sys/block/sdc/queue/scheduler - % "noop" hat sich für SVG gelohnt - - % Virtualisierung + Kernel-Threads + Multiprozessorsystem = Chaos - -\end{frame} - -\begin{frame}[fragile] - - \textbf{Beispiel:} - \lstinline{usb_serial_get_by_index()} -- serielle Schnittstelle reservieren - - Datei \file{linux-3.7-rc1/drivers/usb/serial/usb-serial.c}, ab Zeile 62 - - \medskip - - \begin{lstlisting} - struct usb_serial *usb_serial_get_by_index (unsigned index) - { - struct usb_serial *serial; - mutex_lock (&table_lock); - serial = serial_table[index]; - if (serial) - { - mutex_lock (&serial->disc_mutex); - if (serial->disconnected) - { - mutex_unlock (&serial->disc_mutex); - serial = NULL; - } - else - kref_get (&serial->kref); - } - mutex_unlock (&table_lock); - return serial; - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(5.1,6.85){\vector(-1,0){0.5}} - \put(5.2,6.85){\makebox(0,0)[l]{exklusiven Zugriff auf Tabelle sichern}} - \put(5.4,1.35){\vector(-1,0){0.5}} - \put(5.5,1.35){\makebox(0,0)[l]{\shortstack[l]{exklusiven Zugriff auf Tabelle\\wieder freigeben}}} - \end{picture} - -\end{frame} - -\setlength{\pdfpageheight}{48cm} - -\begin{frame}[fragile] - - \lstinline{mutex_lock()} -- Ressource beanspruchen, notfalls warten - - Datei \file{linux-3.7-rc1/drivers/usb/serial/usb-serial.c}, ab Zeile 62 - - \medskip - - \begin{lstlisting} - void __sched mutex_lock (struct mutex *lock) - { - might_sleep (); - __mutex_fastpath_lock (&lock->count, __mutex_lock_slowpath); - mutex_set_owner (lock); - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(11.6,1.35){\line(-1,0){1}} - \put(11.6,1.35){\line(0,-1){2.45}} - \put(11.6,-1.10){\vector(-1,0){2.0}} - \end{picture} - - \bigskip - - Datei \file{linux-3.7-rc1/arch/x86/include/asm/mutex\_32.h}, ab Zeile 24 - - Macro-Definition für \lstinline{__mutex_fastpath_lock} (expandiert) - - \medskip - - Assembler: - \begin{lstlisting}[language={[x86masm]Assembler}] - lock dec (lock->count) - jns 1 - call __mutex_lock_slowpath - 1: - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(9,0.95){\line(-1,0){3.5}} - \put(9,0.95){\line(0,-1){2.5}} - \put(9.0,-1.55){\vector(-1,0){1.0}} - \end{picture} - - \bigskip - - Datei \file{linux-3.7-rc1/kernel/mutex.c}, ab Zeile 398 - - \medskip - - \begin{lstlisting} - static __used noinline void __sched - __mutex_lock_slowpath (atomic_t *lock_count) - { - struct mutex *lock = container_of (lock_count, struct mutex, count); - __mutex_lock_common (lock, TASK_UNINTERRUPTIBLE, 0, - NULL, _RET_IP_); - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(11.0,1.40){\line(-1,0){1.0}} - \put(11.0,1.40){\vector(0,-1){2.5}} - \end{picture} - - \bigskip - - Datei \file{linux-3.7-rc1/kernel/mutex.c}, ab Zeile 132 - - \medskip - - \begin{lstlisting} - static inline int __sched - __mutex_lock_common (struct mutex *lock, long state, unsigned int subclass, - struct lockdep_map *nest_lock, unsigned long ip) - { - struct task_struct *task = current; - struct mutex_waiter waiter; - unsigned long flags; - - preempt_disable (); - mutex_acquire_nest (&lock->dep_map, subclass, 0, nest_lock, ip); - - /* ... */ - - spin_lock_mutex (&lock->wait_lock, flags); - - debug_mutex_lock_common (lock, &waiter); - debug_mutex_add_waiter (lock, &waiter, task_thread_info (task)); - - /* add waiting tasks to the end of the waitqueue (FIFO): */ - list_add_tail (&waiter.list, &lock->wait_list); - waiter.task = task; - - if (atomic_xchg (&lock->count, -1) == 1) - goto done; - - lock_contended (&lock->dep_map, ip); - - for (;;) - { - /* - * Lets try to take the lock again - this is needed even if - * we get here for the first time (shortly after failing to - * acquire the lock), to make sure that we get a wakeup once - * it's unlocked. Later on, if we sleep, this is the - * operation that gives us the lock. We xchg it to -1, so - * that when we release the lock, we properly wake up the - * other waiters: - */ - if (atomic_xchg (&lock->count, -1) == 1) - break; - - /* - * got a signal? (This code gets eliminated in the - * TASK_UNINTERRUPTIBLE case.) - */ - if (unlikely (signal_pending_state (state, task))) - { - mutex_remove_waiter (lock, &waiter, task_thread_info (task)); - mutex_release (&lock->dep_map, 1, ip); - spin_unlock_mutex (&lock->wait_lock, flags); - - debug_mutex_free_waiter (&waiter); - preempt_enable (); - return -EINTR; - } - __set_task_state (task, state); - - /* didn't get the lock, go to sleep: */ - spin_unlock_mutex (&lock->wait_lock, flags); - schedule_preempt_disabled (); - spin_lock_mutex (&lock->wait_lock, flags); - } - - done: - lock_acquired (&lock->dep_map, ip); - /* got the lock - rejoice! */ - mutex_remove_waiter (lock, &waiter, current_thread_info ()); - mutex_set_owner (lock); - - /* set it to 0 if there are no waiters left: */ - if (likely (list_empty (&lock->wait_list))) - atomic_set (&lock->count, 0); - - spin_unlock_mutex (&lock->wait_lock, flags); - - debug_mutex_free_waiter (&waiter); - preempt_enable (); - - return 0; - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(7.9,28.3){\vector(-1,0){0.5}} - \put(8.0,28.3){\makebox(0,0)[l]{\shortstack[l]{exklusiven Zugriff\\auf Mutex sichern}}} - \put(7.4,2.3){\vector(-1,1){0.4}} - \put(7.5,2.0){\makebox(0,0)[l]{\shortstack[l]{exklusiven Zugriff auf Mutex\\wieder freigeben}}} - \end{picture} - -\end{frame} - -\setlength{\pdfpageheight}{40.5cm} - -\begin{frame}[fragile] - - \lstinline{spin_lock_mutex()} -- Mutex beanspruchen, notfalls \emph{busy waiting} - - Datei \file{linux-3.7-rc1/kernel/mutex.h}, ab Zeile 12 - - \medskip - - \begin{lstlisting} - #define spin_lock_mutex(lock, flags) \ - do \ - { \ - spin_lock (lock); \ - (void) (flags); \ - } \ - while (0) - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(8.5,1.75){\line(-1,0){4.5}} - \put(8.5,1.75){\line(0,-1){2.9}} - \put(8.5,-1.15){\vector(-1,0){1.0}} - \end{picture} - - \bigskip - - Datei \file{linux-3.7-rc1/kernel/spinlock.h}, ab Zeile 283 - - \medskip - - \begin{lstlisting} - static inline void spin_lock (spinlock_t *lock) - { - raw_spin_lock (&lock->rlock); - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(9.3,0.95){\line(-1,0){4.0}} - \put(9.3,0.95){\line(0,-1){2.1}} - \put(9.3,-1.15){\vector(-1,0){1.0}} - \end{picture} - - \bigskip - - Datei \file{linux-3.7-rc1/kernel/spinlock.h}, Zeile 170 - - \medskip - - \begin{lstlisting} - #define raw_spin_lock(lock) _raw_spin_lock (lock) - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(10.0,0.55){\line(-1,0){0.5}} - \put(10.0,0.55){\line(0,-1){1.7}} - \put(10.0,-1.15){\vector(-1,0){1.3}} - \end{picture} - - \bigskip - - Datei \file{linux-3.7-rc1/include/linux/spinlock\_api\_smp.h}, Zeile 47 - - \medskip - - \begin{lstlisting} - #define _raw_spin_lock(lock) __raw_spin_lock (lock) - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(10.7,0.55){\line(-1,0){0.5}} - \put(10.7,0.55){\line(0,-1){1.75}} - \put(10.7,-1.2){\vector(-1,0){2.3}} - \end{picture} - - \bigskip - - Datei \file{linux-3.7-rc1/kernel/spinlock.c}, ab Zeile 46 (expandiert): - - \medskip - - \begin{lstlisting} - void __lockfunc __raw_spin_lock (spinlock_t *lock) - { - for (;;) - { - preempt_disable (); - if (likely (do_raw_spin_trylock (lock))) - break; - preempt_enable (); - - if (!(lock)->break_lock) - (lock)->break_lock = 1; - while (!raw_spin_can_lock (lock) && (lock)->break_lock) - arch_spin_relax (&lock->raw_lock); - } - (lock)->break_lock = 0; - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(10.7,4.75){\line(-1,0){3.5}} - \put(10.7,4.75){\line(0,-1){5.95}} - \put(10.7,-1.2){\vector(-1,0){1.1}} - \end{picture} - - \bigskip - - Datei \file{linux-3.7-rc1/include/linux/spinlock.h}, ab Zeile 150: - - \medskip - - \begin{lstlisting} - static inline int do_raw_spin_trylock (raw_spinlock_t *lock) - { - return arch_spin_trylock (&(lock)->raw_lock); - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(11.5,0.95){\line(-1,0){3.5}} - \put(11.5,0.95){\line(0,-1){2.1}} - \put(11.5,-1.15){\vector(-1,0){0.7}} - \end{picture} - - \bigskip - - Datei \file{arch/x86/include/asm/spinlock.h}, ab Zeile 116: - - \medskip - - \begin{lstlisting} - static __always_inline int arch_spin_trylock (arch_spinlock_t *lock) - { - return __ticket_spin_trylock (lock); - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(9.5,0.95){\line(-1,0){3.5}} - \put(9.5,0.95){\vector(0,-1){1.7}} - \end{picture} - - \bigskip - - Datei \file{arch/x86/include/asm/spinlock.h}, ab Zeile 65: - - \medskip - - \begin{lstlisting} - static __always_inline int __ticket_spin_trylock (arch_spinlock_t *lock) - { - arch_spinlock_t old, new; - - old.tickets = ACCESS_ONCE (lock->tickets); - if (old.tickets.head != old.tickets.tail) - return 0; - - new.head_tail = old.head_tail + (1 << TICKET_SHIFT); - - /* cmpxchg is a full barrier, so nothing can move before it */ - return cmpxchg (&lock->head_tail, old.head_tail, new.head_tail) == old.head_tail; - } - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(2.2,0.3){\line(0,1){0.4}} - \put(9.0,0.3){\line(-1,0){6.8}} - \put(9.0,0.3){\line(0,-1){1.45}} - \put(9.0,-1.15){\vector(-1,0){3.2}} - \end{picture} - - \bigskip - - Datei \file{arch/x86/include/asm/cmpxchg.h}, ab Zeile 147: - - \medskip - - \begin{lstlisting} - #define cmpxchg(ptr, old, new) \ - __cmpxchg (ptr, old, new, sizeof (*(ptr))) - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(9.0,0.5){\line(-1,0){1.8}} - \put(9.0,0.5){\line(0,-1){1.65}} - \put(9.0,-1.15){\vector(-1,0){2.2}} - \end{picture} - - \bigskip - - Datei \file{arch/x86/include/asm/cmpxchg.h}, ab Zeile 131: - - \medskip - - \begin{lstlisting} - #define __cmpxchg(ptr, old, new, size) \ - __raw_cmpxchg ((ptr), (old), (new), (size), LOCK_PREFIX) - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(2.2,-0.1){\line(0,1){0.3}} - \put(9.0,-0.1){\line(-1,0){6.8}} - \put(9.0,-0.1){\line(0,-1){1.05}} - \put(9.0,-1.15){\vector(-1,0){2.2}} - \end{picture} - - \bigskip - - Datei \file{arch/x86/include/asm/cmpxchg.h}, ab Zeile 110: - - \medskip - - \begin{lstlisting} - asm volatile (lock "cmpxchgl %2,%1" \ - : "=a" (__ret), "+m" (*__ptr) \ - : "r" (__new), "0" (__old) \ - : "memory"); - \end{lstlisting} - \begin{picture}(0,0) - \color{red} - \put(9.8,1.8){\vector(-1,0){0.6}} - \put(9.8,1.2){\line(0,1){0.6}} - \put(9.8,1.1){\makebox(0,0)[t]{\shortstack{atomarer und exklusiver\\Zugriff auf Spinlock\\durch Hardware-Unterstützung}}} - \end{picture} - -\end{frame} - -\setlength{\pdfpageheight}{\normalpdfpageheight} - -%\sectionnonumber{Literaturempfehlung} -%\subsectionnonumber{Automotive Embedded Systeme} -% -%\begin{frame}[c] -% -% \showsectionnonumber -% -% Prof.\ Dr.\ Joachim Wietzke, FH Darmstadt,\\ -% Prof.\ Dr.\ Manh Tien Tran, FH Kaiserslautern: -% -% \medskip -% -% \showsubsectionnonumber -% -% \vspace{-\medskipamount} -% -% Springer-Verlag, Berlin, Heidelberg 2005 -% -% \bigskip -% -% Lizenz: proprietär -% -% \medskip -% -% (gesetzt mit \textrm{\LaTeX}, ca.\ \EUR{10}) -% -%\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - Ressourcen reservieren - \begin{itemize} - \item - \newterm{Semaphor}\\ - gemeinsame Variable mehrerer Prozesse\\ - zur Regelung des Zugriffs auf eine Ressource\\[\smallskipamount] - Ressource belegt \textarrow\ Kontextwechsel - \medskip - \item - \newterm{Mutex}\\ - Mechanismus, damit immer nur ein Prozeß gleichzeitig\\ - auf eine Ressource zugreifen kann - \medskip - \item - \newterm{Spinlock} (\emph{busy waiting\/})\\ - leichtgewichtige Alternative zu Kontextwechsel - \medskip - \item - \newterm{Kritischer Abschnitt -- critical section}\\ - Programmabschnitt zwischen Reservierung\\ - und Freigabe einer Ressource\\ - \textarrow\ sollte immer so kurz wie möglich sein - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - \begin{picture}(0,0) - \only<2-3>{\put(6.3,-7){\includegraphics[height=6cm]{philosophenproblem.jpg}}} - \end{picture}% - \newterm{Verklemmungen\/}: Gegenseitiges Blockieren von Ressourcen - \begin{itemize} - \item - \newterm{Deadlock\/}: Prozeß wartet - \item - \newterm{Livelock\/}: Prozeß macht andere Dinge\\ - (z.\,B.\ \emph{busy waiting\/}) - \end{itemize} - - \pause - \bigskip - - Beispiel: Philosophenproblem - - \only<2-3>{% - \begin{itemize} - \item - 5 Philosophen, 5 Gabeln - \item - 2 Gabeln zum Essen notwendig - \item - Wer essen will, nimmt eine Gabel\\ - und wartet notfalls auf die zweite. - \item - Keiner legt eine einzelne Gabel\\ - wieder zurück. - \end{itemize} - Jeder hält 1 Gabel \textarrow\ \newterm{Verklemmung}\\[0.5\smallskipamount] - \pause - \strut\quad schweigen \textarrow\ \newterm{Deadlock}\\ - \strut\quad philosophieren weiter \textarrow\ \newterm{Livelock}\\[-1cm] - } - \only<4->{% - \bigskip - - Bedingungen für Verklemmungen: - - \begin{minipage}[t]{4.5cm} - \begin{itemize} - \item - Exklusivität - \item - \newterm{hold and wait} - \item - Entzug nicht möglich - \item - zirkuläre Blockade - \end{itemize} - \end{minipage}\pause[5] - \begin{minipage}[t]{7.5cm} - \begin{itemize} - \arrowitem - Spooling - \arrowitem - simultane Zuteilung - \arrowitem - Prozesse suspendieren, beenden, \newterm{Rollback} - \arrowitem - Reihenfolge abhängig von Ressourcen - \end{itemize} - \end{minipage} - } - -\end{frame} - -\subsection{Prioritäten} - -\begin{frame} - - \showsection - \showsubsection - - Linux 0.01 - \begin{itemize} - \item - Timer-Interrupt: Zähler des aktuellen Prozesses wird dekrementiert;\\ - Prozeß mit höchstem Zähler bekommt Rechenzeit. - \item - Wenn es keinen laufbereiten Prozeß mit positivem Zähler gibt,\\ - bekommen alle Prozesse gemäß ihrer \newterm{Priorität\/} neue Zähler zugewiesen. - \item - \emph{keine\/} harte Echtzeit - \arrowitem - \newterm{dynamische Prioritätenvergabe\/}:\\ - Rechenzeit hängt vom Verhalten des Prozesses ab - \end{itemize} - - \medskip - - Echtzeitbetriebssysteme - \begin{itemize} - \item - Prozesse können einen festen Anteil an Rechenzeit bekommen. - \item - Bei Ereignissen können Prozesse hoher Priorität\\ - Prozesse niedriger Priorität unterbrechen, aber nicht umgekehrt. - \arrowitem - \newterm{statische Prioritätenvergabe} - \end{itemize} - -\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - Echtzeitbetriebssysteme - \begin{itemize} - \item - Prozesse können einen festen Anteil an Rechenzeit bekommen. - \item - Bei Ereignissen können Prozesse hoher Priorität\\ - Prozesse niedriger Priorität unterbrechen, aber nicht umgekehrt. - \end{itemize} - - \vspace{0cm plus 1filll} - - \begin{center} - \begin{picture}(11,4)(-1,0) - \small - - \put(-0.1,0.5){\vector(1,0){10.1}} - \put(9.75,0.4){\makebox(0,0)[tr]{Zeit}} - \put(0,0.4){\vector(0,1){3.6}} - \put(-0.1,3.75){\makebox(0,0)[tr]{Priorität}} - - \put(1,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \put(3,3){{\color{lightorange}\rule{0.7cm}{0.4cm}}} - \put(5,3){{\color{lightorange}\rule{0.6cm}{0.4cm}}} - \put(7,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \put(9,3){{\color{lightorange}\rule{0.7cm}{0.4cm}}} - \put(0,3){\line(1,0){10}} - - \put(0,1){{\color{lightgreen}\rule{1cm}{0.4cm}}} - \put(1.5,1){{\color{lightgreen}\rule{1.5cm}{0.4cm}}} - \put(3.7,1){{\color{lightgreen}\rule{0.6cm}{0.4cm}}} - \alt<1>{% - \put(7.9,1){{\color{lightgreen}\rule{1.1cm}{0.4cm}}} - }{% - \put(8.1,1){{\color{lightgreen}\rule{0.9cm}{0.4cm}}} - } - \put(9.7,1){{\color{lightgreen}\rule{0.3cm}{0.4cm}}} - \put(0,1){\line(1,0){10}} - - \pause - - \put(4.6,2){{\color{lightyellow}\rule{0.4cm}{0.4cm}}} - \put(5.7,2){{\color{lightyellow}\rule{1.3cm}{0.4cm}}} - \put(7.7,2){{\color{lightyellow}\rule{0.4cm}{0.4cm}}} - \put(0,2){\line(1,0){10}} - - \end{picture} - \end{center} - -\end{frame} - -\subsectionnonumber{Prioritäten \protect\color{darkgray}und Ressourcen} - -\begin{frame} - - \showsection - \showsubsection - - \only<4->{% - Der höher priorisierte Prozeß bewirkt selbst,\\ - daß er eine Ressource verspätet bekommt. - - \medskip - - \textarrow\ \newterm{begrenzte Prioritätsinversion} - - \medskip - - maximale Verzögerung: Länge des kritischen Bereichs - } - - \vspace{0cm plus 1filll} - - \begin{center} - \begin{picture}(11,4)(-1,0) - \small - - \put(-0.1,0.5){\vector(1,0){10.1}} - \put(9.75,0.4){\makebox(0,0)[tr]{Zeit}} - \put(0,0.4){\vector(0,1){3.6}} - \put(-0.1,3.75){\makebox(0,0)[tr]{Priorität}} - - \put(1,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \only<1-2>{\put(3,3){{\color{lightorange}\rule{0.7cm}{0.4cm}}}} - \only<3->{\put(3,3){{\color{lightorange}\rule{0.4cm}{0.4cm}}}} - \only<3-4>{% - \put(3.4,3){{\color{red}\rule{0.8cm}{0.4cm}}} - \put(4.2,3){{\color{lightorange}\rule{0.2cm}{0.4cm}}} - {\thicklines - \put(3.3,2.95){\line(2,1){1.0}} - \put(3.3,3.45){\line(2,-1){1.0}}} - } - \only<5->{% - \put(3.9,3){{\color{red}\rule{0.8cm}{0.4cm}}} - \put(4.7,3){{\color{lightorange}\rule{0.2cm}{0.4cm}}} - } - \put(5,3){{\color{lightorange}\rule{0.6cm}{0.4cm}}} - \only<1-2>{% - \put(5.4,3){{\color{red}\rule{0.8cm}{0.4cm}}} - \put(6.2,3){{\color{lightorange}\rule{0.2cm}{0.4cm}}} - } - \put(7,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \put(9,3){{\color{lightorange}\rule{0.7cm}{0.4cm}}} - \put(0,3){\line(1,0){10}} - - \only<2->{% - \put(0,1){{\color{lightgreen}\rule{1cm}{0.4cm}}} - \put(1.5,1){{\color{lightgreen}\rule{1.5cm}{0.4cm}}} - \put(2.6,1){{\color{medgreen}\rule{0.4cm}{0.4cm}}} - \only<2-4>{% - \put(3.7,1){{\color{medgreen}\rule{0.5cm}{0.4cm}}} - \put(4.2,1){{\color{lightgreen}\rule{0.3cm}{0.4cm}}} - } - \only<5->{% - \put(3.4,1){{\color{medgreen}\rule{0.5cm}{0.4cm}}} - \put(4.9,1){{\color{lightgreen}\rule{0.1cm}{0.4cm}}} - \put(5.6,1){{\color{lightgreen}\rule{0.2cm}{0.4cm}}} - } - \put(7.7,1){{\color{lightgreen}\rule{1.3cm}{0.4cm}}} - \put(9.7,1){{\color{lightgreen}\rule{0.3cm}{0.4cm}}} - \put(0,1){\line(1,0){10}} - } - \end{picture} - \end{center} - -\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - \visible<4->{% - Ein Prozeß mit mittlerer Priorität bewirkt, - daß ein Prozeß mit hoher Priorität eine Ressource überhaupt nicht bekommt. - - \medskip - - \textarrow\ }\newterm{unbegrenzte Prioritätsinversion} - - \pause - \vspace{0cm plus 1filll} - - \begin{center} - \begin{picture}(11,4)(-1,0) - \small - - \put(-0.1,0.5){\vector(1,0){10.1}} - \put(9.75,0.4){\makebox(0,0)[tr]{Zeit}} - \put(0,0.4){\vector(0,1){3.6}} - \put(-0.1,3.75){\makebox(0,0)[tr]{Priorität}} - - \put(1,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \put(3,3){{\color{lightorange}\rule{0.4cm}{0.4cm}}} - \only<2>{% - \put(3.4,3){{\color{red}\rule{0.8cm}{0.4cm}}} - \put(4.2,3){{\color{lightorange}\rule{0.2cm}{0.4cm}}} - {\thicklines - \put(3.3,2.95){\line(2,1){1.0}} - \put(3.3,3.45){\line(2,-1){1.0}}} - \put(5,3){{\color{lightorange}\rule{0.6cm}{0.4cm}}} - \put(7,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \put(9,3){{\color{lightorange}\rule{0.7cm}{0.4cm}}} - } - \put(0,3){\line(1,0){10}} - - \only<2->{% - \put(0,1){{\color{lightgreen}\rule{1cm}{0.4cm}}} - \put(1.5,1){{\color{lightgreen}\rule{1.1cm}{0.4cm}}} - \alt<1-4>{% - \put(2.6,1){{\color{medgreen}\rule{0.4cm}{0.4cm}}} - }{% - \put(2.6,1){{\color{medgreen}\rule{0.2cm}{0.4cm}}} - } - \only<2>{% - \put(3.7,1){{\color{medgreen}\rule{0.5cm}{0.4cm}}} - \put(4.2,1){{\color{lightgreen}\rule{0.3cm}{0.4cm}}} - } - \only<3-4>{% - \put(3.4,1){{\color{medgreen}\rule{0.5cm}{0.4cm}}} -% \put(3.9,1){{\color{lightgreen}\rule{0.3cm}{0.4cm}}} - } - \only<2>{% - \put(7.7,1){{\color{lightgreen}\rule{1.3cm}{0.4cm}}} - \put(9.7,1){{\color{lightgreen}\rule{0.3cm}{0.4cm}}} - } - \put(0,1){\line(1,0){10}} - } - - \only<5->{% - \put(2.8,2){{\color{lightyellow}\rule{0.2cm}{0.4cm}}} - \put(3.4,2){{\color{lightyellow}\rule{6.6cm}{0.4cm}}} - \put(0,2){\line(1,0){10}} - } - \end{picture} - \end{center} - -\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - Ein Prozeß mit mittlerer Priorität bewirkt, - daß ein Prozeß mit hoher Priorität eine Ressource überhaupt nicht bekommt. - - \medskip - - \textarrow\ \newterm{unbegrenzte Prioritätsinversion} - - \medskip - - Beispiel: Beinahe-Verlust der Marssonde \emph{Pathfinder\/} im Juli 1997 - - \only<1>{% - \begin{center} - \includegraphics[width=8.5cm]{pathfinder.jpg} - \vspace*{-1.5cm} - \end{center} - } - - \bigskip - - \only<2>{% - Gegenmaßnahmen - \begin{itemize} - \item - \newterm{Priority Inheritance -- Prioritätsvererbung}\\ - Der Besitzer des Mutex erbt die Priorität\\ - des Prozesses, der auf den Mutex wartet. - \end{itemize} - - \bigskip - - \begin{minipage}{7.0cm} - \begin{flushright} - \url{http://research.microsoft.com/en-us/\\um/people/mbj/Mars\_Pathfinder/} - \end{flushright} - \end{minipage} - - \vspace{-0.2cm}\strut\hfill\makebox(0,0)[br]{\includegraphics[height=2.7cm]{pathfinder.jpg}}\vspace*{-1cm} - } - -\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - Ein Prozeß mit mittlerer Priorität bewirkt, - daß ein Prozeß mit hoher Priorität eine Ressource überhaupt nicht bekommt. - - \medskip - - \textarrow\ \newterm{unbegrenzte Prioritätsinversion} - - \bigskip - - Gegenmaßnahme: \newterm{Priority Inheritance -- Prioritätsvererbung} - - \vspace{0cm plus 1filll} - - \begin{center} - \begin{picture}(11,4)(-1,0) - \small - - \put(-0.1,0.5){\vector(1,0){10.1}} - \put(9.75,0.4){\makebox(0,0)[tr]{Zeit}} - \put(0,0.4){\vector(0,1){3.6}} - \put(-0.1,3.75){\makebox(0,0)[tr]{Priorität}} - - \put(0,1){{\color{lightgreen}\rule{1cm}{0.4cm}}} - \put(1.5,1){{\color{lightgreen}\rule{1.1cm}{0.4cm}}} - \put(2.6,1){{\color{medgreen}\rule{0.2cm}{0.4cm}}} - \put(0,1){\line(1,0){10}} - - \put(2.8,2){{\color{lightyellow}\rule{0.2cm}{0.4cm}}} - \only<1-2>{% - \put(3.4,2){{\color{lightyellow}\rule{6.6cm}{0.4cm}}} - } - \put(0,2){\line(1,0){10}} - - \put(1,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \put(3,3){{\color{lightorange}\rule{0.4cm}{0.4cm}}} - \put(0,3){\line(1,0){10}} - - \only<2>{% - \put(3.4,3){{\color{red}\rule{0.8cm}{0.4cm}}} - {\thicklines - \put(3.3,2.95){\line(2,1){1.0}} - \put(3.3,3.45){\line(2,-1){1.0}}} - } - - \only<3->{% - \put(3.4,3){{\color{medgreen}\rule{0.7cm}{0.4cm}}} - \put(4.1,3){{\color{red}\rule{0.8cm}{0.4cm}}} - \put(5.7,2){{\color{lightyellow}\rule{1.3cm}{0.4cm}}} - \put(4.9,3){{\color{lightorange}\rule{0.8cm}{0.4cm}}} - \put(7,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \put(7.5,2){{\color{lightyellow}\rule{1.5cm}{0.4cm}}} - \put(9,3){{\color{lightorange}\rule{0.7cm}{0.4cm}}} - \put(9.7,2){{\color{lightyellow}\rule{0.3cm}{0.4cm}}} - } - \end{picture} - \end{center} - -\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - Ein Prozeß mit mittlerer Priorität bewirkt, - daß ein Prozeß mit hoher Priorität eine Ressource überhaupt nicht bekommt. - - \medskip - - \textarrow\ \newterm{unbegrenzte Prioritätsinversion} - - \bigskip - - Gegenmaßnahme: \newterm{Priority Ceiling -- Prioritätsobergrenze} - - \vspace{0cm plus 1filll} - - \begin{center} - \begin{picture}(11,4)(-1,0) - \small - - \put(-0.1,0.5){\vector(1,0){10.1}} - \put(9.75,0.4){\makebox(0,0)[tr]{Zeit}} - \put(0,0.4){\vector(0,1){3.6}} - \put(-0.1,3.75){\makebox(0,0)[tr]{Priorität}} - - \put(0,1){{\color{lightgreen}\rule{1cm}{0.4cm}}} - \put(1.5,1){{\color{lightgreen}\rule{1.1cm}{0.4cm}}} -% \only<1>{% -% \put(2.6,1){{\color{medgreen}\rule{0.2cm}{0.4cm}}} -% } - \put(0,1){\line(1,0){10}} - -% \only<1>{% -% \put(2.8,2){{\color{lightyellow}\rule{0.2cm}{0.4cm}}} -% \put(3.4,2){{\color{lightyellow}\rule{6.6cm}{0.4cm}}} -% } - \put(0,2){\line(1,0){10}} - - \put(1,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} -% \only<1>{% -% \put(3,3){{\color{lightorange}\rule{0.4cm}{0.4cm}}} -% } - \put(0,3){\line(1,0){10}} - -% \only<2>{% -% \only<2>{% - \put(2.6,3){{\color{medgreen}\rule{0.9cm}{0.4cm}}} - \put(3.5,3){{\color{lightorange}\rule{0.4cm}{0.4cm}}} - \put(3.9,3){{\color{red}\rule{0.8cm}{0.4cm}}} - \put(4.7,3){{\color{lightorange}\rule{0.8cm}{0.4cm}}} - \put(5.5,2){{\color{lightyellow}\rule{1.5cm}{0.4cm}}} - \put(7,3){{\color{lightorange}\rule{0.5cm}{0.4cm}}} - \put(7.5,2){{\color{lightyellow}\rule{1.5cm}{0.4cm}}} - \put(9,3){{\color{lightorange}\rule{0.7cm}{0.4cm}}} - \put(9.7,2){{\color{lightyellow}\rule{0.3cm}{0.4cm}}} -% } - \end{picture} - \end{center} - -\end{frame} - -\begin{frame} - - \showsection - \showsubsection - - Ein Prozeß mit mittlerer Priorität bewirkt, - daß ein Prozeß mit hoher Priorität eine Ressource überhaupt nicht bekommt. - - \medskip - - \textarrow\ \newterm{unbegrenzte Prioritätsinversion} - - \medskip - - Beispiel: Beinahe-Verlust der Marssonde \emph{Pathfinder\/} im Juli 1997 - - \bigskip - - Gegenmaßnahmen - \begin{itemize} - \item - \newterm{Priority Inheritance -- Prioritätsvererbung}\\ - Der Besitzer des Mutex erbt die Priorität\\ - des Prozesses, der auf den Mutex wartet. - \smallskip - \item - \newterm{Priority Ceiling -- Prioritätsobergrenze}\\ - Der Besitzer des Mutex bekommt sofort\\ - die Priorität des höchstmöglichen Prozesses,\\ - der evtl.\ den Mutex benötigen könnte. - \pause - \begin{picture}(0,0) - \put(1.2,1.45){\makebox(0,0)[l]{$\left\}\rule{0pt}{1.7cm}\right.$ - \begin{minipage}{4cm} - nur möglich, wenn\\ - Mutexe im Spiel sind - \end{minipage}}} - \end{picture} - \smallskip - \pause - \item - \newterm{Priority Aging}\\ - Die Priorität wächst mit der Wartezeit. - \end{itemize} - \vspace*{-1cm} - -\end{frame} - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}}% - \item[\textbf{2}] \textbf{Einführung in Unix} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \item[\textbf{4}] \textbf{Bus-Systeme} - \begin{itemize} - \item[4.1] Was sind Bus-Systeme? - \item[4.2] RS-232 - \item[4.3] \ItwoC\ (TWI) - \item[4.4] SPI - \color{medgreen} - \item[4.5] PWM - \item[5.6] Sonstiges - \end{itemize} - \item[\textbf{5}] \textbf{Echtzeit} - \begin{itemize} - \color{medgreen} - \item[5.1] Was ist Echtzeit? - \item[5.2] Echtzeitprogrammierung - \item[5.3] Multitasking - \item[5.4] Ressourcen - \item[5.5] Prioritäten - \end{itemize} - \vspace*{-\medskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\end{document} diff --git a/20181129/herzschrittmacher.jpg b/20181129/herzschrittmacher.jpg deleted file mode 120000 index 92d8f0053003cc555aec83f5d088f1cec822ad81..0000000000000000000000000000000000000000 --- a/20181129/herzschrittmacher.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/herzschrittmacher.jpg \ No newline at end of file diff --git a/20181129/kompassmodul-an-roboter.jpg b/20181129/kompassmodul-an-roboter.jpg deleted file mode 120000 index dab8b38c1a92bf8072d42dc3abcc07be54a58c7b..0000000000000000000000000000000000000000 --- a/20181129/kompassmodul-an-roboter.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/kompassmodul-an-roboter.jpg \ No newline at end of file diff --git a/20181129/kompassmodul.jpg b/20181129/kompassmodul.jpg deleted file mode 120000 index be108a5341df13a693959dbe69b7b9541b36fc4c..0000000000000000000000000000000000000000 --- a/20181129/kompassmodul.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/kompassmodul.jpg \ No newline at end of file diff --git a/20181129/logo-hochschule-bochum-cvh-text-v2.pdf b/20181129/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 120000 index 4aa99b8f81061aca6dcaf43eed2d9efef40555f8..0000000000000000000000000000000000000000 --- a/20181129/logo-hochschule-bochum-cvh-text-v2.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20181129/logo-hochschule-bochum.pdf b/20181129/logo-hochschule-bochum.pdf deleted file mode 120000 index b6b9491e370e499c9276918182cdb82cb311bcd1..0000000000000000000000000000000000000000 --- a/20181129/logo-hochschule-bochum.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20181129/motherboard-anschluesse.jpg b/20181129/motherboard-anschluesse.jpg deleted file mode 120000 index 07335d7dff65c71a683588d2ed108485c4653fb7..0000000000000000000000000000000000000000 --- a/20181129/motherboard-anschluesse.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/motherboard-anschluesse.jpg \ No newline at end of file diff --git a/20181129/pathfinder.jpg b/20181129/pathfinder.jpg deleted file mode 120000 index 23c6444fee26e0cf0dd2f8639484b00aa5021b59..0000000000000000000000000000000000000000 --- a/20181129/pathfinder.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/pathfinder.jpg \ No newline at end of file diff --git a/20181129/pgslides.sty b/20181129/pgslides.sty deleted file mode 120000 index 5be1416f4216f076aa268901f52a15d775e43f64..0000000000000000000000000000000000000000 --- a/20181129/pgslides.sty +++ /dev/null @@ -1 +0,0 @@ -../common/pgslides.sty \ No newline at end of file diff --git a/20181129/philosophenproblem.jpg b/20181129/philosophenproblem.jpg deleted file mode 120000 index 26591b2ac2dddfd4786814baf3f19ecb67f1f5ee..0000000000000000000000000000000000000000 --- a/20181129/philosophenproblem.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/philosophenproblem.jpg \ No newline at end of file diff --git a/20181129/photo-20181129-170827.jpg b/20181129/photo-20181129-170827.jpg deleted file mode 100644 index 7c39104c882a4d354d5489505bc7fe8fa9cc0499..0000000000000000000000000000000000000000 Binary files a/20181129/photo-20181129-170827.jpg and /dev/null differ diff --git a/20181129/photo-20181129-170853.jpg b/20181129/photo-20181129-170853.jpg deleted file mode 100644 index 2ce62c688f8b5c5107c5c0f56a633e3f365cfe58..0000000000000000000000000000000000000000 Binary files a/20181129/photo-20181129-170853.jpg and /dev/null differ diff --git a/20181129/photo-20181129-171122.jpg b/20181129/photo-20181129-171122.jpg deleted file mode 100644 index 68e18aa53f31a050f33332fbf4e5013cde2608b1..0000000000000000000000000000000000000000 Binary files a/20181129/photo-20181129-171122.jpg and /dev/null differ diff --git a/20181129/photo-20181129-171158.jpg b/20181129/photo-20181129-171158.jpg deleted file mode 100644 index eccf86423b2d4a9ca81e8e82eb4ada1f79a61427..0000000000000000000000000000000000000000 Binary files a/20181129/photo-20181129-171158.jpg and /dev/null differ diff --git a/20181129/photo-20181129-184627.jpg b/20181129/photo-20181129-184627.jpg deleted file mode 100644 index 3b9d487aaa0447355e97883fce501234772e0ad3..0000000000000000000000000000000000000000 Binary files a/20181129/photo-20181129-184627.jpg and /dev/null differ diff --git a/20181129/quadrocopter.jpg b/20181129/quadrocopter.jpg deleted file mode 120000 index 7eaf0c024b63b7bc1dd3df2c17c8ab93f67fc15c..0000000000000000000000000000000000000000 --- a/20181129/quadrocopter.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/quadrocopter.jpg \ No newline at end of file diff --git a/20181129/rp6.jpg b/20181129/rp6.jpg deleted file mode 120000 index 2a0ecff23845770c3a98178eca6dce3ec73aca58..0000000000000000000000000000000000000000 --- a/20181129/rp6.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/rp6.jpg \ No newline at end of file diff --git a/20181129/rs-232.pdf b/20181129/rs-232.pdf deleted file mode 100644 index 236ef5bf182048842613c5416b91afb68f451fa6..0000000000000000000000000000000000000000 Binary files a/20181129/rs-232.pdf and /dev/null differ diff --git a/20181129/tolles-programm b/20181129/tolles-programm deleted file mode 100755 index ca9c919faad041b4ac2a27a91772e6f7972f3c7e..0000000000000000000000000000000000000000 --- a/20181129/tolles-programm +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -for t in $(seq 10 -1 0); do - sleep 1s - echo $t -done - -echo "Hello, world!" diff --git a/20181129/xbee.jpg b/20181129/xbee.jpg deleted file mode 120000 index ff0adff2eadf3d9b775d03cea8cf1f118534e2b9..0000000000000000000000000000000000000000 --- a/20181129/xbee.jpg +++ /dev/null @@ -1 +0,0 @@ -../common/xbee.jpg \ No newline at end of file diff --git a/20181206/photo-20181206-183205.jpg b/20181206/photo-20181206-183205.jpg deleted file mode 100644 index 9504514720681c02ddbbd59c833f99b1977cd14e..0000000000000000000000000000000000000000 Binary files a/20181206/photo-20181206-183205.jpg and /dev/null differ diff --git a/20181220/721px-Pfs-logo.png b/20181220/721px-Pfs-logo.png deleted file mode 100644 index 1b9d6698223254ba7c4170905b311b162cad2274..0000000000000000000000000000000000000000 Binary files a/20181220/721px-Pfs-logo.png and /dev/null differ diff --git a/20181220/Adobe-Reader.png b/20181220/Adobe-Reader.png deleted file mode 100644 index 30d8d244efbda994a9c6e832705c93c3eba4ef4f..0000000000000000000000000000000000000000 Binary files a/20181220/Adobe-Reader.png and /dev/null differ diff --git a/20181220/Copyright.pdf b/20181220/Copyright.pdf deleted file mode 100644 index 69f4ec0c29489b7c1eb24724c79153cea1087156..0000000000000000000000000000000000000000 Binary files a/20181220/Copyright.pdf and /dev/null differ diff --git a/20181220/Microsoft_Power_Point_2010.png b/20181220/Microsoft_Power_Point_2010.png deleted file mode 100644 index ce91df9e0cb33e1d0e644a5ac25f916c266f4524..0000000000000000000000000000000000000000 Binary files a/20181220/Microsoft_Power_Point_2010.png and /dev/null differ diff --git a/20181220/a-gnu-head.pdf b/20181220/a-gnu-head.pdf deleted file mode 100644 index 3dcb28fc1147f4b801391c6e5d54a9c4c9311bd6..0000000000000000000000000000000000000000 Binary files a/20181220/a-gnu-head.pdf and /dev/null differ diff --git a/20181220/libreoffice-impress.pdf b/20181220/libreoffice-impress.pdf deleted file mode 100644 index df752f1d6d50d46ed2f1ed9964190ba4dad2fa75..0000000000000000000000000000000000000000 Binary files a/20181220/libreoffice-impress.pdf and /dev/null differ diff --git a/20181220/lic-20181220.pdf b/20181220/lic-20181220.pdf deleted file mode 100644 index d31668e9df0cbdc828a194f114482488c3f45f66..0000000000000000000000000000000000000000 Binary files a/20181220/lic-20181220.pdf and /dev/null differ diff --git a/20181220/lic-20181220.tex b/20181220/lic-20181220.tex deleted file mode 100644 index b37ac376b6a3abf5fd5c4e1e0e86e8b9558e7760..0000000000000000000000000000000000000000 --- a/20181220/lic-20181220.tex +++ /dev/null @@ -1,634 +0,0 @@ -% lic-20160512.pdf - Lecture Slides on Applied Computer Sciences -% Copyright (C) 2012, 2015, 2016 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -\documentclass[10pt]{beamer} - -\usepackage[utf8]{luainputenc} -\usepackage[german]{babel} -\usepackage[T1]{fontenc} -\usepackage{helvet} -\renewcommand*\familydefault{\sfdefault} - -\usetheme{default} -\usefonttheme{structurebold} -\setbeamertemplate{navigation symbols}{} -\setbeamersize{text margin left = 0.3cm, text margin right = 0.2cm} -\setbeamertemplate{itemize item}{$\bullet$} -\setbeamertemplate{itemize subitem}{--} -\setbeamerfont{itemize/enumerate subbody}{size=\normalsize} -\setbeamerfont{itemize/enumerate subsubbody}{size=\normalsize} -\addtolength{\topmargin}{0.15cm} - -\usepackage{pstricks} -\newrgbcolor{darkgreen}{0.0 0.3 0.0} -\newrgbcolor{lightred}{1.0 0.7 0.7} -\newrgbcolor{lightgray}{0.85 0.85 0.85} -\newrgbcolor{medgray}{0.4 0.4 0.4} - -\usepackage{listings} -\lstset{basicstyle=\color{structure}, - language=C, - captionpos=b, - gobble=4, - columns=fullflexible, - aboveskip=0pt, - belowskip=0pt, - moredelim=**[is][\color{red}]{¡}{¿}, - moredelim=**[is][\only<2->{\color{structure}}]{²}{¿}, - moredelim=**[is][\only<3->{\color{structure}}]{³}{¿}, - moredelim=**[is][\only<4->{\color{structure}}]{°}{¿}, - moredelim=**[is][\only<5->{\color{structure}}]{¤}{¿}, - moredelim=**[is][\only<6->{\color{structure}}]{¢}{¿}, - moredelim=**[is][\only<7->{\color{structure}}]{æ}{¿}, - moredelim=**[is][\only<8->{\color{structure}}]{ø}{¿}} -\lstdefinestyle{terminal}{basicstyle=\ttfamily\color{darkgreen}, - columns=fixed, - moredelim=**[is][\color{red}]{¡}{¿}, - moredelim=**[is][\color{structure}]{°}{¿}} -\lstdefinestyle{shy}{basicstyle=\color{lightgray}, - moredelim=**[is][\color{structure}]{¡}{¿}} -\lstdefinestyle{semishy}{basicstyle=\color{medgray}, - moredelim=**[is][\color{structure}]{¡}{¿}} - -\usepackage{multirow} - -\setcounter{topnumber}{3} -\renewcommand\topfraction{0.7} -\setcounter{bottomnumber}{3} -\renewcommand\bottomfraction{0.7} -\setcounter{totalnumber}{5} -\renewcommand\textfraction{0.1} -\renewcommand\floatpagefraction{0.9} - -\setlength{\unitlength}{1cm} - -\newcommand{\protectfile}[1]{#1} -\newcommand{\file}[1]{{\color{structure}\protectfile{#1}}} -\newcommand{\textarrow}{{\boldmath $\longrightarrow$}} -\newcommand{\arrowitem}{\item[\textarrow]} -\newcommand{\BIGskip}{\vspace{1cm}} -\newcommand{\shy}{\color{lightgray}} -\newcommand{\hot}{\color{red}} -\newcommand{\shyhot}{\color{lightred}} - -\newcommand{\sectionnonumber}[1]{\section{#1}\addtocounter{section}{-1}} - -\def\showsectionnonumber{{\Large\color{structure}\bf\secname\par}\bigskip} - -\def\showsection{\hbox{\Large\color{structure}\bf - \vtop{\hbox{\arabic{section}}}\kern1em% - \vtop{\secname}\par}\bigskip} - -\newcommand{\subsectionnonumber}[1]{\subsection{#1}\addtocounter{subsection}{-1}} - -\def\showsubsectionnonumber{{\large\color{structure}\bf\subsecname\par}\bigskip} - -\def\showsubsection{\hbox{\large\color{structure}\bf - \vtop{\hbox{\arabic{section}.\arabic{subsection}}}\kern1em% - \vtop{\subsecname}\par}\bigskip} - -\begin{document} - -\sectionnonumber{Software-Lizenzen} -\subsectionnonumber{Vorab: Dies ist keine Rechtsdienstleistung!} - -\begin{frame}[t,plain] - \showsectionnonumber - \pause - \showsubsectionnonumber - - \textbf{\S\,2 RDG: Begriff der Rechtsdienstleistung} - - \smallskip - - (1) Rechtsdienstleistung ist jede Tätigkeit in - {\only<3->{\color{red}}konkreten} fremden Angelegenheiten, - sobald sie eine rechtliche Prüfung des - {\only<3->{\color{red}}Einzelfalls} erfordert. - - \medskip - - \strut\hfill Quelle: \url{http://www.gesetze-im-internet.de/rdg/} - - \pause - \pause - - \bigskip - - Konkreter Fall: - \begin{itemize} - \item - Konkretes Programm unter Lizenz A - \item - Konkrete Bibliothek unter Lizenz B - \item - Beratung: Paßt das zusammen? - \arrowitem - Rechtsdienstleistung - \end{itemize} -\end{frame} - - \subsectionnonumber{Lizenz-Beratung unter Kollegen?} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - \textbf{\S\,6 RDG: Unentgeltliche Rechtsdienstleistungen} - - \smallskip - - (1) Erlaubt sind Rechtsdienstleistungen, die nicht im Zusammenhang mit einer entgeltlichen - Tätigkeit stehen (unentgeltliche Rechtsdienstleistungen). - - \smallskip - - (2) Wer unentgeltliche Rechtsdienstleistungen außerhalb familiärer, nachbarschaftlicher oder - ähnlich enger persönlicher Beziehungen erbringt, muss sicherstellen, dass die Rechtsdienstleistung - durch eine Person, der die entgeltliche Erbringung dieser Rechtsdienstleistung erlaubt ist, durch - eine Person mit Befähigung zum Richteramt oder unter Anleitung einer solchen Person erfolgt. - [\,\dots] - - \medskip - - \strut\hfill Quelle: \url{http://www.gesetze-im-internet.de/rdg/} - - \pause - - \bigskip - - \begin{itemize} - \arrowitem - Nur allgemein beraten!\\ - Konkrete Fälle an Anwalt verweisen! - \end{itemize} - -\end{frame} - - \subsectionnonumber{Überblick} - \newcommand{\lcr}{\includegraphics[width=0.5cm]{Copyright.pdf}} - \newcommand{\lcl}{\includegraphics[width=0.5cm]{Copyleft.pdf}} - \newcommand{\lcc}{\includegraphics[width=0.5cm]{creative-commons.png}} - \newcommand{\lpd}{\includegraphics[width=0.5cm]{PD-icon.pdf}} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - \begin{itemize} - \item - Grundlage: Urheberrecht ($\approx$ Copyright) \hfill \lcr\\ - "`Wer Software schreibt, entscheidet, was damit geschehen darf."' - \pause - \medskip - \item - anderen etwas erlauben: Lizenz - \pause - \medskip - \item - "`gar keine Lizenz"' = alles verboten - \end{itemize} -\end{frame} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - \begin{center} - \begin{picture}(12,5) - \put(5,5){\makebox(0,0){Software-Lizenz}} - \put(4.5,4.7){\vector(-1,-1){1}} - \put(5.5,4.7){\vector(1,-1){1}} - \put(3,3.4){\makebox(0,0){proprietär}} - \put(7,3.4){\makebox(0,0){frei / Open Source}} - \put(6.5,3.1){\vector(-1,-1){1.5}} - \put(7.5,3.1){\vector(1,-1){1}} - \put(4.5,1.3){\makebox(0,0){freizügig}} - \put(9,1.8){\makebox(0,0){Copyleft}} - \end{picture}% - \begin{onlyenv}<2->% - \begin{picture}(0,0)(12,0) - \color{darkgreen} - \put(2.5,3.1){\vector(-1,-1){0.5}} - \put(3.5,3.1){\vector(1,-1){0.5}} - \put(2.0,2.3){\makebox(0,0){kommerziell}} - \put(4.0,2.3){\makebox(0,0){gratis}} - \put(4.0,1.0){\vector(-1,-1){0.5}} - \put(5.0,1.0){\vector(1,-1){0.5}} - \put(3.5,0.2){\makebox(0,0){kommerziell}} - \put(5.5,0.2){\makebox(0,0){gratis}} - \put(8.5,1.5){\vector(-1,-1){0.5}} - \put(9.5,1.5){\vector(1,-1){0.5}} - \put(8.0,0.7){\makebox(0,0){kommerziell}} - \put(10.0,0.7){\makebox(0,0){gratis}} - \end{picture}% - \end{onlyenv}% - \end{center} - -\end{frame} - - \subsectionnonumber{Lizenzmodelle} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - \begin{itemize} - \item - Freie Software darf man - \hfill\begin{picture}(0,0) - \put(-1.8,-0.8){\includegraphics[width=2cm]{a-gnu-head.pdf}} - \end{picture} - \begin{itemize} - \item[0.] - benutzen, - \item[1.] - studieren und anpassen, - \item[2.] - weitergeben, - \item[3.] - weiterentwickeln und veröffentlichen. - \end{itemize} - \strut\hfill - 4 Grundfreiheiten -- - \url{http://www.gnu.org/philosophy/free-sw}\\ - \pause - \begin{picture}(0,0) - \color{red} - \put(6.95,1.85){\vector(-1,0){1.5}} - \put(7.00,1.75){\vector(-1,-1){0.5}} - \put(7.05,1.85){\makebox(0,0)[l]{Quelltext erforderlich!}} - \end{picture}% - \pause - \medskip - \item - Open Source: i.\,w.\ dasselbe in 10 Kriterien - \hfill\begin{picture}(0,0) - \put(-1.2,-0.5){\includegraphics[width=1.1cm]{osi-logo.jpg}} - \end{picture}\\ - Begründung: technisch statt philosophisch\\[\smallskipamount] - \strut\hfill - Definition: - \url{http://www.opensource.org/docs/osd} - \end{itemize} - -\end{frame} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - \begin{itemize} - \item - Proprietäre Software / Closed Source\\ - Gegenteil von freier Software / Open Source - \medskip - \begin{itemize} - \item - Benutzen, Weitergeben und/oder Veröffentlichen\\ - erfordert individuelle Erlaubnis des Rechteinhabers - \medskip - \item - Studieren, Anpassen und/oder Weiterentwickeln\\ - nur dem Rechteinhaber erlaubt - \pause - {\color{red}und/oder möglich\\ - (Quelltext erforderlich!)} - \end{itemize} - \end{itemize} - -\end{frame} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - \begin{itemize} - \item - Freie Software - \smallskip - \begin{itemize} - \item - Copyleft\only<2->{:}\\[\smallskipamount] - \begin{visibleenv}<2-> - Weitergabe nur unter gleichen Bedingungen erlaubt\\ - \textarrow\ Umwandlung in proprietäre Software nicht erlaubt - \end{visibleenv} - \medskip - \item - freizügig\only<3->{:}\\[\smallskipamount] - \begin{visibleenv}<3-> - Weitergabe auch unter anderen Bedingungen erlaubt\\ - \textarrow\ Umwandlung in \only<4->{Copyleft- oder }proprietäre Software erlaubt - \end{visibleenv} - \begin{onlyenv}<5-> - \medskip - \item - Teil-Copyleft:\\[\smallskipamount] - Linken mit proprietärer Software erlaubt - \end{onlyenv} - \end{itemize} - \end{itemize} - - -\end{frame} - - \subsectionnonumber{Beispiel-Programme} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - \begin{center} - \renewcommand{\arraystretch}{2.5} - \begin{tabular}{|c||c|c|c|}\hline - & \multirow{2}{*}{proprietär} & \multicolumn{2}{c|}{frei}\\\cline{3-4} - & & freizügig & Copyleft \\\hline\hline - \color{darkgreen}kommerziell - & \color{structure}\visible<2->{\shortstack{\\\includegraphics[width=0.5cm]{Microsoft_Power_Point_2010.png}\\\small Microsoft PowerPoint}} - & \color{structure}\visible<6->{\shortstack{\\\includegraphics[width=1.0cm]{721px-Pfs-logo.png}\\\small pfSense}} - & \color{structure}\visible<5->{\shortstack{\\\includegraphics[width=0.8cm]{open-xchange.jpg}\\\small Open-Xchange}} \\\hline - \color{darkgreen}gratis - & \color{structure}\visible<4->{\shortstack{\\\includegraphics[width=0.8cm]{Adobe-Reader.png}\\\small Adobe Reader}} - & \color{structure}\visible<6->{\shortstack{\\\includegraphics[width=0.5cm]{putty.png}\\\small PuTTY}} - & \color{structure}\visible<3->{\shortstack{\\\includegraphics[width=0.5cm]{libreoffice-impress.pdf}\\\small LibreOffice Impress}} \\\hline - \end{tabular} - \end{center} - \begin{onlyenv}<7->% - \begin{picture}(0,0)(0,-0.5) - \color{red} - \put(7.38,1.38){$\updownarrow$} - \put(9.8,1.38){$\updownarrow$} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<8->% - \begin{picture}(0,0)(0,-0.7) - \color{red} - \put(6.3,2.7){$\longleftarrow$} - \put(8.05,2.7){$\longrightarrow$} - \end{picture}% - \end{onlyenv}% - -\end{frame} - - \subsectionnonumber{Beispiel-Lizenzen} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - Generell: Gewährleistungsausschluß - - \bigskip - - \pause - Freie Software / Open Source - \begin{itemize} - \item - strenges Copyleft: - GNU GPL, GNU FDL, CC BY-SA - \pause - \item - Teil-Copyleft: - GNU LGPL, Mozilla-Lizenz, Microsoft Public License - \pause - \item - freizügig: - Modifizierte BSD-Lizenz, Apache-Lizenz, CC BY,\\ - CC0, Public Domain - \end{itemize} - \pause - \strut\hfill\url{http://www.gnu.org/licenses/license-list} - -\end{frame} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - Generell: Gewährleistungsausschluß - - \bigskip - - Proprietäre Software - - \begin{itemize} - \item - Lizenz i.\,d.\,R.\ für jedes Programm anders - \pause - \medskip - \item - "`Normales"' Beispiel (Januar 2012):\\ - Adobe Reader EULA\\[\smallskipamount] - Verwenden \only<3->{nur auf PCs }erlaubt\pause\pause,\\ - Studieren und Weitergeben nicht erlaubt\pause,\\ - Screenshots nicht erlaubt\\[\smallskipamount] - \pause - Der Software ist die Kommunikation mit Adobe\\ - und mit Werbeanbietern erlaubt.\\[\medskipamount] - \pause - \strut\hfill\url{http://www.adobe.com/products/eulas/reader/x/eula_de_de.html} - \medskip - \end{itemize} - -\end{frame} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - Generell: Gewährleistungsausschluß - - \bigskip - - Proprietäre Software - - \begin{itemize} - \item - Kontroverses Beispiel (Januar 2012):\\ - iBooks Author EULA\\[\smallskipamount] - Layout für elektronische Bücher erstellen\\ - \pause - \textarrow\ Buch darf nur über den iBooks Store verkauft werden\\[\medskipamount] - \strut\hfill\url{http://venomousporridge.com/post/16126436616/}\\ - \strut\hfill\url{ibooks-author-eula-audacity} - \end{itemize} - -\end{frame} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - Generell: Gewährleistungsausschluß - - \bigskip - - Proprietäre Software - - \begin{itemize} - \item - Kontroverses Beispiel (September 2001):\\ - Microsoft FrontPage 2002 EULA\\[\smallskipamount] - Webseiten erstellen\\ - \pause - \textarrow\ Webseiten dürfen Microsoft nicht "`herabsetzen"'\\[\medskipamount] - \strut\hfill\url{http://www.heise.de/newsticker/data/jes-21.09.01-001/} - \end{itemize} - -\end{frame} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - Generell: Gewährleistungsausschluß - - \bigskip - - Proprietäre Software - - \begin{itemize} - \item - Kontroverses Beispiel (Juli 2001):\\ - Microsoft Mobile Internet Toolkit EULA\\[\smallskipamount] - Software erstellen\\ - \pause - \textarrow\ Verbot, {\color{darkgreen}"`virale"'} Software - \only<3->{(= Copyleft-Software) }zu erstellen \\ - \pause - \pause - \textarrow\ Verbot, Copyleft-Werkzeuge mit einzusetzen \\ - \textarrow\ Verbot, entwickelte Software gemeinsam mit Copyleft-Software\\ - \strut\phantom{\textarrow} einzusetzen oder zu vertreiben\\[\medskipamount] - \strut\hfill\url{http://web.archive.org/web/20010626201507/}\\ - \strut\hfill\url{http://msdn.microsoft.com/downloads/eula_mit.htm} - \end{itemize} - - % Nicht auf derselben CD: http://msdn.microsoft.com/downloads/eula_mit.htm, 22.7.2001 - -\end{frame} - - \subsectionnonumber{Copyleft} - -\begin{frame}[t,plain] - \showsectionnonumber - \showsubsectionnonumber - - Microsoft: Copyleft-Software ist {\color{darkgreen}"`viral"'}\\[\smallskipamount] - \strut\hfill\url{http://web.archive.org/web/20010626201507/}\\ - \strut\hfill\url{http://msdn.microsoft.com/downloads/eula_mit.htm} - - \bigskip - - \begin{center} - \color{structure}% - \begin{onlyenv}<2->% - \begin{picture}(10,5) - \put(5,5){\makebox(0,0){Code aus fremder Software benutzen}} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<3->% - \begin{picture}(0,0)(10,0) - \put(4.5,4.7){\vector(-1,-1){1}} - \put(3.5,3.4){\makebox(0,0){\strut GPL-Software:}} - \put(3.5,2.95){\makebox(0,0){\strut{\color{darkgreen}bedingt} erlaubt}} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<4->% - \begin{picture}(0,0)(10,0) - \color{darkgreen} - \put(3.0,2.7){\vector(0,-1){0.7}} - \put(3.0,1.8){\makebox(0,0){\strut Gesamtwerk muß}} - \put(3.0,1.35){\makebox(0,0){\strut unter GPL stehen}} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<5->% - \begin{picture}(0,0)(10,0) - \put(5.5,4.7){\vector(1,-1){1}} - \put(6.5,3.4){\makebox(0,0){\strut MS-Software:}} - \put(6.5,2.95){\makebox(0,0){\strut{\color{red}nicht} erlaubt}} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<6->% - \begin{picture}(0,0)(10,0) - \color{black} - \put(5.5,1.2){\makebox(0,0)[l]{\textarrow\ - \begin{minipage}[t]{5cm} - Lizenzen lesen,\\ - sorgfältig auswählen - \end{minipage}}} - \end{picture}% - \end{onlyenv}% - \end{center} - -\end{frame} - - \subsectionnonumber{Fazit} - -\begin{frame}[t,plain] - \showsectionnonumber - - {\large\color{structure}\bf Fazit\par} - \begin{itemize} - \item - Generell: Vor Benutzung Lizenz lesen, durch Anwalt prüfen lassen - \pause - \item - "`gar keine Lizenz"' = alles verboten - \end{itemize} - - \pause - Bearbeitung, Weitergabe und Mitverwendung - \begin{itemize} - \pause - \item - nicht erlaubt oder nicht möglich - \textarrow\ proprietäre Software / Closed Source - \pause - \item - erlaubt \textarrow\ freie Software / Open Source - \begin{itemize} - \pause - \item - bei Mitverwendung Lizenz übernehmen \textarrow\ Copyleft - \pause - \item - Lizenz umwandelbar \textarrow\ freizügig - \end{itemize} - \end{itemize} - - \pause - - \bigskip - - {\large\color{structure}\bf Lizenz für diese Lehrmaterialien\par} - \begin{itemize} - \item - Vortragsfolien und Skripte: Copyleft - \item - Beispiel-Programme: freizügig - \end{itemize} - -\end{frame} - -\end{document} diff --git a/20181220/logo-hochschule-bochum-cvh-text-v2.pdf b/20181220/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 120000 index 4aa99b8f81061aca6dcaf43eed2d9efef40555f8..0000000000000000000000000000000000000000 --- a/20181220/logo-hochschule-bochum-cvh-text-v2.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20181220/logo-hochschule-bochum-cvh-text.pdf b/20181220/logo-hochschule-bochum-cvh-text.pdf deleted file mode 100644 index 649b6a8b8f51ddc370a3626310c172fb3f8b0807..0000000000000000000000000000000000000000 Binary files a/20181220/logo-hochschule-bochum-cvh-text.pdf and /dev/null differ diff --git a/20181220/logo-hochschule-bochum.pdf b/20181220/logo-hochschule-bochum.pdf deleted file mode 120000 index b6b9491e370e499c9276918182cdb82cb311bcd1..0000000000000000000000000000000000000000 --- a/20181220/logo-hochschule-bochum.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20181220/open-xchange.jpg b/20181220/open-xchange.jpg deleted file mode 100644 index d1e06bfb8722813f3e4dfff4c3a5da2016d594a2..0000000000000000000000000000000000000000 Binary files a/20181220/open-xchange.jpg and /dev/null differ diff --git a/20181220/osi-logo.jpg b/20181220/osi-logo.jpg deleted file mode 100644 index d9d29548b455ec1bb9ee4e7a9b9757c1567dc375..0000000000000000000000000000000000000000 Binary files a/20181220/osi-logo.jpg and /dev/null differ diff --git a/20181220/pgslides.sty b/20181220/pgslides.sty deleted file mode 120000 index 5be1416f4216f076aa268901f52a15d775e43f64..0000000000000000000000000000000000000000 --- a/20181220/pgslides.sty +++ /dev/null @@ -1 +0,0 @@ -../common/pgslides.sty \ No newline at end of file diff --git a/20181220/photo-20190117-173529.jpg b/20181220/photo-20190117-173529.jpg deleted file mode 100644 index 3f919d5f7b3a86ff45b43c23576cd577d038a4b5..0000000000000000000000000000000000000000 Binary files a/20181220/photo-20190117-173529.jpg and /dev/null differ diff --git a/20181220/photo-20190117-173700.jpg b/20181220/photo-20190117-173700.jpg deleted file mode 100644 index 0463ac933a24d9f22d5c9bfa331d41a6666b994c..0000000000000000000000000000000000000000 Binary files a/20181220/photo-20190117-173700.jpg and /dev/null differ diff --git a/20181220/putty.png b/20181220/putty.png deleted file mode 100644 index 63693df07f200e3e74119fed16237b438cac651b..0000000000000000000000000000000000000000 Binary files a/20181220/putty.png and /dev/null differ diff --git a/20181220/verschluesselung-20181220.pdf b/20181220/verschluesselung-20181220.pdf deleted file mode 100644 index dab45861cfffe47022913e3fa883f2ba6b06ebcb..0000000000000000000000000000000000000000 Binary files a/20181220/verschluesselung-20181220.pdf and /dev/null differ diff --git a/20181220/verschluesselung-20181220.tex b/20181220/verschluesselung-20181220.tex deleted file mode 100644 index 8c314e2a6c81e50c32a3e0053c76389fa886618c..0000000000000000000000000000000000000000 --- a/20181220/verschluesselung-20181220.tex +++ /dev/null @@ -1,380 +0,0 @@ -% verschluesselung-20181220.pdf - Lecture Slides on Email Encryption -% Copyright (C) 2012, 2013, 2015, 2016, 2017, 2018 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -% README: E-Mail-Verschlüsselung - -\documentclass[10pt,t]{beamer} - -\usepackage{pgslides} -\usepackage{pdftricks} -\usepackage{tikz} - -\begin{psinputs} - \usepackage[utf8]{inputenc} - \usepackage[german]{babel} - \usepackage[T1]{fontenc} - \usepackage{helvet} - \renewcommand*\familydefault{\sfdefault} - \usepackage{pstricks,pst-grad} -\end{psinputs} - -\title{E-Mail-Verschlüsselung} -\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{20.\ Dezember 2018} - -\begin{document} - -\maketitleframe - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/hp.git}}} - \begin{itemize} - \item[1.1] - Warum verschlüsseln? - \item[1.2] - Einfache Verschlüsselungsalgorithmen - \item[1.2] - Symmetrische Verschlüsselungsalgorithmen - \end{itemize} - \item[\textbf{2}] \textbf{Ihr Verschlüsselungs-"`Führerschein"'} - \begin{itemize} - \item[2.1] - Geheime und öffentliche Schlüssel - \item[2.2] - Digitale Signaturen - \item[2.3] - Zertifikate -- Web of Trust - \end{itemize} - \item[\textbf{3}] \textbf{Verschlüsselung in der Praxis} - \item[\textbf{4}] \textbf{Fazit} - \end{itemize} - -\end{frame} - -\section{Einführung} -\subsection{Warum verschlüsseln?} - -\begin{frame} - \showsection - \showsubsection - - \begin{quote} - "`Ich habe nichts zu verbergen."' - \end{quote} - - \begin{itemize} - \item - Vor wem? Wirklich vor jedem?\\ - Wirklich alles über Sie? - \item - Auch nicht vor dem organisierten Verbrechen? - \item - Illegaler Zugriff auf staatlich gesammelte Daten ist möglich! - \bigskip - \arrowitem - Der einzige wirklich sichere Weg,\\ - Datensammlungen gegen Mißbrauch zu schützen,\\ - ist, die Daten gar nicht erst zu sammeln. - \end{itemize} -\end{frame} - -\subsection{Einfache Verschlüsselungsalgorithmen} - -\begin{frame} - \showsection - \showsubsection - - \begin{itemize} - \item - Cäsar-Chiffre: Alphabet rotieren\\ - Beispiel: ROT13 (mit Schlüssel 13)\\ - 25 verschiedene Schlüssel - \textarrow\ Schlüssellänge $\approx 4.64$\,Bit - ($2^{4.64} \approx 25$)\\ - leicht zu knacken - \pause - \item - Zufälliges Rotieren des gesamten Zeichensatzes:\\ - Für jedes Zeichen wird neu "`gewürfelt"'.\\ - \pause - \textarrow\ Schlüssellänge = Länge der Nachricht\\ - unknackbar - (mathematisch beweisbar)\\ - \pause - praktische Probleme: - \begin{itemize} - \item Schlüssel genauso lang wie Nachricht - \textarrow\ schwer zu übertragen - \item Schlüssel (echter Zufall!) schwer zu generieren - \end{itemize} - \pause - \item - Dasselbe mit Pseudozufallsgenerator\\ - Schlüssel = Startwert\\ - \pause - \textarrow\ Schlüssellänge = Bits des Startwerts\\ - meistens knackbar, - nur für spezielle Pseudozufallsgeneratoren sicher\\ - \textarrow\ Verschlüsselungsverfahren - \end{itemize} - \vspace*{-1cm} -\end{frame} - -\subsection{Symmetrische Verschlüsselungsalgorithmen} - -\begin{frame} - \showsection - \showsubsection - - \renewcommand{\arraystretch}{1.2} - \begin{center} - \begin{tabular}{l|c|c} - \textbf{Verfahren} & \textbf{Schlüssellänge} & \textbf{sicher} \\\hline - Cäsar-Chiffre & 4.64 Bit & nein \\ - One-Time Pad (OTP) & Länge der Nachricht & ja \\ - Enigma & 81.2 Bit & nein \\ - Standard-Pseudozufallszahlen & typischerweise 64 Bit & nein \\\hline - DES & 56 Bit & nein \\ - IDEA & 128 Bit & ja \\ - Blowfish & 128 Bit & ja \\ - Twofish & 128 Bit & ja \\ - CAST & 128 Bit & ja \\ - AES / Rijndael & 128 Bit & ja - \end{tabular} - \end{center} -\end{frame} - -\section{Ihr Verschlüsselungs-"`Führerschein"'} -\subsection{Geheime und öffentliche Schlüssel} - -\begin{frame} - \showsection - \showsubsection - - Verschlüsselte Kommunikation: - \begin{itemize} - \item - Versenden der Nachricht über öffentlichen Kanal (z.\,B.\ E-Mail) - \item - Versenden des Schlüssels über geheimen Kanal (z.\,B.\ persönlich) - \end{itemize} - - \medskip - - Probleme: - \begin{itemize} - \item - Kommunikation mit Unbekannten - \item - Kommunikation in Gruppen - \end{itemize} - - \medskip - - Lösung: - \begin{itemize} - \item - Asymmetrische Verschlüsselungsverfahren - \item - Geheime und öffentliche Schlüssel - \end{itemize} -\end{frame} - -\begin{frame} - \showsection - \showsubsection - - Asymmetrische Verschlüsselungsverfahren: - \begin{itemize} - \item - Unterschiedliche Schlüssel zum Ver- und Entschlüsseln - \item - Verschlüsseln: \newterm{öffentlicher Schlüssel} - \item - Entschlüsseln: \newterm{geheimer Schlüssel} - \end{itemize} - - \medskip - - Schlüsselaustausch: - \begin{itemize} - \item - Abhören: kein Problem mehr - \item - Identifikation: persönlicher Kontakt weiterhin erforderlich - \end{itemize} - - \medskip - - Lösung: - \begin{itemize} - \item - Digitale Signaturen - \item - Zertifikate -- Web of Trust - \end{itemize} - - \vspace{0cm plus 1filll minus 1filll} - - \renewcommand{\arraystretch}{1.2} - \begin{flushright} - \begin{tabular}{l|c|c} - \textbf{Verfahren} & \textbf{Schlüssellänge} & \textbf{sicher} \\\hline - RSA & ab 2048 Bit & ja \\ - ElGamal & ab 2048 Bit & ja \\ - ECDSA & 160 Bit & ja - \end{tabular} - \end{flushright} -\end{frame} - -\subsection{Digitale Signaturen} - -\begin{frame} - \showsection - \showsubsection - - Asymmetrische Verschlüsselungsverfahren: - \begin{itemize} - \item - Unterschiedliche Schlüssel zum Ver- und Entschlüsseln - \item - Verschlüsseln: geheimer Schlüssel - \item - Entschlüsseln: öffentlicher Schlüssel - \item - Prüfwert der Nachricht verschlüsseln - \arrowitem - Wer das verschlüsselt hat,\\ - muß im Besitz des geheimen Schlüssels sein.\\ - \textarrow\ \newterm{digitale Signatur} - \end{itemize} - - \vspace{0cm plus 1filll minus 1filll} - - \renewcommand{\arraystretch}{1.2} - \begin{flushright} - \begin{tabular}{l|c|c} - \textbf{Verfahren} & \textbf{Schlüssellänge} & \textbf{sicher} \\\hline - RSA & ab 2048 Bit & ja \\ - ElGamal & ab 2048 Bit & ja \\ - ECDSA & 160 Bit & ja - \end{tabular} - \end{flushright} -\end{frame} - -\subsection{Zertifikate -- Web of Trust} - -\begin{frame} - \showsection - \showsubsection - - \begin{itemize} - \item - Alice will Bob eine verschlüsselte Nachricht schicken. - \item - Alice lädt den öffentlichen Schlüssel von Bob herunter. - \arrowitem - Ist der Schlüssel wirklich der von Bob? - \pause - \medskip - \item - Trent hat den öffentlichen Schlüssel von Bob unterschrieben:\\ - "`Ich bezeuge, daß dieser Schlüssel wirklich Bob gehört."' - \arrowitem - Trent agiert als \newterm{Zertifizierungsstelle}. - \medskip - \item - Alice hat bereits den öffentlichen Schlüssel von Trent\\ - und kann daher die Signatur prüfen. - \item - Alice vertraut Trent. \textarrow\ \newterm{Vertrauen in Person} - \arrowitem - Der öffentliche Schlüssel von Bob ist echt. \textarrow\ \newterm{Vertrauen in Schlüssel} - \end{itemize} -\end{frame} - -\section{Verschlüsselung in der Praxis} - -\begin{frame} - \showsection - - \begin{itemize} - \item - Software: GNU Privacy Guard (GnuPG)\\ - herunterladen und installieren - \begin{itemize} - \item - Plug-In für Mozilla Thunderbird: Enigmail - \item - GnuPG Basics Pack - \item - GPG4Win - \item - \dots - \end{itemize} - Für Smartphones: K-9 Mail - \item - Schlüsselerzeugung - \item - Öffentliche Schlüssel austauschen und prüfen - \pause - \medskip - \item - Schlüssel-Server - \medskip - \item - Ende-zu-Ende-Verschlüsselung - \item - Auf verschlüsselte Nachrichten immer verschlüsselt antworten! - \item - Betreff-Zeilen werden nicht immer mit verschlüsselt. - \item - Die Verbindungsdaten werden nicht mit verschlüsselt. - \end{itemize} -\end{frame} - -\section{Fazit} - -\begin{frame} - \showsection - - \begin{itemize} - \item - E-Mail-Verschlüsselung ist sinnvoll \dots - \item - \dots\ und machbar. - \item - Der richtige Umgang ist entscheidend. - \medskip - \arrowitem - Sicherheitsbewußtsein ist entscheidend. - \end{itemize} -\end{frame} - -\end{document} diff --git a/20190110/721px-Pfs-logo.png b/20190110/721px-Pfs-logo.png deleted file mode 100644 index 1b9d6698223254ba7c4170905b311b162cad2274..0000000000000000000000000000000000000000 Binary files a/20190110/721px-Pfs-logo.png and /dev/null differ diff --git a/20190110/Adobe-Reader.png b/20190110/Adobe-Reader.png deleted file mode 100644 index 30d8d244efbda994a9c6e832705c93c3eba4ef4f..0000000000000000000000000000000000000000 Binary files a/20190110/Adobe-Reader.png and /dev/null differ diff --git a/20190110/Copyright.pdf b/20190110/Copyright.pdf deleted file mode 100644 index 69f4ec0c29489b7c1eb24724c79153cea1087156..0000000000000000000000000000000000000000 Binary files a/20190110/Copyright.pdf and /dev/null differ diff --git a/20190110/Microsoft_Power_Point_2010.png b/20190110/Microsoft_Power_Point_2010.png deleted file mode 100644 index ce91df9e0cb33e1d0e644a5ac25f916c266f4524..0000000000000000000000000000000000000000 Binary files a/20190110/Microsoft_Power_Point_2010.png and /dev/null differ diff --git a/20190110/Zeichen_123.pdf b/20190110/Zeichen_123.pdf deleted file mode 120000 index fdbc897227df059cfda790a16555e6e417682116..0000000000000000000000000000000000000000 --- a/20190110/Zeichen_123.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/Zeichen_123.pdf \ No newline at end of file diff --git a/20190110/a-gnu-head.pdf b/20190110/a-gnu-head.pdf deleted file mode 100644 index 3dcb28fc1147f4b801391c6e5d54a9c4c9311bd6..0000000000000000000000000000000000000000 Binary files a/20190110/a-gnu-head.pdf and /dev/null differ diff --git a/20190110/es-20190110.pdf b/20190110/es-20190110.pdf deleted file mode 100644 index d9e39180c5106296669ca5a6b0c8bbe91f69d347..0000000000000000000000000000000000000000 Binary files a/20190110/es-20190110.pdf and /dev/null differ diff --git a/20190110/es-20190110.tex b/20190110/es-20190110.tex deleted file mode 100644 index 3de523a4fb8395c9615265fa6d20b458fee39eab..0000000000000000000000000000000000000000 --- a/20190110/es-20190110.tex +++ /dev/null @@ -1,759 +0,0 @@ -% es-20190110.pdf - Lecture Slides on Embedded Systems -% Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018, 2019 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -% README: Web-Interfaces, Software-Lizenzen - -\documentclass[10pt,t]{beamer} - -\usepackage{pgslides} -\usepackage{rotating} -\usepackage{tikz} -\usepackage[obeyfamily=false,mathrm=mathsf,textrm=sffamily]{siunitx} - -\usepackage{multirow} - -\newrgbcolor{lightyellow}{0.95 0.85 0.0} -\newrgbcolor{lightorange}{1.0 0.7 0.0} -\newrgbcolor{lightgreen}{0.0 0.8 0.0} - -\newcommand{\underconstruction}{% - \begin{picture}(0,0) - \put(9,0.9){\makebox(0,0)[b]{\includegraphics[width=1.5cm]{Zeichen_123.pdf}}} - \put(9,0.6){\makebox(0,0)[t]{\shortstack{Änderungen\\vorbehalten}}} - \end{picture}} - -\title{Eingebettete Systeme} -\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} -\date{10.\ Januar 2019} - -\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} - -\begin{document} - -\maketitleframe - -\nosectionnonumber{\inserttitle} - -\begin{frame} - - \shownosectionnonumber - - \begin{itemize} - \item[\textbf{1}] \textbf{Einführung} - \hfill\makebox(0,0)[br]{\raisebox{2.25ex}{\url{https://gitlab.cvh-server.de/pgerwinski/es.git}}} - \item[\textbf{2}] \textbf{Einführung in Unix} - \item[\textbf{3}] \textbf{TCP/IP in der Praxis} - \item[\textbf{4}] \textbf{Bus-Systeme} - \item[\textbf{6}] \textbf{Echtzeit} - \item[\textbf{7}] \textbf{Web-Interfaces} - \item[\textbf{8}] \textbf{Software-Lizenzen} - \vspace*{-\smallskipamount} - \item[\textbf{\dots}] - \end{itemize} - - \vspace*{-1cm plus 1filll} - - \underconstruction - -\end{frame} - -\setcounter{section}{6} - -\section{Web-Interfaces} -\subsection{HTTP, HTML und CGI} - -\begin{frame}[fragile] - \showsection - \showsubsection - - \begin{lstlisting}[style=terminal] - $ ¡nc -C localhost 80¿ - GET / HTTP/1.1 - Host: localhost - - HTTP/1.1 200 OK - Date: Wed, 22 Nov 2017 19:58:55 GMT - Server: Apache/2.4.25 (Debian) - [...] - Content-Type: text/html - - <html> - <body> - <h1 align="center">Vertiefung<br>Vertiefung Systemtechnik – Eingebettete Systeme</h1> - <p align="center">23. November 2017</p> - <p align="center">Prof. Dr. Peter Gerwinski</p> - </body> - </html> - \end{lstlisting} - \vspace*{-1cm} -\end{frame} - -\begin{frame}[fragile] - \showsection - \showsubsection - - \begin{itemize} - \item - \newterm{Hypertext Transport Protocol (HTTP)}: Netzwerk-Protokoll\\ - HTML-Inhalt + zusätzliche Daten - \pause - \item - \newterm{Hypertext Markup Language (HTML)}: Markup-Sprache\\ - Inhalte + Formulare - \begin{onlyenv}<2> - \bigskip - \begin{lstlisting}[language=html,gobble=10] - <form action="/cgi-bin/welcome.cgi" method="get"> - Your name: <input type="text" name="name"><br> - <input type="submit"> - </form> - \end{lstlisting} - \vspace*{-2cm} - \end{onlyenv} - \pause - \item - \newterm{Common Gateway Interface (CGI)}: Schnittstelle zu Programmen\\ - Liste von Variablen mit Werten - \par\smallskip - \begin{itemize} - \item - \newterm{GET-Methode}: Umgebungsvariable \lstinline{QUERY_STRING} - \smallskip - \item - \newterm{POST-Methode}: Standardeingabe - \end{itemize} - \end{itemize} - \bigskip - \lstinline[style=terminal]{http://localhost/cgi-bin/welcome.cgi?name=Peter&answer=42} -\end{frame} - -\subsection{Externe CGI-Skripte, GET und POST} - -\begin{frame}[fragile] - \showsection - \showsubsection - - \begin{itemize}\itemsep\medskipamount - \item - HTML-Formular verweist auf CGI-Programm ("`CGI-Skript"') - \par - \lstinline[language=html]{<form action="/cgi-bin/welcome.cgi"} - \lstinline[language=html]{method="get">} - \item - Web-Server ruft CGI-Programm auf - \item - CGI-Programm wertet Variablenliste aus - \begin{itemize} - \item - GET-Methode: Umgebungsvariable \lstinline{QUERY_STRING} - \smallskip - \item - POST-Methode: Standardeingabe - \end{itemize} - \item - CGI-Programm gibt HTTP-Header und Inhalt aus - \par\smallskip - \begin{lstlisting}[language=bash] - #!/bin/bash - echo Content-Type: text/plain - echo - echo "Hello, world!" - \end{lstlisting} - \item - speziell: Inhalt ist \lstinline{text/html} - \end{itemize} -\end{frame} - -\subsection{Skript im Server: PHP} - -\begin{frame}[fragile] - \showsection - \showsubsection - - \begin{itemize} - \item - Interpreter in Web-Server integriert - \end{itemize} - - \bigskip - - \begin{lstlisting}[language=php] - <html> - <body> - Hello, <?php echo $_POST["name"]; ?>! - </body> - </html> - \end{lstlisting} -\end{frame} - -\subsection{Server im Skript: Twisted} - -\begin{frame}[fragile] - \showsection - \showsubsection - - \begin{itemize} - \item - individuell geschriebener Web-Server - \item - "`Baukasten"' in JavaScript: \file{node.js} - \item - "`Baukasten"' in Python: \file{Twisted} - \end{itemize} - - \bigskip - - \begin{lstlisting}[language=python] - def render_GET(self, request): - return '<html><body><form method="POST">Your name: ' \ - + '<input name="name" type="text" /><br/>' \ - + '<input type="submit"></form></body></html>' - - def render_POST(self, request): - return '<html><body>Hello, %s!</body></html>' \ - % (cgi.escape(request.args["name"][0]),) - \end{lstlisting} -\end{frame} - -\section{Software-Lizenzen} -\subsectionnonumber{Vorab: Dies ist keine Rechtsdienstleistung!} - -\begin{frame} - \showsection - \pause - \showsubsectionnonumber - - \textbf{\S\,2 RDG: Begriff der Rechtsdienstleistung} - - \smallskip - - (1) Rechtsdienstleistung ist jede Tätigkeit in - {\only<3->{\color{red}}konkreten} fremden Angelegenheiten, - sobald sie eine rechtliche Prüfung des - {\only<3->{\color{red}}Einzelfalls} erfordert. - - \medskip - - \strut\hfill Quelle: \url{http://www.gesetze-im-internet.de/rdg/} - - \pause - \pause - - \bigskip - - Konkreter Fall: - \begin{itemize} - \item - Konkretes Programm unter Lizenz A - \item - Konkrete Bibliothek unter Lizenz B - \item - Beratung: Paßt das zusammen? - \arrowitem - Rechtsdienstleistung - \end{itemize} -\end{frame} - -\subsectionnonumber{Lizenz-Beratung unter Kollegen?} - -\begin{frame} - \showsection - \showsubsectionnonumber - - \textbf{\S\,6 RDG: Unentgeltliche Rechtsdienstleistungen} - - \smallskip - - (1) Erlaubt sind Rechtsdienstleistungen, die nicht im Zusammenhang mit einer entgeltlichen - Tätigkeit stehen (unentgeltliche Rechtsdienstleistungen). - - \smallskip - - (2) Wer unentgeltliche Rechtsdienstleistungen außerhalb familiärer, nachbarschaftlicher oder - ähnlich enger persönlicher Beziehungen erbringt, muss sicherstellen, dass die Rechtsdienstleistung - durch eine Person, der die entgeltliche Erbringung dieser Rechtsdienstleistung erlaubt ist, durch - eine Person mit Befähigung zum Richteramt oder unter Anleitung einer solchen Person erfolgt. - [\,\dots] - - \medskip - - \strut\hfill Quelle: \url{http://www.gesetze-im-internet.de/rdg/} - - \pause - - \bigskip - - \begin{itemize} - \arrowitem - Nur allgemein beraten!\\ - Konkrete Fälle an Anwalt verweisen! - \end{itemize} - -\end{frame} - -\subsection{Überblick} -\newcommand{\lcr}{\includegraphics[width=0.5cm]{Copyright.pdf}} -\newcommand{\lcl}{\includegraphics[width=0.5cm]{Copyleft.pdf}} -\newcommand{\lcc}{\includegraphics[width=0.5cm]{creative-commons.png}} -\newcommand{\lpd}{\includegraphics[width=0.5cm]{PD-icon.pdf}} - -\begin{frame} - \showsection - \showsubsection - - \begin{itemize} - \item - Grundlage: Urheberrecht ($\approx$ Copyright) \hfill \lcr\\ - "`Wer Software schreibt, entscheidet, was damit geschehen darf."' - \pause - \medskip - \item - anderen etwas erlauben: Lizenz - \pause - \medskip - \item - "`gar keine Lizenz"' = alles verboten - \end{itemize} -\end{frame} - -\begin{frame} - \showsection - \showsubsection - - \begin{center} - \begin{picture}(12,5) - \put(5,5){\makebox(0,0){Software-Lizenz}} - \put(4.5,4.7){\vector(-1,-1){1}} - \put(5.5,4.7){\vector(1,-1){1}} - \put(3,3.4){\makebox(0,0){proprietär}} - \put(7,3.4){\makebox(0,0){frei / Open Source}} - \put(6.5,3.1){\vector(-1,-1){1.5}} - \put(7.5,3.1){\vector(1,-1){1}} - \put(4.5,1.3){\makebox(0,0){freizügig}} - \put(9,1.8){\makebox(0,0){Copyleft}} - \end{picture}% - \begin{onlyenv}<2->% - \begin{picture}(0,0)(12,0) - \color{darkgreen} - \put(2.5,3.1){\vector(-1,-1){0.5}} - \put(3.5,3.1){\vector(1,-1){0.5}} - \put(2.0,2.3){\makebox(0,0){kommerziell}} - \put(4.0,2.3){\makebox(0,0){gratis}} - \put(4.0,1.0){\vector(-1,-1){0.5}} - \put(5.0,1.0){\vector(1,-1){0.5}} - \put(3.5,0.2){\makebox(0,0){kommerziell}} - \put(5.5,0.2){\makebox(0,0){gratis}} - \put(8.5,1.5){\vector(-1,-1){0.5}} - \put(9.5,1.5){\vector(1,-1){0.5}} - \put(8.0,0.7){\makebox(0,0){kommerziell}} - \put(10.0,0.7){\makebox(0,0){gratis}} - \end{picture}% - \end{onlyenv}% - \end{center} - -\end{frame} - -\subsection{Lizenzmodelle} - -\begin{frame} - \showsection - \showsubsection - - \begin{itemize} - \item - Freie Software darf man - \hfill\begin{picture}(0,0) - \put(-1.8,-0.8){\includegraphics[width=2cm]{a-gnu-head.pdf}} - \end{picture} - \begin{itemize} - \item[0.] - benutzen, - \item[1.] - studieren und anpassen, - \item[2.] - weitergeben, - \item[3.] - weiterentwickeln und veröffentlichen. - \end{itemize} - \strut\hfill - 4 Grundfreiheiten -- - \url{http://www.gnu.org/philosophy/free-sw}\\ - \pause - \begin{picture}(0,0) - \color{red} - \put(6.95,1.85){\vector(-1,0){1.5}} - \put(7.00,1.75){\vector(-1,-1){0.5}} - \put(7.05,1.85){\makebox(0,0)[l]{Quelltext erforderlich!}} - \end{picture}% - \pause - \medskip - \item - Open Source: i.\,w.\ dasselbe in 10 Kriterien - \hfill\begin{picture}(0,0) - \put(-1.2,-0.5){\includegraphics[width=1.1cm]{osi-logo.jpg}} - \end{picture}\\ - Begründung: technisch statt philosophisch\\[\smallskipamount] - \strut\hfill - Definition: - \url{http://www.opensource.org/docs/osd} - \end{itemize} - -\end{frame} - -\begin{frame} - \showsection - \showsubsection - - \begin{itemize} - \item - Proprietäre Software / Closed Source\\ - Gegenteil von freier Software / Open Source - \medskip - \begin{itemize} - \item - Benutzen, Weitergeben und/oder Veröffentlichen\\ - erfordert individuelle Erlaubnis des Rechteinhabers - \medskip - \item - Studieren, Anpassen und/oder Weiterentwickeln\\ - nur dem Rechteinhaber erlaubt - \pause - {\color{red}und/oder möglich\\ - (Quelltext erforderlich!)} - \end{itemize} - \end{itemize} - -\end{frame} - -\begin{frame} - \showsection - \showsubsection - - \begin{itemize} - \item - Freie Software - \smallskip - \begin{itemize} - \item - Copyleft\only<2->{:}\\[\smallskipamount] - \begin{visibleenv}<2-> - Weitergabe nur unter gleichen Bedingungen erlaubt\\ - \textarrow\ Umwandlung in proprietäre Software nicht erlaubt - \end{visibleenv} - \medskip - \item - freizügig\only<3->{:}\\[\smallskipamount] - \begin{visibleenv}<3-> - Weitergabe auch unter anderen Bedingungen erlaubt\\ - \textarrow\ Umwandlung in \only<4->{Copyleft- oder }proprietäre Software erlaubt - \end{visibleenv} - \begin{onlyenv}<5-> - \medskip - \item - Teil-Copyleft:\\[\smallskipamount] - Linken mit proprietärer Software erlaubt - \end{onlyenv} - \end{itemize} - \end{itemize} - -\end{frame} - -\subsection{Beispiel-Programme} - -\begin{frame} - \showsection - \showsubsection - - \begin{center} - \renewcommand{\arraystretch}{2.5} - \begin{tabular}{|c||c|c|c|}\hline - & \multirow{2}{*}{proprietär} & \multicolumn{2}{c|}{frei}\\\cline{3-4} - & & freizügig & Copyleft \\\hline\hline - \color{darkgreen}kommerziell - & \color{structure}\visible<2->{\shortstack{\\\includegraphics[width=0.5cm]{Microsoft_Power_Point_2010.png}\\\small Microsoft PowerPoint}} - & \color{structure}\visible<6->{\shortstack{\\\includegraphics[width=1.0cm]{721px-Pfs-logo.png}\\\small pfSense}} - & \color{structure}\visible<5->{\shortstack{\\\includegraphics[width=0.8cm]{open-xchange.jpg}\\\small Open-Xchange}} \\\hline - \color{darkgreen}gratis - & \color{structure}\visible<4->{\shortstack{\\\includegraphics[width=0.8cm]{Adobe-Reader.png}\\\small Adobe Reader}} - & \color{structure}\visible<6->{\shortstack{\\\includegraphics[width=0.5cm]{putty.png}\\\small PuTTY}} - & \color{structure}\visible<3->{\shortstack{\\\includegraphics[width=0.5cm]{libreoffice-impress.pdf}\\\small LibreOffice Impress}} \\\hline - \end{tabular} - \end{center} - \begin{onlyenv}<7->% - \begin{picture}(0,0)(0,-0.5) - \color{red} - \put(7.38,1.38){$\updownarrow$} - \put(9.8,1.38){$\updownarrow$} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<8->% - \begin{picture}(0,0)(0,-0.7) - \color{red} - \put(6.3,2.7){$\longleftarrow$} - \put(8.05,2.7){$\longrightarrow$} - \end{picture}% - \end{onlyenv}% - -\end{frame} - -\subsection{Beispiel-Lizenzen} - -\begin{frame} - \showsection - \showsubsection - - Generell: Gewährleistungsausschluß - - \bigskip - - \pause - Freie Software / Open Source - \begin{itemize} - \item - strenges Copyleft: - GNU GPL, GNU FDL, CC BY-SA - \pause - \item - Teil-Copyleft: - GNU LGPL, Mozilla-Lizenz, Microsoft Public License - \pause - \item - freizügig: - Modifizierte BSD-Lizenz, Apache-Lizenz, CC BY,\\ - CC0, Public Domain - \end{itemize} - \pause - \strut\hfill\url{http://www.gnu.org/licenses/license-list} - -\end{frame} - -\begin{frame} - \showsection - \showsubsection - - Generell: Gewährleistungsausschluß - - \bigskip - - Proprietäre Software - - \begin{itemize} - \item - Lizenz i.\,d.\,R.\ für jedes Programm anders - \pause - \medskip - \item - "`Normales"' Beispiel (Januar 2012):\\ - Adobe Reader EULA\\[\smallskipamount] - Verwenden \only<3->{nur auf PCs }erlaubt\pause\pause,\\ - Studieren und Weitergeben nicht erlaubt\pause,\\ - Screenshots nicht erlaubt\\[\smallskipamount] - \pause - Der Software ist die Kommunikation mit Adobe\\ - und mit Werbeanbietern erlaubt.\\[\medskipamount] - \pause - \strut\hfill\url{http://www.adobe.com/products/eulas/reader/x/eula_de_de.html} - \medskip - \end{itemize} - -\end{frame} - -\begin{frame} - \showsection - \showsubsection - - Generell: Gewährleistungsausschluß - - \bigskip - - Proprietäre Software - - \begin{itemize} - \item - Kontroverses Beispiel (Januar 2012):\\ - iBooks Author EULA\\[\smallskipamount] - Layout für elektronische Bücher erstellen\\ - \pause - \textarrow\ Buch darf nur über den iBooks Store verkauft werden\\[\medskipamount] - \strut\hfill\url{http://venomousporridge.com/post/16126436616/}\\ - \strut\hfill\url{ibooks-author-eula-audacity} - \end{itemize} - -\end{frame} - -\begin{frame} - \showsection - \showsubsection - - Generell: Gewährleistungsausschluß - - \bigskip - - Proprietäre Software - - \begin{itemize} - \item - Kontroverses Beispiel (September 2001):\\ - Microsoft FrontPage 2002 EULA\\[\smallskipamount] - Webseiten erstellen\\ - \pause - \textarrow\ Webseiten dürfen Microsoft nicht "`herabsetzen"'\\[\medskipamount] - \strut\hfill\url{http://www.heise.de/newsticker/data/jes-21.09.01-001/} - \end{itemize} - -\end{frame} - -\begin{frame} - \showsection - \showsubsection - - Generell: Gewährleistungsausschluß - - \bigskip - - Proprietäre Software - - \begin{itemize} - \item - Kontroverses Beispiel (Juli 2001):\\ - Microsoft Mobile Internet Toolkit EULA\\[\smallskipamount] - Software erstellen\\ - \pause - \textarrow\ Verbot, {\color{darkgreen}"`virale"'} Software - \only<3->{(= Copyleft-Software) }zu erstellen \\ - \pause - \pause - \textarrow\ Verbot, Copyleft-Werkzeuge mit einzusetzen \\ - \textarrow\ Verbot, entwickelte Software gemeinsam mit Copyleft-Software\\ - \strut\phantom{\textarrow} einzusetzen oder zu vertreiben\\[\medskipamount] - \strut\hfill\url{http://web.archive.org/web/20010626201507/}\\ - \strut\hfill\url{http://msdn.microsoft.com/downloads/eula_mit.htm} - \end{itemize} - - % Nicht auf derselben CD: http://msdn.microsoft.com/downloads/eula_mit.htm, 22.7.2001 - -\end{frame} - -\subsection{Copyleft} - -\begin{frame} - \showsection - \showsubsection - - Microsoft: Copyleft-Software ist {\color{darkgreen}"`viral"'}\\[\smallskipamount] - \strut\hfill\url{http://web.archive.org/web/20010626201507/}\\ - \strut\hfill\url{http://msdn.microsoft.com/downloads/eula_mit.htm} - - \bigskip - - \begin{center} - \color{structure}% - \begin{onlyenv}<2->% - \begin{picture}(10,5) - \put(5,5){\makebox(0,0){Code aus fremder Software benutzen}} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<3->% - \begin{picture}(0,0)(10,0) - \put(4.5,4.7){\vector(-1,-1){1}} - \put(3.5,3.4){\makebox(0,0){\strut GPL-Software:}} - \put(3.5,2.95){\makebox(0,0){\strut{\color{darkgreen}bedingt} erlaubt}} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<4->% - \begin{picture}(0,0)(10,0) - \color{darkgreen} - \put(3.0,2.7){\vector(0,-1){0.7}} - \put(3.0,1.8){\makebox(0,0){\strut Gesamtwerk muß}} - \put(3.0,1.35){\makebox(0,0){\strut unter GPL stehen}} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<5->% - \begin{picture}(0,0)(10,0) - \put(5.5,4.7){\vector(1,-1){1}} - \put(6.5,3.4){\makebox(0,0){\strut MS-Software:}} - \put(6.5,2.95){\makebox(0,0){\strut{\color{red}nicht} erlaubt}} - \end{picture}% - \end{onlyenv}% - \begin{onlyenv}<6->% - \begin{picture}(0,0)(10,0) - \color{black} - \put(5.5,1.2){\makebox(0,0)[l]{\textarrow\ - \begin{minipage}[t]{5cm} - Lizenzen lesen,\\ - sorgfältig auswählen - \end{minipage}}} - \end{picture}% - \end{onlyenv}% - \end{center} - \vspace*{-1cm} - -\end{frame} - -\subsection{Fazit} - -\begin{frame} - \showsection - \showsubsection - \begin{itemize} - \item - Generell: Vor Benutzung Lizenz lesen, durch Anwalt prüfen lassen - \pause - \item - "`gar keine Lizenz"' = alles verboten - \end{itemize} - - \pause - Bearbeitung, Weitergabe und Mitverwendung - \begin{itemize} - \pause - \item - nicht erlaubt oder nicht möglich - \textarrow\ proprietäre Software / Closed Source - \pause - \item - erlaubt \textarrow\ freie Software / Open Source - \begin{itemize} - \pause - \item - bei Mitverwendung Lizenz übernehmen \textarrow\ Copyleft - \pause - \item - Lizenz umwandelbar \textarrow\ freizügig - \end{itemize} - \end{itemize} - - \pause - - \bigskip - - {\large\color{structure}\bf Lizenz für diese Lehrmaterialien\par} - \begin{itemize} - \item - Vortragsfolien und Skripte: Copyleft (CC-BY-SA 3.0 oder GNU GPL v3+) - \item - Beispiel-Programme: freizügig (modifizierte BSD-Lizenz) - \end{itemize} - -\end{frame} - -\end{document} diff --git a/20190110/libreoffice-impress.pdf b/20190110/libreoffice-impress.pdf deleted file mode 100644 index df752f1d6d50d46ed2f1ed9964190ba4dad2fa75..0000000000000000000000000000000000000000 Binary files a/20190110/libreoffice-impress.pdf and /dev/null differ diff --git a/20190110/logo-hochschule-bochum-cvh-text-v2.pdf b/20190110/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 120000 index 4aa99b8f81061aca6dcaf43eed2d9efef40555f8..0000000000000000000000000000000000000000 --- a/20190110/logo-hochschule-bochum-cvh-text-v2.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20190110/logo-hochschule-bochum-cvh-text.pdf b/20190110/logo-hochschule-bochum-cvh-text.pdf deleted file mode 100644 index 649b6a8b8f51ddc370a3626310c172fb3f8b0807..0000000000000000000000000000000000000000 Binary files a/20190110/logo-hochschule-bochum-cvh-text.pdf and /dev/null differ diff --git a/20190110/logo-hochschule-bochum.pdf b/20190110/logo-hochschule-bochum.pdf deleted file mode 120000 index b6b9491e370e499c9276918182cdb82cb311bcd1..0000000000000000000000000000000000000000 --- a/20190110/logo-hochschule-bochum.pdf +++ /dev/null @@ -1 +0,0 @@ -../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20190110/open-xchange.jpg b/20190110/open-xchange.jpg deleted file mode 100644 index d1e06bfb8722813f3e4dfff4c3a5da2016d594a2..0000000000000000000000000000000000000000 Binary files a/20190110/open-xchange.jpg and /dev/null differ diff --git a/20190110/osi-logo.jpg b/20190110/osi-logo.jpg deleted file mode 100644 index d9d29548b455ec1bb9ee4e7a9b9757c1567dc375..0000000000000000000000000000000000000000 Binary files a/20190110/osi-logo.jpg and /dev/null differ diff --git a/20190110/pgslides.sty b/20190110/pgslides.sty deleted file mode 120000 index 5be1416f4216f076aa268901f52a15d775e43f64..0000000000000000000000000000000000000000 --- a/20190110/pgslides.sty +++ /dev/null @@ -1 +0,0 @@ -../common/pgslides.sty \ No newline at end of file diff --git a/20190110/putty.png b/20190110/putty.png deleted file mode 100644 index 63693df07f200e3e74119fed16237b438cac651b..0000000000000000000000000000000000000000 Binary files a/20190110/putty.png and /dev/null differ diff --git a/20181129/make-zombies.c b/20190417/make-zombies-1.c similarity index 95% rename from 20181129/make-zombies.c rename to 20190417/make-zombies-1.c index 3e1418aa5567a38d274cbb2ba1588d7e765823d4..3626861d638c8ad6dc8c5c0831b9f5190e20a4dc 100644 --- a/20181129/make-zombies.c +++ b/20190417/make-zombies-1.c @@ -1,5 +1,5 @@ -#include <sys/wait.h> #include <stdio.h> +#include <sys/wait.h> #include <stdlib.h> #include <unistd.h> @@ -18,12 +18,13 @@ int main(void){ // Der erste Kindprozess wartet 10 Sekunden und jeder // weitere Kindprozess wartet 1 Sekunde k�rzer als der // vorige. - printf ("BRAINS! "); + printf ("%d BRAINS! ", i); sleep(10-i); exit(0); // Kindprozess erfolgreich beenden } } -/* + +// // hier kommt nur der Vaterprozess vorbei for (i = 0; i < 10; ++i){ // Der Vaterprozess wartet nun, bis der Reihe nach jeder @@ -33,7 +34,8 @@ int main(void){ // blockiert das erste Kind eine Bereinigung der Prozesstabelle waitpid(pids[i], NULL, 0); } -*/ - while (1); +// + +// while (1); return 0; // Vaterprozess erfolgreich beenden } diff --git a/20181129/no-zombies.c b/20190417/make-zombies-2.c similarity index 60% rename from 20181129/no-zombies.c rename to 20190417/make-zombies-2.c index c7b04d78410a44b1d727cc5a966fb8580b9a3efa..d43b17e278e3df5c2373600753d6ac53d89f7af7 100644 --- a/20181129/no-zombies.c +++ b/20190417/make-zombies-2.c @@ -1,5 +1,5 @@ -#include <sys/wait.h> #include <stdio.h> +#include <sys/wait.h> #include <stdlib.h> #include <unistd.h> @@ -18,22 +18,24 @@ int main(void){ // Der erste Kindprozess wartet 10 Sekunden und jeder // weitere Kindprozess wartet 1 Sekunde k�rzer als der // vorige. - printf ("BRAINS! "); - sleep(i); + printf ("%d BRAINS! ", i); + sleep(10-i); exit(0); // Kindprozess erfolgreich beenden } } - // hier kommt nur der Vaterprozess vorbei - for (i = 0; i < 10; ++i){ - // Der Vaterprozess wartet nun, bis der Reihe nach jeder - // seiner 10 Kindprozesse beendet ist. Leider wird auf das - // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl - // die anderen Kinder l�ngst erfolgreich beendet wurden, - // blockiert das erste Kind eine Bereinigung der Prozesstabelle - waitpid(pids[i], NULL, 0); - } +// +// // hier kommt nur der Vaterprozess vorbei +// for (i = 0; i < 10; ++i){ +// // Der Vaterprozess wartet nun, bis der Reihe nach jeder +// // seiner 10 Kindprozesse beendet ist. Leider wird auf das +// // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl +// // die anderen Kinder l�ngst erfolgreich beendet wurden, +// // blockiert das erste Kind eine Bereinigung der Prozesstabelle +// waitpid(pids[i], NULL, 0); +// } +// - while (1); +// while (1); return 0; // Vaterprozess erfolgreich beenden } diff --git a/20190417/make-zombies-3.c b/20190417/make-zombies-3.c new file mode 100644 index 0000000000000000000000000000000000000000..82d671c075e1db7879e8b040f12a8543c0c7436a --- /dev/null +++ b/20190417/make-zombies-3.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <sys/wait.h> +#include <stdlib.h> +#include <unistd.h> + +int main(void){ + pid_t pids[10]; // Platz f�r 10 Prozess-IDs (die Kindprozesse) + int i; // Laufvariable + + for (i = 0; i < 10; ++i) { + // Der Vaterprozess erzeugt nun einen Kindprozess, + // welcher unabh�ngig vom Vaterprozess mit der + // erneuten Ausf�hrung des Programms beginnt. + // Ein Kindprozess erzeugt keinen Fork von sich selbst. + pids[i] = fork(); + if (pids[i] == 0) { + // dann befinden wir uns in einem der 10 Kindprozesse + // Der erste Kindprozess wartet 10 Sekunden und jeder + // weitere Kindprozess wartet 1 Sekunde k�rzer als der + // vorige. + printf ("%d BRAINS! ", i); + sleep(10-i); + exit(0); // Kindprozess erfolgreich beenden + } + } + +// +// // hier kommt nur der Vaterprozess vorbei +// for (i = 0; i < 10; ++i){ +// // Der Vaterprozess wartet nun, bis der Reihe nach jeder +// // seiner 10 Kindprozesse beendet ist. Leider wird auf das +// // Kind mit der l�ngsten Wartezeit zuerst gewartet. Obwohl +// // die anderen Kinder l�ngst erfolgreich beendet wurden, +// // blockiert das erste Kind eine Bereinigung der Prozesstabelle +// waitpid(pids[i], NULL, 0); +// } +// + + while (1); +// return 0; // Vaterprozess erfolgreich beenden +} diff --git a/20190821/gedicht.txt b/20190821/gedicht.txt new file mode 100644 index 0000000000000000000000000000000000000000..7acacd5a0886bc962816aee843046db872c84342 --- /dev/null +++ b/20190821/gedicht.txt @@ -0,0 +1,4 @@ +Ich ging im Walde +So für mich hin, +Und nichts zu suchen, +Das war mein Sinn. diff --git a/20181011/hello.c b/20190821/hello.c similarity index 100% rename from 20181011/hello.c rename to 20190821/hello.c diff --git a/20190821/math-exercise b/20190821/math-exercise new file mode 100755 index 0000000000000000000000000000000000000000..09a35580129c944de724b2f8a1ae5c1f8a8c2a30 Binary files /dev/null and b/20190821/math-exercise differ diff --git a/20181108/hello.c b/20190821/math-exercise.c similarity index 63% rename from 20181108/hello.c rename to 20190821/math-exercise.c index b19d80e9bd0bd7c5ed8f54b20c6a50d9166f03ac..521b40e0d8fb86bbe35ed5c81df2273a01c77e49 100644 --- a/20181108/hello.c +++ b/20190821/math-exercise.c @@ -2,6 +2,6 @@ int main (void) { - printf ("Hello, world!\n"); + printf ("2 + 2\n"); return 0; } diff --git a/20190821/math-exercise.result b/20190821/math-exercise.result new file mode 100644 index 0000000000000000000000000000000000000000..b8626c4cff2849624fb67f87cd0ad72b163671ad --- /dev/null +++ b/20190821/math-exercise.result @@ -0,0 +1 @@ +4 diff --git a/20181025/test.bc b/20190821/math-exercise.txt similarity index 100% rename from 20181025/test.bc rename to 20190821/math-exercise.txt diff --git a/20181018/calculate.bc b/20190821/mathematics-1 similarity index 66% rename from 20181018/calculate.bc rename to 20190821/mathematics-1 index 437242b4054c897e49b9b399f439c648721e4d00..8ff0784a1d3a7bb63d3a7513218cfbbdf0bda6c8 100755 --- a/20181018/calculate.bc +++ b/20190821/mathematics-1 @@ -1,4 +1,2 @@ #!/usr/bin/bc 2 + 2 -2^64 -quit diff --git a/20181018/listfiles b/20190821/mathematics-2.sh similarity index 52% rename from 20181018/listfiles rename to 20190821/mathematics-2.sh index 8f1e1031454c615b584526052a5bd3cd84ef9ac9..00f1f8bc88985b843c6c3333d0c45b7584a06df6 100755 --- a/20181018/listfiles +++ b/20190821/mathematics-2.sh @@ -1,2 +1,2 @@ #!/bin/bash -ls -l +echo 2 + 2 diff --git a/20190821/mathematics-3.sh b/20190821/mathematics-3.sh new file mode 100755 index 0000000000000000000000000000000000000000..0f0675f214795aba31e97016e8271db4df2ec9aa --- /dev/null +++ b/20190821/mathematics-3.sh @@ -0,0 +1,2 @@ +#!/bin/bash +echo 2 + 2 | bc diff --git a/20190821/mathematics-4.sh b/20190821/mathematics-4.sh new file mode 100755 index 0000000000000000000000000000000000000000..0daada8cc7ca6756439850cb8870af85858214c9 --- /dev/null +++ b/20190821/mathematics-4.sh @@ -0,0 +1,2 @@ +#!/bin/bash +2 + 2 | bc diff --git a/20190821/mathematics-5.sh b/20190821/mathematics-5.sh new file mode 100755 index 0000000000000000000000000000000000000000..6691b94750716f9fa200a76c1550fe09b6938569 --- /dev/null +++ b/20190821/mathematics-5.sh @@ -0,0 +1,2 @@ +#!/bin/bash +./hello | bc diff --git a/20190821/permissions-1.log b/20190821/permissions-1.log new file mode 100644 index 0000000000000000000000000000000000000000..01f33eedb97b47fffbb755047e8584c2701a9a87 --- /dev/null +++ b/20190821/permissions-1.log @@ -0,0 +1,26 @@ +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 4 +-rw-r--r-- 1 peter peter 14 Aug 21 10:34 test.txt +cassini/home/peter/bo/2019ss/es/20190821> chgrp +audio cdrom floppy netdev plugdev staff +bluetooth dialout fuse peter scanner video +cassini/home/peter/bo/2019ss/es/20190821> chgrp staff test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 4 +-rw-r--r-- 1 peter staff 14 Aug 21 10:34 test.txt +cassini/home/peter/bo/2019ss/es/20190821> chmod g+w test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 4 +-rw-rw-r-- 1 peter staff 14 Aug 21 10:34 test.txt +cassini/home/peter/bo/2019ss/es/20190821> cat test.txt +Hallo, Welt! +cassini/home/peter/bo/2019ss/es/20190821> chmod ug-r test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 4 +--w--w-r-- 1 peter staff 13 Aug 21 10:38 test.txt +cassini/home/peter/bo/2019ss/es/20190821> chmod u+rw test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 4 +-rw--w-r-- 1 peter staff 13 Aug 21 10:38 test.txt +cassini/home/peter/bo/2019ss/es/20190821> cat test.txt +Hallo, Welt! diff --git a/20190821/permissions-2.log b/20190821/permissions-2.log new file mode 100644 index 0000000000000000000000000000000000000000..3f980d4e88ce3aba6542fb58555ae8708feec445 --- /dev/null +++ b/20190821/permissions-2.log @@ -0,0 +1,14 @@ +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 8 +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw--w-r-- 1 peter staff 13 Aug 21 10:42 test.txt +cassini/home/peter/bo/2019ss/es/20190821> chmod 660 test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 8 +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-rw---- 1 peter staff 13 Aug 21 10:42 test.txt +cassini/home/peter/bo/2019ss/es/20190821> chmod 640 test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 8 +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r----- 1 peter staff 13 Aug 21 10:42 test.txt diff --git a/20190821/permissions-3.log b/20190821/permissions-3.log new file mode 100644 index 0000000000000000000000000000000000000000..4019bf44325525c161ca9c7655e0a21ee70b2217 --- /dev/null +++ b/20190821/permissions-3.log @@ -0,0 +1,26 @@ +cassini/home/peter/bo/2019ss/es/20190821> cat test.txt +Hallo, Welt! +cassini/home/peter/bo/2019ss/es/20190821> chmod +w test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 12 +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r--r-- 1 peter peter 641 Aug 21 10:47 permissions-2.log +-rw-r----- 1 peter staff 13 Aug 21 10:42 test.txt +cassini/home/peter/bo/2019ss/es/20190821> chmod +x test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 12 +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r--r-- 1 peter peter 641 Aug 21 10:47 permissions-2.log +-rwxr-x--x 1 peter staff 13 Aug 21 10:42 test.txt +cassini/home/peter/bo/2019ss/es/20190821> chmod 775 test.txt +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 12 +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r--r-- 1 peter peter 641 Aug 21 10:47 permissions-2.log +-rwxrwxr-x 1 peter staff 13 Aug 21 10:42 test.txt +cassini/home/peter/bo/2019ss/es/20190821> cat test.txt +Hallo, Welt! +cassini/home/peter/bo/2019ss/es/20190821> test.txt +bash: test.txt: Kommando nicht gefunden. +cassini/home/peter/bo/2019ss/es/20190821> ./test.txt +./test.txt: Zeile 1: Hallo,: Kommando nicht gefunden. diff --git a/20190821/permissions-4.log b/20190821/permissions-4.log new file mode 100644 index 0000000000000000000000000000000000000000..f0513c00cfc06ecdebc7f50802776afb7221de53 --- /dev/null +++ b/20190821/permissions-4.log @@ -0,0 +1,14 @@ +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 16 +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r--r-- 1 peter peter 641 Aug 21 10:47 permissions-2.log +-rw-r--r-- 1 peter peter 1221 Aug 21 10:49 permissions-3.log +-rwxrwxr-x 1 peter staff 6 Aug 21 10:49 test.txt +cassini/home/peter/bo/2019ss/es/20190821> cat test.txt +ls -l +cassini/home/peter/bo/2019ss/es/20190821> ./test.txt +insgesamt 16 +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r--r-- 1 peter peter 641 Aug 21 10:47 permissions-2.log +-rw-r--r-- 1 peter peter 1221 Aug 21 10:49 permissions-3.log +-rwxrwxr-x 1 peter staff 6 Aug 21 10:49 test.txt diff --git a/20190821/permissions-5.log b/20190821/permissions-5.log new file mode 100644 index 0000000000000000000000000000000000000000..9f1605a62fb24b3b83219e6f2164717ccdd2fdc7 --- /dev/null +++ b/20190821/permissions-5.log @@ -0,0 +1,43 @@ +cassini/home/peter/bo/2019ss/es/20190821> gcc -Wall -O hello.c -o hello +lcassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 36 +-rwxr-xr-x 1 peter peter 8640 Aug 21 10:51 hello +-rw-r--r-- 1 peter peter 82 Aug 21 10:51 hello.c +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r--r-- 1 peter peter 641 Aug 21 10:47 permissions-2.log +-rw-r--r-- 1 peter peter 1221 Aug 21 10:49 permissions-3.log +-rw-r--r-- 1 peter peter 658 Aug 21 10:50 permissions-4.log +-rwxrwxr-x 1 peter staff 6 Aug 21 10:49 test.txt +cassini/home/peter/bo/2019ss/es/20190821> cat hello.c +#include <stdio.h> + +int main (void) +{ + printf ("Hello, world!\n"); + return 0; +} +cassini/home/peter/bo/2019ss/es/20190821> ./hello.c +bash: ./hello.c: Keine Berechtigung +cassini/home/peter/bo/2019ss/es/20190821> ./hello +Hello, world! +cassini/home/peter/bo/2019ss/es/20190821> cat hello + ((/lib64/ld-linux-x86-64.so.2GNU GNU�����6�p_� + Y0Q�N�1 + M \ p "libc.so.6puts__cxa_finalize__libc_start_main_ITM_deregisterTMCloneTable__gmon_start___Jv_RegisterClasses_ITM@(( � � � � � � H�H��LIBC_2.2.5ui �� + H��t��H���5� + �%� + @�%� + h������%� +3H�=�.��^H��H���PTL��H� + �DH�=y + H�y + UH)�H��H��vH�� H��t ]��fD]�@f.�H�=9 + H�52 +����H���]��H��H� ��@f.�H�=a H�?u H��t]��f�]�@f.��=� u'H�=� UH��tH�=� � + �^���fDH�I H��t�UH����]�@���H�H�=������H��fDAWAVA��AUATL�%� UH�-� SI��I��L)�H�H���/���H��t 1��L��L��D��A��H��H9�u�H�[]A\A]A^A_Ðf.���H�H��Hello, world!;8������������TL����l��������$zR�����+zR�$`��� FJ + �?;*3$"DX��\����DD���o�x��B�E �B(�H0�H8�M@r8A0A(B BB������@0 +� + f( GCC: (Debian 6.3.0-18+deb9u1) 6.3.0 201705168Tt�� @ + + �d @- � I[0 'Db� � �( �P��e�8 ��+�0 ��� �0 � "� + 0crtstuff.c__JCR_LIST__deregister_tm_clones__do_global_dtors_auxcompleted.6972__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryhello.c__FRAME_END____JCR_END____init_array_end_DYNAMIC__init_array_start__GNU_EH_FRAME_HDR_GLOBAL_OFFSET_TABLE___libc_csu_fini_ITM_deregisterTMCloneTableputs@@GLIBC_2.2.5_edata__libc_start_main@@GLIBC_2.2.5__data_start__gmon_start____dso_handle_IO_stdin_used__libc_csu_init__bss_startmain_Jv_RegisterClasses__TMC_END___ITM_registerTMCloneTable__cxa_finalize@@GLIBC_2.2.5.symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.�� �� 0 00-``/d�0�cassini/home/peter/bo/2019ss/es/20190821> diff --git a/20190821/permissions-6.log b/20190821/permissions-6.log new file mode 100644 index 0000000000000000000000000000000000000000..9c962dccc7683dce0270f2489874989f635f268b --- /dev/null +++ b/20190821/permissions-6.log @@ -0,0 +1,24 @@ +cassini/home/peter/bo/2019ss/es/20190821> ls -l +insgesamt 40 +-rwxr-xr-x 1 peter peter 8640 Aug 21 10:51 hello +-rw-r--r-- 1 peter peter 82 Aug 21 10:51 hello.c +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r--r-- 1 peter peter 641 Aug 21 10:47 permissions-2.log +-rw-r--r-- 1 peter peter 1221 Aug 21 10:49 permissions-3.log +-rw-r--r-- 1 peter peter 658 Aug 21 10:50 permissions-4.log +-rw-r--r-- 1 peter peter 3115 Aug 21 10:51 permissions-5.log +-rwxrwxr-x 1 peter staff 6 Aug 21 10:49 test.txt +cassini/home/peter/bo/2019ss/es/20190821> file hello test.txt +hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f7fc06bda5be36fd705f05e70b59183051d24eda, not stripped +test.txt: ASCII text +cassini/home/peter/bo/2019ss/es/20190821> file * +hello: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=f7fc06bda5be36fd705f05e70b59183051d24eda, not stripped +hello.c: C source, ASCII text +permissions-1.log: ASCII text +permissions-2.log: ASCII text +permissions-3.log: ASCII text +permissions-4.log: ASCII text +permissions-5.log: C source, UTF-8 Unicode text, with very long lines +test.txt: ASCII text +cassini/home/peter/bo/2019ss/es/20190821> cat test.txt +ls -l diff --git a/20190821/permissions-7.log b/20190821/permissions-7.log new file mode 100644 index 0000000000000000000000000000000000000000..b43d71d38d050fd756e7310693c3721f4bd7c4ae --- /dev/null +++ b/20190821/permissions-7.log @@ -0,0 +1,18 @@ +cassini/home/peter/bo/2019ss/es/20190821> ./hello.c +bash: ./hello.c: Keine Berechtigung +cassini/home/peter/bo/2019ss/es/20190821> cat hello.c +#include <stdio.h> + +int main (void) +{ + printf ("Hello, world!\n"); + return 0; +} +cassini/home/peter/bo/2019ss/es/20190821> ./hello.c +bash: ./hello.c: Keine Berechtigung +cassini/home/peter/bo/2019ss/es/20190821> chmod +x hello.c +cassini/home/peter/bo/2019ss/es/20190821> ./hello.c +./hello.c: Zeile 3: Syntaxfehler beim unerwarteten Wort `(' +./hello.c: Zeile 3: `int main (void)' +cassini/home/peter/bo/2019ss/es/20190821> int main +bash: int: Kommando nicht gefunden. diff --git a/20190821/permissions-8.log b/20190821/permissions-8.log new file mode 100644 index 0000000000000000000000000000000000000000..c033098c28e4fff90a4401a2b88447d05277d343 --- /dev/null +++ b/20190821/permissions-8.log @@ -0,0 +1,18 @@ +cassini/home/peter/bo/2019ss/es/20190821> chmod +x hello.c +cassini/home/peter/bo/2019ss/es/20190821> file hello.c +hello.c: C source, ASCII text +cassini/home/peter/bo/2019ss/es/20190821> chmod -x hello.c +cassini/home/peter/bo/2019ss/es/20190821> file hello.c +hello.c: C source, ASCII text +cassini/home/peter/bo/2019ss/es/20190821> mv hello.c hello.pusemuckel +cassini/home/peter/bo/2019ss/es/20190821> file hello.pusemuckel +hello.pusemuckel: C source, ASCII text +cassini/home/peter/bo/2019ss/es/20190821> mv hello.pusemuckel hello.cpp +cassini/home/peter/bo/2019ss/es/20190821> file hello.cpp +hello.cpp: C source, ASCII text +cassini/home/peter/bo/2019ss/es/20190821> mv hello.cpp hello.pas +cassini/home/peter/bo/2019ss/es/20190821> file hello.cpp +hello.cpp: cannot open `hello.cpp' (No such file or directory) +cassini/home/peter/bo/2019ss/es/20190821> file hello.pas +hello.pas: C source, ASCII text +cassini/home/peter/bo/2019ss/es/20190821> mv hello.pas hello.c diff --git a/20190821/permissions-9.log b/20190821/permissions-9.log new file mode 100644 index 0000000000000000000000000000000000000000..0f01080371598ac2f33154ba6d6be8f8ffcfbd35 --- /dev/null +++ b/20190821/permissions-9.log @@ -0,0 +1,20 @@ +cassini/home/peter/bo/2019ss/es/20190821> ls -l tolles-bild.jpg +-rwxrwxr-x 1 peter staff 6 Aug 21 10:49 tolles-bild.jpg +cassini/home/peter/bo/2019ss/es/20190821> cat tolles-bild.jpg +ls -l +cassini/home/peter/bo/2019ss/es/20190821> ./tolles-bild.jpg +insgesamt 56 +-rwxr-xr-x 1 peter peter 8640 Aug 21 10:51 hello +-rw-r--r-- 1 peter peter 82 Aug 21 10:51 hello.c +-rw-r--r-- 1 peter peter 1104 Aug 21 10:43 permissions-1.log +-rw-r--r-- 1 peter peter 641 Aug 21 10:47 permissions-2.log +-rw-r--r-- 1 peter peter 1221 Aug 21 10:49 permissions-3.log +-rw-r--r-- 1 peter peter 658 Aug 21 10:50 permissions-4.log +-rw-r--r-- 1 peter peter 3115 Aug 21 10:51 permissions-5.log +-rw-r--r-- 1 peter peter 1416 Aug 21 10:54 permissions-6.log +-rw-r--r-- 1 peter peter 608 Aug 21 10:57 permissions-7.log +-rw-r--r-- 1 peter peter 959 Aug 21 10:59 permissions-8.log +-rwxrwxr-x 1 peter staff 6 Aug 21 10:49 test.txt +-rwxrwxr-x 1 peter staff 6 Aug 21 10:49 tolles-bild.jpg +cassini/home/peter/bo/2019ss/es/20190821> file tolles-bild.jpg +tolles-bild.jpg: ASCII text diff --git a/20190821/pipes-1.log b/20190821/pipes-1.log new file mode 100644 index 0000000000000000000000000000000000000000..919438c2f11037ceb167e0a44ee9ff9aeb187abb --- /dev/null +++ b/20190821/pipes-1.log @@ -0,0 +1,17 @@ +cassini/home/peter/bo/2019ss/es/20190821> cat math-exercise.c +#include <stdio.h> + +int main (void) +{ + printf ("2 + 2\n"); + return 0; +} +cassini/home/peter/bo/2019ss/es/20190821> gcc -Wall -O math-exercise.c -o math-exercise +cassini/home/peter/bo/2019ss/es/20190821> ./math-exercise +2 + 2 +cassini/home/peter/bo/2019ss/es/20190821> ./math-exercise | bc +4 +cassini/home/peter/bo/2019ss/es/20190821> cat | bc +2 + 2 +4 +cassini/home/peter/bo/2019ss/es/20190821> cat > pipes-1.log diff --git a/20190821/programming-1.sh b/20190821/programming-1.sh new file mode 100755 index 0000000000000000000000000000000000000000..bc110d19b3d6e1ec3afc527bc060326c7c1116d2 --- /dev/null +++ b/20190821/programming-1.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if grep World *.c > /dev/null; then + echo "gefunden" +else + echo "nicht gefunden" +fi diff --git a/20190821/programming-10.sh b/20190821/programming-10.sh new file mode 100755 index 0000000000000000000000000000000000000000..3864bd2d126b7fa5530b2875cff3fd34a851065d --- /dev/null +++ b/20190821/programming-10.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +while read x; do + echo "Sie sagten: $x" +done diff --git a/20190821/programming-2.sh b/20190821/programming-2.sh new file mode 100755 index 0000000000000000000000000000000000000000..1f6e9a653c10f48afee52cf0d133cf757cd74ae4 --- /dev/null +++ b/20190821/programming-2.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if grep "$1" *.c > /dev/null; then + echo "gefunden" +else + echo "nicht gefunden" +fi diff --git a/20190821/programming-3.sh b/20190821/programming-3.sh new file mode 100755 index 0000000000000000000000000000000000000000..901908ade08cfe71bdbdca0e51317420da223abc --- /dev/null +++ b/20190821/programming-3.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if grep "$1" *."$2" > /dev/null; then + echo "$3" +else + echo "$4" +fi diff --git a/20190821/programming-4.sh b/20190821/programming-4.sh new file mode 100755 index 0000000000000000000000000000000000000000..a4ea14b29cbffab91eb00442436a5c4a39655d95 --- /dev/null +++ b/20190821/programming-4.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if grep "$1" *."$2" > /dev/null; then + echo "${3:-gefunden}" +else + echo "${4:-nicht gefunden}" +fi diff --git a/20190821/programming-5.sh b/20190821/programming-5.sh new file mode 100755 index 0000000000000000000000000000000000000000..952186ed866cef5257101be282f1b08171c7fc69 --- /dev/null +++ b/20190821/programming-5.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if grep "$1" "$@" > /dev/null; then + echo "gefunden" +else + echo "nicht gefunden" +fi diff --git a/20190821/programming-6.sh b/20190821/programming-6.sh new file mode 100755 index 0000000000000000000000000000000000000000..44ceb58f8b3a0de69039783b3d00a6d3038e139f --- /dev/null +++ b/20190821/programming-6.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +pattern="$1" +shift + +if grep "$pattern" "$@" > /dev/null; then + echo "gefunden" +else + echo "nicht gefunden" +fi diff --git a/20190821/programming-7.sh b/20190821/programming-7.sh new file mode 100755 index 0000000000000000000000000000000000000000..dd3f85b35aa5fefb86c477c38c28cd89dba53724 --- /dev/null +++ b/20190821/programming-7.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +for x in Dies Das Jenes; do + echo $x +done diff --git a/20190821/programming-8.sh b/20190821/programming-8.sh new file mode 100755 index 0000000000000000000000000000000000000000..42e67bdb82e59fd829fa704a660eff731f05fe97 --- /dev/null +++ b/20190821/programming-8.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +for x in Dies Das Jenes "Und so weiter"; do + echo "$x" +done diff --git a/20190821/programming-9.sh b/20190821/programming-9.sh new file mode 100755 index 0000000000000000000000000000000000000000..72a119cdb369c1259558c7fb458fff0d4ccce437 --- /dev/null +++ b/20190821/programming-9.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +for x in Dies Das Jenes 'Und so weiter'; do + echo '$x' +done diff --git a/20190821/scripts-1.log b/20190821/scripts-1.log new file mode 100644 index 0000000000000000000000000000000000000000..968168df019f70def1e3872d20bdf442486db44e --- /dev/null +++ b/20190821/scripts-1.log @@ -0,0 +1,12 @@ +cassini/home/peter/bo/2019ss/es/20190821> cat mathematics +#!/usr/bin/bc +2 + 2 +cassini/home/peter/bo/2019ss/es/20190821> chmod +x mathematics +cassini/home/peter/bo/2019ss/es/20190821> ./mathematics +bc 1.06.95 +Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. +This is free software with ABSOLUTELY NO WARRANTY. +For details type `warranty'. +4 +cassini/home/peter/bo/2019ss/es/20190821> file mathematics +mathematics: a /usr/bin/bc script, ASCII text executable diff --git a/20190821/scripts-10.log b/20190821/scripts-10.log new file mode 100644 index 0000000000000000000000000000000000000000..fb29d688a9acb643c09243166ae8760fd3ee8f3b --- /dev/null +++ b/20190821/scripts-10.log @@ -0,0 +1,15 @@ +cassini/home/peter/bo/2019ss/es/20190821> echo $file_template +cassini/home/peter/bo/2019ss/es/20190821> file_template=programming-10.c +cassini/home/peter/bo/2019ss/es/20190821> echo $file_template +programming-10.c +cassini/home/peter/bo/2019ss/es/20190821> echo $file_template | sed -e 's/.*\.\(.*$\)/\1/' +c +cassini/home/peter/bo/2019ss/es/20190821> echo $file_template | sed -e 's/\(.*\)\..*$/\1/' +programming-10 +cassini/home/peter/bo/2019ss/es/20190821> echo $file_template | sed -e 's/a/o/' +progromming-10.c +cassini/home/peter/bo/2019ss/es/20190821> echo $file_template | sed -e 's/[aeiou]/u/' +prugramming-10.c +cassini/home/peter/bo/2019ss/es/20190821> echo $file_template | sed -e 's/[aeiou]/u/g' +prugrummung-10.c +cassini/home/peter/bo/2019ss/es/20190821> diff --git a/20190821/scripts-2.log b/20190821/scripts-2.log new file mode 100644 index 0000000000000000000000000000000000000000..2a32cb31fd0c22ea86bbe736b92aae920e76f316 --- /dev/null +++ b/20190821/scripts-2.log @@ -0,0 +1,24 @@ +cassini/home/peter/bo/2019ss/es/20190821> cat hello.c +#include <stdio.h> + +int main (void) +{ + printf ("Hello, world!\n"); + return 0; +} +cassini/home/peter/bo/2019ss/es/20190821> grep world *.c +hello.c: printf ("Hello, world!\n"); +cassini/home/peter/bo/2019ss/es/20190821> grep World *.c +cassini/home/peter/bo/2019ss/es/20190821> if grep world *.c; then echo "gefunden"; fihello.c: printf ("Hello, world!\n"); +gefunden +cassini/home/peter/bo/2019ss/es/20190821> if grep World *.c; then echo "gefunden"; fi +cassini/home/peter/bo/2019ss/es/20190821> if grep World *.c > grep.log; then echo "gefunden"; fi +cassini/home/peter/bo/2019ss/es/20190821> if grep world *.c > grep.log; then echo "gefunden"; fi +gefunden +cassini/home/peter/bo/2019ss/es/20190821> cat grep.log +hello.c: printf ("Hello, world!\n"); +cassini/home/peter/bo/2019ss/es/20190821> rm grep.log +cassini/home/peter/bo/2019ss/es/20190821> if grep world *.c > /dev/null; then echo "gefunden"; fi +gefunden +cassini/home/peter/bo/2019ss/es/20190821> cat /dev/null +cassini/home/peter/bo/2019ss/es/20190821> diff --git a/20190821/scripts-3.log b/20190821/scripts-3.log new file mode 100644 index 0000000000000000000000000000000000000000..004eaa5a9e35da2fc53db8464b5dbc9074d7e184 --- /dev/null +++ b/20190821/scripts-3.log @@ -0,0 +1,2 @@ +cassini/home/peter/bo/2019ss/es/20190821> if grep World *.c > /dev/null; then echo "gefunden"; else echo "nicht gefunden"; fi +nicht gefunden diff --git a/20190821/scripts-4.log b/20190821/scripts-4.log new file mode 100644 index 0000000000000000000000000000000000000000..afa9e33a173f0fd6909f7d9d03aef36a9ff2469b --- /dev/null +++ b/20190821/scripts-4.log @@ -0,0 +1,20 @@ +#!/bin/bash + +if grep "$1" *."$2" > /dev/null; then + echo "$3" +else + echo "$4" +fi +cassini/home/peter/bo/2019ss/es/20190821> ./programming-3.sh Hello c gefunden "nicht gefunden" +gefunden +cassini/home/peter/bo/2019ss/es/20190821> ./programming-3.sh Schlumpf c gefunden "nicht gefunden" +nicht gefunden +cassini/home/peter/bo/2019ss/es/20190821> ./programming-3.sh Schlumpf sh gefunden "nicht gefunden" +nicht gefunden +cassini/home/peter/bo/2019ss/es/20190821> ./programming-3.sh World txt gefunden "nicht gefunden" +nicht gefunden +cassini/home/peter/bo/2019ss/es/20190821> ./programming-3.sh World txt gefunden Nanu?Nanu? +cassini/home/peter/bo/2019ss/es/20190821> ./programming-3.sh World pusemuckel gefunden Nanu? +grep: *.pusemuckel: Datei oder Verzeichnis nicht gefunden +Nanu? +cassini/home/peter/bo/2019ss/es/20190821> diff --git a/20190821/scripts-5.log b/20190821/scripts-5.log new file mode 100644 index 0000000000000000000000000000000000000000..971e30e5b05ed684189591c7d13f74df16b7b4e0 --- /dev/null +++ b/20190821/scripts-5.log @@ -0,0 +1,12 @@ +#!/bin/bash + +if grep "$1" *."$2" > /dev/null; then + echo "${3:-gefunden}" +else + echo "${4:-nicht gefunden}" +fi +cassini/home/peter/bo/2019ss/es/20190821> ./programming-4.sh World c found +nicht gefunden +cassini/home/peter/bo/2019ss/es/20190821> ./programming-4.sh world c found +found +cassini/home/peter/bo/2019ss/es/20190821> diff --git a/20190821/scripts-6.log b/20190821/scripts-6.log new file mode 100644 index 0000000000000000000000000000000000000000..c280128c5f040227bbaa107b6b35b7d2d767b2bb --- /dev/null +++ b/20190821/scripts-6.log @@ -0,0 +1,10 @@ +#!/bin/bash + +if grep "$1" "$@" > /dev/null; then + echo "gefunden" +else + echo "nicht gefunden" +fi +cassini/home/peter/bo/2019ss/es/20190821> ./programming-5.sh world *.c +grep: world: Datei oder Verzeichnis nicht gefunden +nicht gefunden diff --git a/20190821/scripts-7.log b/20190821/scripts-7.log new file mode 100644 index 0000000000000000000000000000000000000000..d58445bb033c83abafd8de58578f92d896631590 --- /dev/null +++ b/20190821/scripts-7.log @@ -0,0 +1,15 @@ +#!/bin/bash + +pattern="$1" +shift + +if grep "$pattern" "$@" > /dev/null; then + echo "gefunden" +else + echo "nicht gefunden" +fi +cassini/home/peter/bo/2019ss/es/20190821> echo ./programming-6.sh world *.c +./programming-6.sh world hello.c math-exercise.c +cassini/home/peter/bo/2019ss/es/20190821> ./programming-6.sh world *.c +gefunden +cassini/home/peter/bo/2019ss/es/20190821> diff --git a/20190821/scripts-8.log b/20190821/scripts-8.log new file mode 100644 index 0000000000000000000000000000000000000000..2d351163799e85c03a8dc85a70195dee808ac304 --- /dev/null +++ b/20190821/scripts-8.log @@ -0,0 +1,32 @@ +#!/bin/bash + +while read x; do + echo "Sie sagten: $x" +done +cassini/home/peter/bo/2019ss/es/20190821> ./programming- +programming-10.sh programming-3.sh programming-6.sh programming-9.sh +programming-1.sh programming-4.sh programming-7.sh +programming-2.sh programming-5.sh programming-8.sh +cassini/home/peter/bo/2019ss/es/20190821> ./programming-10.sh +Hallo? +Sie sagten: Hallo? +Ist da jemand? +Sie sagten: Ist da jemand? +Schön. +Sie sagten: Schön. +cassini/home/peter/bo/2019ss/es/20190821> cat > gedicht.txt +Ich ging im Walde +So für mich hin, +Und nichts zu suchen, +Das war mein Sinn. +cassini/home/peter/bo/2019ss/es/20190821> cat gedicht.txt +Ich ging im Walde +So für mich hin, +Und nichts zu suchen, +Das war mein Sinn. +cassini/home/peter/bo/2019ss/es/20190821> cat gedicht.txt | ./programming-10.sh +Sie sagten: Ich ging im Walde +Sie sagten: So für mich hin, +Sie sagten: Und nichts zu suchen, +Sie sagten: Das war mein Sinn. +cassini/home/peter/bo/2019ss/es/20190821> diff --git a/20190821/scripts-9.log b/20190821/scripts-9.log new file mode 100644 index 0000000000000000000000000000000000000000..1d23d8df953e4b7382957a3e53a7d7e25b9c7f4c --- /dev/null +++ b/20190821/scripts-9.log @@ -0,0 +1,9 @@ +cassini/home/peter/bo/2019ss/es/20190821> which vicat +/home/peter/usr/bin/vicat +cassini/home/peter/bo/2019ss/es/20190821> cat $(which vicat) +#!/bin/bash +/usr/bin/vim -X -c 'set sw=2' -c 'set expandtab' -c 'set ai' -c 'set nowrap' "$@" +clear +shift $(( $# - 1 )) +cat "$1" +cassini/home/peter/bo/2019ss/es/20190821> diff --git a/20190821/test.txt b/20190821/test.txt new file mode 100755 index 0000000000000000000000000000000000000000..7bcac8bfc897131206cb32ba88d805ed03dca042 --- /dev/null +++ b/20190821/test.txt @@ -0,0 +1 @@ +ls -l diff --git a/20190821/tolles-bild.jpg b/20190821/tolles-bild.jpg new file mode 100755 index 0000000000000000000000000000000000000000..7bcac8bfc897131206cb32ba88d805ed03dca042 --- /dev/null +++ b/20190821/tolles-bild.jpg @@ -0,0 +1 @@ +ls -l diff --git a/20181108/vic b/20190821/vic similarity index 95% rename from 20181108/vic rename to 20190821/vic index 5eea936e6eed95c1a0a7afc03ee288fba9995d8f..b488615b33bcf72137c8e0bc0faf2196a54b1a62 100755 --- a/20181108/vic +++ b/20190821/vic @@ -1,6 +1,6 @@ #!/bin/bash -debug=false +debug=true if [ $# -gt 0 ]; then $debug && echo "parameters = $@" @@ -22,7 +22,7 @@ file_number=$(echo $file_base | sed -e 's/^.*-\([0-9]*$\)/\1/') file_stem=$(echo $file_base | sed -e 's/^\(.*\)-[0-9]*$/\1/') $debug && echo "file_number = $file_number" -$debug && echo "file_number = $file_stem" +$debug && echo "file_stem = $file_stem" while [ -e "$file_stem-$file_number.$file_extension" ]; do file_number=$((file_number + 1)) diff --git a/README.md b/README.md deleted file mode 100644 index e8186f17332486ef0210f31264cad2c1cc22b48d..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,64 +0,0 @@ -Eingebettete Systeme -==================== - -Lehrveranstaltung im Wintersemester 2018/19 -Hochschule Bochum, Campus Velbert/Heiligenhaus -Prof. Dr. rer. nat. Peter Gerwinski - -Copyright © 2012–2018 Peter Gerwinski - -**Diese Lehrmaterialien sind freie Software.** -Sie dürfen diese gemäß den jeweils angegebenen Lizenzen -([CC-BY-SA 3.0](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/CC-BY-SA-3.0), -[GNU GPL 3+](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/GNU-GPL-3), -[modified BSD License](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/BSD-MODIFIED)) -studieren, kopieren, modifizieren und/oder weitergeben. -Für Details siehe [common/README](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/README). - -Vortragsfolien: ---------------- - * [11.10.2018: Einführung: eingebettete Systeme, Unix-Kommandozeile](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/20181011/es-20181011.pdf) - * [18.10.2018: Unix: Umgang mit Dateisystemen](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/20181018/es-20181018.pdf) - * [25.10.2018: Unix: grep, Ein- und Ausgabeströme, Pipes, Verzweigungen und Schleifen](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/20181025/es-20181025.pdf) - * [08.11.2018: TCP/IP in der Praxis: Netzzugang, IP-Adressen, Ports, Protokolle](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/20181108/es-20181108.pdf) - * [22.11.2018: TCP/IP in der Praxis: SSH, X11, GNU screen, Programmierung; Bus-Systeme](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/20181122/es-20181122.pdf) - * [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/es-slides-2018ws.pdf) - -Tafelbilder: ------------- - * [08.11.2018: interne IP-Adressen, TCP/IP-Schichtenmodell](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/20181108/photo-20181108-184032.jpg) - * [15.11.2018: Routing, NAT](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/20181115/photo-20181115-185731.jpg) - * [15.11.2018: Netzmasken, private IP-Bereiche](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/20181115/photo-20181115-185835.jpg) - -Literatur: ----------- - * [Skript: Netzwerktechnik](http://www.peter.gerwinski.de/download/net-2013ss.tar.gz] - -Original-Materialien einschließlich Beispiel-Programme und LaTeX-Quelltexte: ----------------------------------------------------------------------------- - * [common – gemeinsame Dateien für Skript und Vortragsfolien](https://gitlab.cvh-server.de/pgerwinski/es/tree/master/common) - * [201????? – Vortragsfolien und Beispiele](https://gitlab.cvh-server.de/pgerwinski/es/tree/master) - * [branch 2017ws – vollständige Lehrmaterialien vom Wintersemester 2017/18](https://gitlab.cvh-server.de/pgerwinski/es/tree/2017ws) - - -Embedded Systems -================ - -Course in winter semester 2018–19 -Bochum University of Applied Sciences, Campus Velbert/Heiligenhaus -Prof. Dr. rer. nat. Peter Gerwinski - -Copyright © 2012–2018 Peter Gerwinski - -**These teaching materials are Free Software.** -You may study, copy, modify, and/or distribute them -according to their respective licences -([CC-BY-SA 3.0](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/CC-BY-SA-3.0), -[GNU GPL 3+](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/GNU-GPL-3), -[modified BSD License](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/BSD-MODIFIED)). -See the file [common/README](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/README) for details. - - * [common – common files for lecture notes and slides](https://gitlab.cvh-server.de/pgerwinski/es/tree/master/common) - * [201????? – slides and examples](https://gitlab.cvh-server.de/pgerwinski/es/tree/master) - * [es-slides-2018ws.pdf – all slides in 1 file](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/es-slides-2018ws.pdf) - * [branch 2017ws – complete teaching materials from winter semester 2017–18](https://gitlab.cvh-server.de/pgerwinski/es/tree/2017ws) diff --git a/common/BSD-MODIFIED b/common/BSD-MODIFIED deleted file mode 100644 index 3e9afec081b72c48de30b4067bc3d68536906a5d..0000000000000000000000000000000000000000 --- a/common/BSD-MODIFIED +++ /dev/null @@ -1,29 +0,0 @@ -Modified BSD License - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials - provided with the distribution. - - 3. The name of the author may not be used to endorse or promote - products derived from this software without specific prior - written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/common/CC-BY-SA-3.0 b/common/CC-BY-SA-3.0 deleted file mode 100644 index 43633f5d8ca3ee4c454bc0d64fded403267f6e6f..0000000000000000000000000000000000000000 --- a/common/CC-BY-SA-3.0 +++ /dev/null @@ -1,418 +0,0 @@ -Creative Commons Attribution-ShareAlike 3.0 Unported - - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT - PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT - CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS - PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS - MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND - DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. - -License - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS -CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS -PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE -WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS -PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND -AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS -LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU -THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF -SUCH TERMS AND CONDITIONS. - -1. Definitions - - a. "Adaptation" means a work based upon the Work, or upon the - Work and other pre-existing works, such as a translation, - adaptation, derivative work, arrangement of music or other - alterations of a literary or artistic work, or phonogram or - performance and includes cinematographic adaptations or any - other form in which the Work may be recast, transformed, or - adapted including in any form recognizably derived from the - original, except that a work that constitutes a Collection - will not be considered an Adaptation for the purpose of this - License. For the avoidance of doubt, where the Work is a - musical work, performance or phonogram, the synchronization of - the Work in timed-relation with a moving image ("synching") - will be considered an Adaptation for the purpose of this - License. - - b. "Collection" means a collection of literary or artistic works, - such as encyclopedias and anthologies, or performances, - phonograms or broadcasts, or other works or subject matter - other than works listed in Section 1(f) below, which, by - reason of the selection and arrangement of their contents, - constitute intellectual creations, in which the Work is - included in its entirety in unmodified form along with one or - more other contributions, each constituting separate and - independent works in themselves, which together are assembled - into a collective whole. A work that constitutes a Collection - will not be considered an Adaptation (as defined below) for - the purposes of this License. - - c. "Creative Commons Compatible License" means a license that is - listed at http://creativecommons.org/compatiblelicenses that - has been approved by Creative Commons as being essentially - equivalent to this License, including, at a minimum, because - that license: (i) contains terms that have the same purpose, - meaning and effect as the License Elements of this License; - and, (ii) explicitly permits the relicensing of adaptations of - works made available under that license under this License or - a Creative Commons jurisdiction license with the same License - Elements as this License. - - d. "Distribute" means to make available to the public the - original and copies of the Work or Adaptation, as appropriate, - through sale or other transfer of ownership. - - e. "License Elements" means the following high-level license - attributes as selected by Licensor and indicated in the title - of this License: Attribution, ShareAlike. - - f. "Licensor" means the individual, individuals, entity or - entities that offer(s) the Work under the terms of this - License. - - g. "Original Author" means, in the case of a literary or artistic - work, the individual, individuals, entity or entities who - created the Work or if no individual or entity can be - identified, the publisher; and in addition (i) in the case of - a performance the actors, singers, musicians, dancers, and - other persons who act, sing, deliver, declaim, play in, - interpret or otherwise perform literary or artistic works or - expressions of folklore; (ii) in the case of a phonogram the - producer being the person or legal entity who first fixes the - sounds of a performance or other sounds; and, (iii) in the - case of broadcasts, the organization that transmits the - broadcast. - - h. "Work" means the literary and/or artistic work offered under - the terms of this License including without limitation any - production in the literary, scientific and artistic domain, - whatever may be the mode or form of its expression including - digital form, such as a book, pamphlet and other writing; a - lecture, address, sermon or other work of the same nature; a - dramatic or dramatico-musical work; a choreographic work or - entertainment in dumb show; a musical composition with or - without words; a cinematographic work to which are assimilated - works expressed by a process analogous to cinematography; a - work of drawing, painting, architecture, sculpture, engraving - or lithography; a photographic work to which are assimilated - works expressed by a process analogous to photography; a work - of applied art; an illustration, map, plan, sketch or - three-dimensional work relative to geography, topography, - architecture or science; a performance; a broadcast; a - phonogram; a compilation of data to the extent it is protected - as a copyrightable work; or a work performed by a variety or - circus performer to the extent it is not otherwise considered - a literary or artistic work. - - i. "You" means an individual or entity exercising rights under - this License who has not previously violated the terms of this - License with respect to the Work, or who has received express - permission from the Licensor to exercise rights under this - License despite a previous violation. - - j. "Publicly Perform" means to perform public recitations of the - Work and to communicate to the public those public - recitations, by any means or process, including by wire or - wireless means or public digital performances; to make - available to the public Works in such a way that members of - the public may access these Works from a place and at a place - individually chosen by them; to perform the Work to the public - by any means or process and the communication to the public of - the performances of the Work, including by public digital - performance; to broadcast and rebroadcast the Work by any - means including signs, sounds or images. - - k. "Reproduce" means to make copies of the Work by any means - including without limitation by sound or visual recordings and - the right of fixation and reproducing fixations of the Work, - including storage of a protected performance or phonogram in - digital form or other electronic medium. - -2. Fair Dealing Rights. Nothing in this License is intended to - reduce, limit, or restrict any uses free from copyright or rights - arising from limitations or exceptions that are provided for in - connection with the copyright protection under copyright law or - other applicable laws. - -3. License Grant. Subject to the terms and conditions of this - License, Licensor hereby grants You a worldwide, royalty-free, - non-exclusive, perpetual (for the duration of the applicable - copyright) license to exercise the rights in the Work as stated - below: - - a. to Reproduce the Work, to incorporate the Work into one or - more Collections, and to Reproduce the Work as incorporated in - the Collections; - - b. to create and Reproduce Adaptations provided that any such - Adaptation, including any translation in any medium, takes - reasonable steps to clearly label, demarcate or otherwise - identify that changes were made to the original Work. For - example, a translation could be marked "The original work was - translated from English to Spanish," or a modification could - indicate "The original work has been modified."; - - c. to Distribute and Publicly Perform the Work including as - incorporated in Collections; and, - - d. to Distribute and Publicly Perform Adaptations. - - e. For the avoidance of doubt: - - i. Non-waivable Compulsory License Schemes. In those - jurisdictions in which the right to collect royalties - through any statutory or compulsory licensing scheme - cannot be waived, the Licensor reserves the exclusive - right to collect such royalties for any exercise by You - of the rights granted under this License; - - ii. Waivable Compulsory License Schemes. In those - jurisdictions in which the right to collect royalties - through any statutory or compulsory licensing scheme can - be waived, the Licensor waives the exclusive right to - collect such royalties for any exercise by You of the - rights granted under this License; and, - - iii. Voluntary License Schemes. The Licensor waives the right - to collect royalties, whether individually or, in the - event that the Licensor is a member of a collecting - society that administers voluntary licensing schemes, via - that society, from any exercise by You of the rights - granted under this License. - -The above rights may be exercised in all media and formats whether -now known or hereafter devised. The above rights include the right -to make such modifications as are technically necessary to exercise -the rights in other media and formats. Subject to Section 8(f), all -rights not expressly granted by Licensor are hereby reserved. - -4. Restrictions. The license granted in Section 3 above is expressly - made subject to and limited by the following restrictions: - - a. You may Distribute or Publicly Perform the Work only under the - terms of this License. You must include a copy of, or the - Uniform Resource Identifier (URI) for, this License with every - copy of the Work You Distribute or Publicly Perform. You may - not offer or impose any terms on the Work that restrict the - terms of this License or the ability of the recipient of the - Work to exercise the rights granted to that recipient under - the terms of the License. You may not sublicense the Work. You - must keep intact all notices that refer to this License and to - the disclaimer of warranties with every copy of the Work You - Distribute or Publicly Perform. When You Distribute or - Publicly Perform the Work, You may not impose any effective - technological measures on the Work that restrict the ability - of a recipient of the Work from You to exercise the rights - granted to that recipient under the terms of the License. This - Section 4(a) applies to the Work as incorporated in a - Collection, but this does not require the Collection apart - from the Work itself to be made subject to the terms of this - License. If You create a Collection, upon notice from any - Licensor You must, to the extent practicable, remove from the - Collection any credit as required by Section 4(c), as - requested. If You create an Adaptation, upon notice from any - Licensor You must, to the extent practicable, remove from the - Adaptation any credit as required by Section 4(c), as - requested. - - b. You may Distribute or Publicly Perform an Adaptation only - under the terms of: (i) this License; (ii) a later version of - this License with the same License Elements as this License; - (iii) a Creative Commons jurisdiction license (either this or - a later license version) that contains the same License - Elements as this License (e.g., Attribution-ShareAlike 3.0 - US)); (iv) a Creative Commons Compatible License. If you - license the Adaptation under one of the licenses mentioned in - (iv), you must comply with the terms of that license. If you - license the Adaptation under the terms of any of the licenses - mentioned in (i), (ii) or (iii) (the "Applicable License"), - you must comply with the terms of the Applicable License - generally and the following provisions: (I) You must include a - copy of, or the URI for, the Applicable License with every - copy of each Adaptation You Distribute or Publicly Perform; - (II) You may not offer or impose any terms on the Adaptation - that restrict the terms of the Applicable License or the - ability of the recipient of the Adaptation to exercise the - rights granted to that recipient under the terms of the - Applicable License; (III) You must keep intact all notices - that refer to the Applicable License and to the disclaimer of - warranties with every copy of the Work as included in the - Adaptation You Distribute or Publicly Perform; (IV) when You - Distribute or Publicly Perform the Adaptation, You may not - impose any effective technological measures on the Adaptation - tnted to that recipient under the terms of the Applicable - License. This Section 4(b) applies to the Adaptation as - incorporated in a Collection, but this does not require the - Collection apart from the Adaptation itself to be made subject - to the terms of the Applicable License. - - c. If You Distribute, or Publicly Perform the Work or any - Adaptations or Collections, You must, unless a request has - been made pursuant to Section 4(a), keep intact all copyright - notices for the Work and provide, reasonable to the medium or - means You are utilizing: (i) the name of the Original Author - (or pseudonym, if applicable) if supplied, and/or if the - Original Author and/or Licensor designate another party or - parties (e.g., a sponsor institute, publishing entity, - journal) for attribution ("Attribution Parties") in Licensor's - copyright notice, terms of service or by other reasonable - means, the name of such party or parties; (ii) the title of - the Work if supplied; (iii) to the extent reasonably - practicable, the URI, if any, that Licensor specifies to be - associated with the Work, unless such URI does not refer to - the copyright notice or licensing information for the Work; - and (iv) , consistent with Ssection 3(b), in the case of an - Adaptation, a credit identifying the use of the Work in the - Adaptation (e.g., "French translation of the Work by Original - Author," or "Screenplay based on original Work by Original - Author"). The credit required by this Section 4(c) may be - implemented in any reasonable manner; provided, however, that - in the case of a Adaptation or Collection, at a minimum such - credit will appear, if a credit for all contributing authors - of the Adaptation or Collection appears, then as part of these - credits and in a manner at least as prominent as the credits - for the other contributing authors. For the avoidance of - doubt, You may only use the credit required by this Section - for the purpose of attribution in the manner set out above - and, by exercising Your rights under this License, You may not - implicitly or explicitly assert or imply any connection with, - sponsorship or endorsement by the Original Author, Licensor - and/or Attribution Parties, as appropriate, of You or Your use - of the Work, without the separate, express prior written - permission of the Original Author, Licensor and/or Attribution - Parties. - - d. Except as otherwise agreed in writing by the Licensor or as - may be otherwise permitted by applicable law, if You - Reproduce, Distribute or Publicly Perform the Work either by - itself or as part of any Adaptations or Collections, You must - not distort, mutilate, modify or take other derogatory action - in relation to the Work which would be prejudicial to the - Original Author's honor or reputation. Licensor agrees that in - those jurisdictions (e.g. Japan), in which any exercise of the - right granted in Section 3(b) of this License (the right to - make Adaptations) would be deemed to be a distortion, - mutilation, modification or other derogatory action - prejudicial to the Original Author's honor and reputation, the - Licensor will waive or not assert, as appropriate, this - Section, to the fullest extent permitted by the applicable - national law, to enable You to reasonably exercise Your right - under Section 3(b) of this License (right to make Adaptations) - but not otherwise. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, -LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR -WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, -STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF -TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, -NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, -ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT -DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF -IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY - APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY - LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, S - LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED - OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this - License. Individuals or entities who have received Adaptations - or Collections from You under this License, however, will not - have their licenses terminated provided such individuals or - entities remain in full compliance with those licenses. - Sections 1, 2, 5, 6, 7, and 8 will survive any termination of - this License. - - b. Subject to the above terms and conditions, the license granted - here is perpetual (for the duration of the applicable - copyright in the Work). Notwithstanding the above, Licensor - reserves the right to release the Work under different license - terms or to stop distributing the Work at any time; provided, - however that any such election will not serve to withdraw this - License (or any other license that has been, or is required to - be, granted under the terms of this License), and this License - will continue in full force and effect unless terminated as - stated above. - -8. Miscellaneous - - a. Each time You Distribute or Publicly Perform the Work or a - Collection, the Licensor offers to the recipient a license to - the Work on the same terms and conditions as the license - granted to You under this License. - - b. Each time You Distribute or Publicly Perform an Adaptation, - Licensor offers to the recipient a license to the original - Work on the same terms and conditions as the license granted - to You under this License. - - c. If any provision of this License is invalid or unenforceable - under applicable law, it shall not affect the validity or - enforceability of the remainder of the terms of this License, - and without further action by the parties to this agreement, - such provision shall be reformed to the minimum extent - necessary to make such provision valid and enforceable. - - d. No term or provision of this License shall be deemed waived - and no breach consented to unless such waiver or consent shall - be in writing and signed by the party to be charged with such - waiver or consent. - - e. This License constitutes the entire agreement between the - parties with respect to the Work licensed here. There are no - understandings, agreements or representations with respect to - the Work not specified here. Licensor shall not be bound by - any additional provisions that may appear in any communication - from You. This License may not be modified without the mutual - written agreement of the Licensor and You. - - f. The rights granted under, and the subject matter referenced, - in this License were drafted utilizing the terminology of the - Berne Convention for the Protection of Literary and Artistic - Works (as amended on September 28, 1979), the Rome Convention - of 1961, the WIPO Copyright Treaty of 1996, the WIPO - Performances and Phonograms Treaty of 1996 and the Universal - Copyright Convention (as revised on July 24, 1971). These - rights and subject matter take effect in the relevant - jurisdiction in which the License terms are sought to be - enforced according to the corresponding provisions of the - implementation of those treaty provisions in the applicable - national law. If the standard suite of rights granted under - applicable copyright law includes additional rights not - granted under this License, such additional rights are deemed - to be included in the License; this License is not intended to - restrict the license of any rights under applicable law. - -Creative Commons Notice - - Creative Commons is not a party to this License, and makes no - warranty whatsoever in connection with the Work. Creative - Commons will not be liable to You or any party on any legal - theory for any damages whatsoever, including without limitation - any general, special, incidental or consequential damages - arising in connection to this license. Notwithstanding the - foregoing two (2) sentences, if Creative Commons has expressly - identified itself as the Licensor hereunder, it shall have all - rights and obligations of Licensor. - - Except for theicensed under the CCPL, Creative Commons does not - authorize the use by either party of the trademark "Creative - Commons" or any related trademark or logo of Creative Commons - without the prior written consent of Creative Commons. Any - permitted use will be in compliance with Creative Commons' - then-current trademark usage guidelines, as may be published on - its website or otherwise made available upon request from time - to time. For the avoidance of doubt, this trademark restriction - does not form part of the License. - - Creative Commons may be contacted at http://creativecommons.org/. diff --git a/common/GNU-GPL-3 b/common/GNU-GPL-3 deleted file mode 100644 index 94a9ed024d3859793618152ea559a168bbcbb5e2..0000000000000000000000000000000000000000 --- a/common/GNU-GPL-3 +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - <program> Copyright (C) <year> <name of author> - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -<http://www.gnu.org/licenses/>. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/common/README b/common/README deleted file mode 100644 index b6912372207e9ff192f02e0d276495c3e77fe9b8..0000000000000000000000000000000000000000 --- a/common/README +++ /dev/null @@ -1,40 +0,0 @@ -Lecture Notes and Examples on Embedded Systems -Copyright (C) 2012, 2013, 2014, 2015, 2016 Peter Gerwinski <peter@gerwinski.de> - -These documents are free software; you can redistribute them and/or -modify them under the terms and conditions of the following licenses: - - *.tex: scripts and slides - - either the GNU General Public License, version 3 - or, at your option, any later version, - - or the Creative Commons Attribution-ShareAlike 3.0 - Unported License - - *.c, *.h, Makefile*: programming examples - - either the Modified BSD License, - - or the Creative Commons Attribution-ShareAlike 3.0 - Unported License - - * sfmath.sty is subject to the LaTeX Project Public License, - version 1.3 or later. See that file for details. - - * The script uses some other free media files; see the script - for their individual licenses. - -These documents are distributed in the hope that they will be -useful, but WITHOUT ANY WARRANTY; without even the implied warranty -of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -licenses for more details. - -You should have received a copy of the GNU General Public License -along with this program; see the file GNU-GPL-3. If not, see -<http://www.gnu.org/licenses/>. - -You should have received a copy of the Modified BSD License -along with this document; see the file BSD-MODIFIED. If not, -see <http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5>. - -You should have received a copy of the Creative Commons -Attribution-ShareAlike 3.0 Unported License along with -this document; see the file CC-BY-SA-3.0. If not, see -<http://creativecommons.org/licenses/>. diff --git a/common/Retribution_Engine_Screenshot_120807.jpg b/common/Retribution_Engine_Screenshot_120807.jpg deleted file mode 100644 index 9cc97552d0c274af37643f9037568b43a19277cc..0000000000000000000000000000000000000000 Binary files a/common/Retribution_Engine_Screenshot_120807.jpg and /dev/null differ diff --git a/common/Telefon_t-sinus-700.jpg b/common/Telefon_t-sinus-700.jpg deleted file mode 100644 index bbac946c1ab3bd11c97ade38342f419332fc8f46..0000000000000000000000000000000000000000 Binary files a/common/Telefon_t-sinus-700.jpg and /dev/null differ diff --git a/common/Zeichen_123.pdf b/common/Zeichen_123.pdf deleted file mode 100644 index 975f570d8bd00caabd473b4ff789e1c4718cccd9..0000000000000000000000000000000000000000 Binary files a/common/Zeichen_123.pdf and /dev/null differ diff --git a/common/a380.jpg b/common/a380.jpg deleted file mode 100644 index 49a17597a100bda8d20189b7037061ab91eba1af..0000000000000000000000000000000000000000 Binary files a/common/a380.jpg and /dev/null differ diff --git a/common/csa2.jpg b/common/csa2.jpg deleted file mode 100644 index b8e3d58c4dd4d41c42e69e43811acecf83181769..0000000000000000000000000000000000000000 Binary files a/common/csa2.jpg and /dev/null differ diff --git a/common/curiosity.jpg b/common/curiosity.jpg deleted file mode 100644 index 8556f7db10c8eb5e003ac4a7793b2b720c4e3b62..0000000000000000000000000000000000000000 Binary files a/common/curiosity.jpg and /dev/null differ diff --git a/common/dsc_8208.jpg b/common/dsc_8208.jpg deleted file mode 100644 index eaa691e11fba97e15dd891c2bf3086c2be17757a..0000000000000000000000000000000000000000 Binary files a/common/dsc_8208.jpg and /dev/null differ diff --git a/common/floppys.jpg b/common/floppys.jpg deleted file mode 100644 index 28402e668c24da3fa93a6e2ee4467e3c954793ff..0000000000000000000000000000000000000000 Binary files a/common/floppys.jpg and /dev/null differ diff --git a/common/herzschrittmacher.jpg b/common/herzschrittmacher.jpg deleted file mode 100644 index 14c387e0c578f216ba362c5ab0e7bd01b20a8dcb..0000000000000000000000000000000000000000 Binary files a/common/herzschrittmacher.jpg and /dev/null differ diff --git a/common/hexapode.png b/common/hexapode.png deleted file mode 100644 index 9b70ead10940a056cde162cff580c509092a33c7..0000000000000000000000000000000000000000 Binary files a/common/hexapode.png and /dev/null differ diff --git a/common/kompass-messung.png b/common/kompass-messung.png deleted file mode 100644 index 483165aec6de40b1993500956f1de1cb7added79..0000000000000000000000000000000000000000 Binary files a/common/kompass-messung.png and /dev/null differ diff --git a/common/kompassmodul-an-roboter.jpg b/common/kompassmodul-an-roboter.jpg deleted file mode 100644 index 8032f89a2d9ed29445312c2f29ef6ceb951b2005..0000000000000000000000000000000000000000 Binary files a/common/kompassmodul-an-roboter.jpg and /dev/null differ diff --git a/common/kompassmodul.jpg b/common/kompassmodul.jpg deleted file mode 100644 index 91e9de3f4ff0023b01957a6c48e2b61f8070ee40..0000000000000000000000000000000000000000 Binary files a/common/kompassmodul.jpg and /dev/null differ diff --git a/common/logo-hochschule-bochum-cvh-text-v2.pdf b/common/logo-hochschule-bochum-cvh-text-v2.pdf deleted file mode 100644 index 3725a72c764b4d9ab200553474e4262161f7a5b5..0000000000000000000000000000000000000000 Binary files a/common/logo-hochschule-bochum-cvh-text-v2.pdf and /dev/null differ diff --git a/common/logo-hochschule-bochum.pdf b/common/logo-hochschule-bochum.pdf deleted file mode 100644 index 8cad73dbb48a2b550bf29355b5a6ec895ce091f8..0000000000000000000000000000000000000000 Binary files a/common/logo-hochschule-bochum.pdf and /dev/null differ diff --git a/common/motherboard-anschluesse.jpg b/common/motherboard-anschluesse.jpg deleted file mode 100644 index 0c18421ba84cf3b5edfd94404152138a78ee527b..0000000000000000000000000000000000000000 Binary files a/common/motherboard-anschluesse.jpg and /dev/null differ diff --git a/common/pathfinder.jpg b/common/pathfinder.jpg deleted file mode 100644 index 6100cca988b491fa3b05380ec9ea49346bc6df1f..0000000000000000000000000000000000000000 Binary files a/common/pathfinder.jpg and /dev/null differ diff --git a/common/pgscript.sty b/common/pgscript.sty deleted file mode 100644 index bda14e7c665bd90c6e2d361c2b6966e93a014528..0000000000000000000000000000000000000000 --- a/common/pgscript.sty +++ /dev/null @@ -1,133 +0,0 @@ -% pgscript.sty - LaTeX Settings for Lecture Notes -% Copyright (C) 2012, 2015, 2017 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -\usepackage{amsfonts} -\usepackage[colorlinks,allcolors=blue]{hyperref} -\usepackage[british,german]{babel} % Yes, really "german" and not "ngerman". -\usepackage[utf8]{luainputenc} % Without this, umlauts are broken. Weird. -\usepackage{microtype} -\usepackage[T1]{fontenc} -\usepackage{times} -\usepackage{helvet} -\renewcommand*\familydefault{\sfdefault} -\usepackage{graphicx} -\usepackage{ifluatex} -\usepackage{xcolor} -\usepackage{enumerate} - -%% Repair kerning: Automatically insert "\kern{-0.15em}" between "//" % (in URLs). -%% PG20151206: This seems unnecessary here. Maybe due to \sf? -%\ifluatex -%\directlua{ -% local glyph = node.id ("glyph") -% local function my_kerning (head) -% for t in node.traverse (head) do -% if t.id == glyph and t.char == 47 then -% if t.next -% and t.next.next -% and t.next.next.id == glyph -% and t.next.next.char == 47 then -% local k = node.new ("kern") -% k.kern = tex.sp ("-0.15em") -% k.next = t.next -% k.prev = t -% t.next.prev = k -% t.next = k -% end -% end -% end -% node.kerning (head) -% end -% luatexbase.add_to_callback ("kerning", my_kerning, "URL kerning") -%} -%\fi - -\definecolor{blendedblue}{rgb}{0.2,0.2,0.7} -\definecolor{darkgreen}{rgb}{0.0,0.3,0.0} -\definecolor{darkred}{rgb}{0.7,0.0,0.0} -\definecolor{darkgrey}{rgb}{0.4,0.4,0.4} - -\newcommand{\breath}{\bigskip\goodbreak} -\newcommand{\subsubsubsection}[1]{\breath\par\textbf{#1}\nopagebreak\par} -\newenvironment{experts}{\color{darkgrey}}{} -\newenvironment{whiteout}{\definecolor{darkgreen}{rgb}{1.0,1.0,1.0}% - \definecolor{darkred}{rgb}{1.0,1.0,1.0}% - \color{white}}{} -\newenvironment{hint}{% - \begin{quote} - \addtolength{\leftskip}{0.6cm}% -% \includegraphics[width=1cm]{Zeichen_101_-_Gefahrstelle,_StVO_1970.pdf} - \makebox(0,0)[r]{\includegraphics[width=1cm]{Zeichen_101_-_Gefahrstelle,_StVO_1970.pdf}\hspace*{0.5em}}% -% \hangindent 1.2cm -% \hangafter 2 - \bfseries -% Foobar Foobar Foobar Foobar Foobar Foobar Foobar Foobar -% Foobar Foobar Foobar Foobar Foobar Foobar Foobar Foobar -% Foobar Foobar Foobar Foobar Foobar Foobar Foobar Foobar -% Foobar Foobar Foobar Foobar Foobar Foobar Foobar Foobar - \ignorespaces -}{% - \end{quote} -} -\urlstyle{sf} -\newcommand{\file}[1]{{\color{blendedblue}#1}} -\newcommand{\textarrow}{{\boldmath $\longrightarrow$}} -\newcommand{\arrowitem}{\item[\textarrow]} -\newcommand{\newterm}[1]{\emph{\color{darkgreen}#1}} - -\newcounter{exercise} -\newcommand{\exercise}[1]{\addtocounter{exercise}{1}\subsection*{Aufgabe \arabic{exercise}: #1}} -\newcommand{\solution}{\subsubsection*{Lösung}} - -\newcommand{\gitfile}[3]{\href{https://gitlab.cvh-server.de/pgerwinski/#1/raw/master/#2/#3}{\file{#3}}} - -\usepackage{listings} -\lstset{basicstyle=\color{blendedblue}, - language=C, - captionpos=b, - gobble=4, - xleftmargin=1em, - columns=fullflexible, - moredelim=**[is][\color{red}]{¡}{¿}} -\lstdefinestyle{numbered}{xleftmargin=2em, - numbers=left, - numberstyle=\footnotesize\color{gray}} -\lstdefinestyle{terminal}{basicstyle=\ttfamily\color{darkgreen}, - language={}, - columns=fixed, - moredelim=**[is][\color{darkred}]{¡}{¿}, - moredelim=**[is][\color{blendedblue}]{°}{¿}, - moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}} -\lstdefinestyle{cmd}{basicstyle=\ttfamily\color{darkred}, - language={}, - columns=fixed, - moredelim=**[is][\color{darkgreen}]{¡}{¿}, - moredelim=**[is][\color{blendedblue}]{°}{¿}, - moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}} - -\setlength{\textwidth}{16.5cm} -\setlength{\textheight}{26.0cm} -\setlength{\hoffset}{-1.5cm} -\setlength{\voffset}{-3.0cm} -\setlength{\parindent}{0pt} -\setlength{\parskip}{\medskipamount} -\setlength{\unitlength}{1cm} diff --git a/common/pgslides.sty b/common/pgslides.sty deleted file mode 100644 index 9a019ce99f03d27a17942facc56fe2145f46b6a6..0000000000000000000000000000000000000000 --- a/common/pgslides.sty +++ /dev/null @@ -1,233 +0,0 @@ -% pgslides.sty - LaTeX Settings for Lecture Slides -% Copyright (C) 2012, 2013 Peter Gerwinski -% -% This document is free software: you can redistribute it and/or -% modify it either under the terms of the Creative Commons -% Attribution-ShareAlike 3.0 License, or under the terms of the -% GNU General Public License as published by the Free Software -% Foundation, either version 3 of the License, or (at your option) -% any later version. -% -% This document is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this document. If not, see <http://www.gnu.org/licenses/>. -% -% You should have received a copy of the Creative Commons -% Attribution-ShareAlike 3.0 Unported License along with this -% document. If not, see <http://creativecommons.org/licenses/>. - -\usepackage{amsfonts} -\usepackage[british,german]{babel} % Yes, really "german" and not "ngerman". -\usepackage[utf8]{luainputenc} % Without this, umlauts are broken. Weird. -\usepackage{microtype} -\usepackage[T1]{fontenc} -\usepackage{times} -\usepackage{helvet} -\renewcommand*\familydefault{\sfdefault} -\usepackage{graphicx} -\usepackage{pstricks} - -\hypersetup{colorlinks,allcolors=blue} - -%% @@@ Not necessary for slides. Why??? -%% Repair kerning: Automatically insert "\kern{-0.15em}" between "//" % (in URLs). -%\directlua{ -% local glyph = node.id ("glyph") -% local function my_kerning (head) -% for t in node.traverse (head) do -% if t.id == glyph and t.char == 47 then -% if t.next -% and t.next.next -% and t.next.next.id == glyph -% and t.next.next.char == 47 then -% local k = node.new ("kern") -% k.kern = tex.sp ("-0.15em") -% k.next = t.next -% k.prev = t -% t.next.prev = k -% t.next = k -% end -% end -% end -% node.kerning (head) -% end -% luatexbase.add_to_callback ("kerning", my_kerning, "URL kerning") -%} - -\usetheme{default} -\usefonttheme{structurebold} -\setbeamertemplate{navigation symbols}{} -\setbeamersize{text margin left = 0.3cm, text margin right = 0.2cm} -\setbeamertemplate{itemize item}{$\bullet$} -\setbeamertemplate{itemize subitem}{--} -\setbeamerfont{itemize/enumerate subbody}{size=\normalsize} -\setbeamerfont{itemize/enumerate subsubbody}{size=\normalsize} -\setbeamercolor{footline}{fg=gray} - -\newcommand{\sep}{~$\cdot$~} - -\newif\ifminimalistic -\minimalistictrue - -\institute[Hochschule Bochum\sep CVH]{% - \makebox(0,0.005)[tl]{\includegraphics[scale=0.72]{logo-hochschule-bochum-cvh-text-v2.pdf}}\hfill - \makebox(0,0)[tr]{\includegraphics[scale=0.5]{logo-hochschule-bochum.pdf}}% -} - -\setbeamertemplate{headline}{% - \leavevmode - \hbox to \textwidth{% - \ifminimalistic - \strut\hfill - \else - \rule{0pt}{5.7pt}% - \hspace*{8.55pt}\insertinstitute\hspace*{5.7pt}% - \raisebox{-30pt}{\rule{0pt}{1pt}}% - \fi - }% - \vskip0pt% -} - -\iffalse - \setbeamertemplate{footline}{} -\else - \setbeamertemplate{footline}{% - \leavevmode - \hbox to \textwidth{% - \usebeamercolor{footline}% - \usebeamerfont{footline}% - \ifminimalistic - \strut\hfill - \else - \,\insertshorttitle\sep - \insertshortauthor\sep - \insertshortinstitute\sep - \insertshortdate\hfill - \fi - \insertframenumber/\inserttotalframenumber - %Folie\,\insertframenumber\sep Seite\,\insertpagenumber\, - }% - \vskip0pt% - } -\fi - -\newcommand{\maketitleframe}{% - \ifminimalistic - \begin{frame}[t,plain] - \insertinstitute - \par\vfill - \begin{center} - {\LARGE\color{structure}\inserttitle\par}\bigskip\bigskip - {\large \insertauthor\par}\bigskip\medskip - \insertdate - \end{center} - \end{frame} - \else - \begin{frame} - \vfill - \begin{center} - {\LARGE\color{structure}\inserttitle\par}\bigskip\bigskip - {\large \insertauthor\par}\bigskip\medskip - \insertdate - \end{center} - \vfill - \end{frame} - \fi -} - -\definecolor{medgreen}{rgb}{0.0,0.5,0.0} -\definecolor{darkgreen}{rgb}{0.0,0.3,0.0} -\definecolor{lightred}{rgb}{1.0,0.7,0.7} -\definecolor{medred}{rgb}{0.5,0.0,0.0} -\definecolor{bored}{rgb}{0.89,0.0,0.098} -\definecolor{lightgray}{rgb}{0.85,0.85,0.85} -\definecolor{orange}{rgb}{1.0,0.5,0.0} -\definecolor{darkgray}{rgb}{0.4,0.4,0.4} - -\newenvironment{experts}{\color{darkgray}}{} - -\usepackage{listings} -\lstset{basicstyle=\color{structure}, - language=C, - captionpos=b, - gobble=4, - columns=fullflexible, - aboveskip=0pt, - belowskip=0pt, - moredelim=**[is][\color{structure}]{¡}{¿}, - moredelim=**[is][\only<2->{\color{structure}}]{²}{¿}, - moredelim=**[is][\only<3->{\color{structure}}]{³}{¿}, - moredelim=**[is][\only<4->{\color{structure}}]{°}{¿}, - moredelim=**[is][\only<5->{\color{structure}}]{¤}{¿}, - moredelim=**[is][\only<6->{\color{structure}}]{¢}{¿}, - moredelim=**[is][\only<7->{\color{structure}}]{æ}{¿}, - moredelim=**[is][\only<8->{\color{structure}}]{ø}{¿}} -\lstdefinestyle{terminal}{basicstyle=\ttfamily\color{darkgreen}, - language={}, - columns=fixed, - moredelim=**[is][\color{red}]{¡}{¿}, - moredelim=**[is][\color{blendedblue}]{°}{¿}, - moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}} -\lstdefinestyle{cmd}{basicstyle=\ttfamily\color{red}, - language={}, - gobble=2, - columns=fixed, - moredelim=**[is][\color{darkgreen}]{¡}{¿}, - moredelim=**[is][\color{structure}]{°}{¿}, - moredelim=**[is][\sffamily\it\lstset{columns=fullflexible}]{²}{¿}} -\lstdefinestyle{shy}{basicstyle=\color{lightgray}} - -\setcounter{topnumber}{3} -\renewcommand\topfraction{0.7} -\setcounter{bottomnumber}{3} -\renewcommand\bottomfraction{0.7} -\setcounter{totalnumber}{5} -\renewcommand\textfraction{0.1} -\renewcommand\floatpagefraction{0.9} - -\setlength{\unitlength}{1cm} - -\newcommand{\protectfile}[1]{#1} -\urlstyle{sf} -\newcommand{\file}[1]{{\color{structure}\protectfile{#1}}} -\newcommand{\textarrow}{{\boldmath $\longrightarrow$}} -\newcommand{\arrowitem}{\item[\textarrow]} -\newcommand{\newterm}[1]{\emph{\color{darkgreen}#1}} -\newcommand{\BIGskip}{\vspace{1cm}} -\newcommand{\shy}{\color{lightgray}} -\newcommand{\hot}{\color{red}} -\newcommand{\shyhot}{\color{lightred}} - -\newcommand{\sectionnonumber}[1]{\section{#1}\addtocounter{section}{-1}} - -\def\showsectionnonumber{\hbox{\Large\color{structure}\bf - \vtop{\secname}\par}\bigskip} - -\newcommand{\nosectionnonumber}[1]{\gdef\nosectionnonumbername{#1}} - -\def\shownosectionnonumber{\hbox{\Large\color{structure}\bf - \vtop{\nosectionnonumbername}\par}\bigskip} - -\def\showsection{\hbox{\Large\color{structure}\bf - \vtop{\hbox{\arabic{section}}}\kern1em% - \vtop{\secname}\par}\bigskip} - -\newcommand{\subsectionnonumber}[1]{\subsection{#1}\addtocounter{subsection}{-1}} - -\def\showsubsectionnonumber{{\large\color{structure}\bf\subsecname\par}\bigskip} - -\def\showsubsection{\hbox{\large\color{structure}\bf - \vtop{\hbox{\arabic{section}.\arabic{subsection}}}\kern1em% - \vtop{\subsecname}\par}\bigskip} - -\newcommand{\subsubsectionnonumber}[1]{\subsubsection{#1}\addtocounter{subsubsection}{-1}} - -\def\showsubsubsectionnonumber{{\normalsize\color{structure}\bf\subsubsecname\par}\bigskip} - -\def\showsubsubsection{\hbox{\normalsize\color{structure}\bf - \vtop{\hbox{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}}}\kern1em% - \vtop{\subsubsecname}\par}\bigskip} diff --git a/common/philosophenproblem.jpg b/common/philosophenproblem.jpg deleted file mode 100644 index e912745d043064ee5d4efc2c5cf58d6fdfdf138d..0000000000000000000000000000000000000000 Binary files a/common/philosophenproblem.jpg and /dev/null differ diff --git a/common/quadrocopter.jpg b/common/quadrocopter.jpg deleted file mode 100644 index b430e8d3ba70e518ef365bc101f7d4b8418b4d2b..0000000000000000000000000000000000000000 Binary files a/common/quadrocopter.jpg and /dev/null differ diff --git a/common/rp6.jpg b/common/rp6.jpg deleted file mode 100644 index 1695afb690b4fb78878236a1efd0d5c6328370f4..0000000000000000000000000000000000000000 Binary files a/common/rp6.jpg and /dev/null differ diff --git a/common/sfmath.sty b/common/sfmath.sty deleted file mode 100644 index 566070f49e04a4c4357691d33272da82c37337b4..0000000000000000000000000000000000000000 --- a/common/sfmath.sty +++ /dev/null @@ -1,469 +0,0 @@ -% sfmath.sty, copyright 2001-2007 by Olaf Dietrich (olaf@dtrx.de) -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.3 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3 or later is part of all distributions of LaTeX -% version 2005/12/01 or later. -% -% This work has the LPPL maintenance status `maintained'. -% -% The Current Maintainer of this work is Olaf Dietrich. -% -% This work consists of the file sfmath.sty. - - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{sfmath}[2007/08/27 v0.8 sans serif maths] - - -% This is a simple package for sans serif maths in documents. -% -% Usage: \usepackage{sfmath} or \usepackage[OPTIONS]{sfmath} -% -% After including the package sfmath.sty, all maths of the current -% document is displayed with sans serif fonts; there is no way to -% switch back to the original behavior. -% -% The default sans serif font for maths is the sans serif font -% selected for sans serif text (i.e., \sfdefault) when sfmath.sty -% is loaded. Therefore, you must include sfmath.sty after having -% changed \sfdefault, e.g., by a package such as helvet.sty or -% manually. Alternatively, use one of the font options described -% below (cm, helvet, cmbright, tx, px, or lm) in order to override -% the default sans serif font. -% -% Package OPTIONS (options marked with (+) are experimental): -% -% * slantedGreek: for slanted uppercase Greek letters -% -% * cm: use Computer Modern (cmss) for maths (explicitly) -% * helvet: use Postscript Helvetica (phv) for maths (explicitly) -% * cmbright: use CM-Bright fonts (cmbr) for maths (explicitely) -% * tx: use Postscript txfonts (tx) for maths (explicitly) -% * px: use Postscript pxfonts (tx) for maths (explicitly) -% * lm: use Latin Modern (lmss) for maths (explicitly) (+) -% -% * T1experimental: use T1 font encoding for standard maths (+) -% * AlphT1experimental: use T1 font encoding for \math*{...} commands (+) -% -% * mathrmOrig: do not change the behavior of the \mathrm command -% * mathbfOrig: do not change the behavior of the \mathbf command -% * mathitOrig: do not change the behavior of the \mathit command -% * mathsfOrig: do not change the behavior of the \mathsf command -% -% (+): Known limitations of experimental options: -% T1experimental produces a warning about the encoding of the -% operators font. -% AlphT1experimental DOES NOT WORK with uppercase Greek letters -% within the \math*{...} command! -% These options should only be used with the ec fonts. -% -% lm includes T1experimental and AlphT1experimental with the -% limitations mentioned above. -% -% RECOMMENDATION: -% use the fix-cm package instead of the experimental -% T1 options: with fix-cm.sty, the chosen ec fonts -% harmonize much better with the cm sans serif math fonts. -% Add \RequirePackage{fix-cm} _before_ \documentclass{...}. -% -% -% Some new macros are defined by sfmath.sty: -% -% * \mathsl{...}: A new math alphabet that is by default identical -% with \mathit{...}; useful in combination with the option mathitOrig. -% -% * \upOmega, \upDelta: upright versions of \Omega and \Delta; -% useful when the option slantedGreek is selected. -% -% -% More documentation can currently be found at: -% <URL:http://dtrx.de/od/tex/sfmath.html> - - -% CHANGES: -% -% v0.8: -% -% * Update documentation and add license details for CTAN upload. -% -% -% v0.7: -% -% * Add (experimental) support for latin modern (lmodern) fonts. -% -% -% v0.6: -% -% * Add some artificial intelligence to use slanted bold letters -% if available (e.g., for phv, txfonts, or pxfonts). -% Add options to select txfonts, pxfonts, and cmbright (probably -% not very useful) explicitely. -% (Thanks to Alberto Lusiani who asked for slanted bold letters.) -% -% -% v0.5: -% -% * Add experimental options for T1 font encoding of maths fonts. -% Using these options can be useful with ec fonts which look -% slightly different from the standard cm maths fonts (especially -% at large font size). About limitations see above. -% -% -% v0.4: -% -% * Add \upDelta, \upOmega command (to be a little more compatible -% with other packages that provide the slantedGreek option) -% -% -% v0.3: -% -% * Add sans serif shapes for "," and ".", "\ldotp" -% -% * Modified documentation -% -% -% v0.2: -% -% * New option slantedGreek for slanted greek capitals -% -% * Options helvet and cm to select explicitly the sans serif font -% for maths. Without any of these options, the current \sfdefault -% is chosen. -% -% * Options mathxxOrig: don't change the alphabet command \mathxx; -% available for \mathrm, \mathbf, \mathit, and \mathsf -% -% * Provide dotlessi and dotlessj (if available) -% - - -% BUGS/LIMITATIONS/PROBLEMS: -% -% * Functionality is limited by the intention to work without -% additionally defined (virtual) fonts; instead, only standard -% fonts are used. -% -% * The font metrics are not adjusted to maths usage (this may -% result in typographically unsatisfying results). -% -% * In many constellations with Postscript fonts (helvet.sty, -% pslatex.sty, ...) the upper-case greek letters are not chosen -% correctly within \mathrm, \mathbf, \mathit, ... (because -% they should be part of OT1-encoded fonts but are not included -% in these standard postscript fonts). -% -% * Bold math symbols are not always available (e.g. with pslatex.sty) -% or at least not slanted (e.g. with cmss fonts), so better don't -% use bold maths with this package. (This has been partially improved -% in version 0.6.) -% -% * There is a visual difference between the ec sans serif text fonts -% and the cm sans serif maths fonts, especially at larger font sizes. -% The fix-cm package might help to reduce the ugliness of the ec -% sans serif fonts and the differences between the ec text fonts -% and the cm math fonts. -% Alternatively, the experimental options T1experimental and -% AlphT1Experimental might help by using the ec fonts for maths as well. -% -% * The txfonts and pxfonts are reported to have several deficiencies -% with respect to font metrics and macro implementation; using -% these fonts is not recommended by the package author. -% -% * The set symbols \mathbb{N} or \mathbbm{N} (from bbm.sty) are not -% changed. You might like to use \mathbbmss{N} (from bbm.sty). -% -% * Some symbols have serifish shapes (\sum, \prod, probably more) and -% are not changed. -% -% * Lower-case greek letters are not available in sans serif shape -% (they don't have real serifs, but cannot be expected to harmonize -% with the sans serif latin letters). -% -% -% TODO: -% -% * Improve documentation. -% -% * Provide LaTeX .ins/.dtx files instead of naked .sty file. -% - - -% HERE WE GO: - -% Declare options and defaults and process options - -\DeclareOption{slantedGreek}{% - \renewcommand{\greek@shape}{sl}% - \renewcommand{\greek@bold@shape}{\greek@bold@sl}% -} - -\DeclareOption{cm}{\renewcommand{\math@sfdefault}{cmss}} -\DeclareOption{lm}{\renewcommand{\math@sfdefault}{lmss}} -\DeclareOption{helvet}{\renewcommand{\math@sfdefault}{phv}} -\DeclareOption{cmbright}{\renewcommand{\math@sfdefault}{cmbr}} -\DeclareOption{tx}{\renewcommand{\math@sfdefault}{txss}} -\DeclareOption{px}{\renewcommand{\math@sfdefault}{pxss}} - -\DeclareOption{T1experimental}{\renewcommand{\math@encoding}{T1}} -\DeclareOption{AlphT1experimental}{\renewcommand{\math@lph@encoding}{T1}} - -\DeclareOption{mathrmOrig}{\renewcommand{\mathrm@lph}{cmr}} -\DeclareOption{mathbfOrig}{\renewcommand{\mathbf@lph}{cmr}} -\DeclareOption{mathitOrig}{\renewcommand{\mathit@lph}{cmr}} -\DeclareOption{mathsfOrig}{\renewcommand{\mathsf@lph}{cmss}} - - -\newcommand{\math@sfdefault}{\sfdefault} -\newcommand{\math@encoding}{OT1} -\newcommand{\math@lph@encoding}{OT1} - -\newcommand{\mathrm@lph}{\math@sfdefault} -\newcommand{\mathbf@lph}{\math@sfdefault} -\newcommand{\mathit@lph}{\math@sfdefault} -\newcommand{\mathsf@lph}{\math@sfdefault} - - -% \math@sfGreek: Font for capital greeks: cmss or other? -% \greek@shape: Capital greeks: normal or slanted? [slantedGreek] -% \greek@bold@shape: Bold capital greeks: normal or slanted? [slantedGreek] -% \greek@bold@sl: Bold capital greeks: "sl" if slanted possible -% -% \mathnormal@bold@shape: Bold letters: normal or slanted? (always bold) -% \mathit@bold@series: Bold \mathit (\mathsl): medium or bold? (always slanted) - -\newcommand{\math@sfGreek}{cmss} -\newcommand{\greek@shape}{n} -\newcommand{\greek@bold@shape}{n} -\newcommand{\greek@bold@sl}{n} -\newcommand{\mathnormal@bold@shape}{n} -\newcommand{\mathit@bold@series}{m} - - - -\ProcessOptions - - - -% check the current value of \math@sfdefault - -\edef\tmp@sfdefault{\math@sfdefault} - -\def\tmp@compare{cmss} -\ifx\tmp@sfdefault\tmp@compare - % \sfdefault is cmss - % no slanted bold letters - % no slanted bold capital Greeks - \renewcommand{\math@sfGreek}{cmss} - \renewcommand{\greek@bold@sl}{n} - \renewcommand{\mathnormal@bold@shape}{n} - \renewcommand{\mathit@bold@series}{m} -\fi - -\def\tmp@compare{phv} -\ifx\tmp@sfdefault\tmp@compare - % \sfdefault is phv (helvet.sty) - % slanted bold letters - % no capital Greeks - \renewcommand{\math@sfGreek}{cmss} - \renewcommand{\greek@bold@sl}{n} - \renewcommand{\mathnormal@bold@shape}{sl} - \renewcommand{\mathit@bold@series}{bx} -\fi - -\def\tmp@compare{txss} -\ifx\tmp@sfdefault\tmp@compare - % \sfdefault is txss (txfonts.sty) - % slanted bold letters - % slanted bold capital Greeks - \renewcommand{\math@sfGreek}{txss} - \renewcommand{\greek@bold@sl}{sl} - \renewcommand{\mathnormal@bold@shape}{sl} - \renewcommand{\mathit@bold@series}{bx} -\fi - -\def\tmp@compare{pxss} -\ifx\tmp@sfdefault\tmp@compare - % \sfdefault is pxss (pxfonts.sty) - % slanted bold letters - % slanted bold capital Greeks - \renewcommand{\math@sfGreek}{pxss} - \renewcommand{\greek@bold@sl}{sl} - \renewcommand{\mathnormal@bold@shape}{sl} - \renewcommand{\mathit@bold@series}{bx} -\fi - -\def\tmp@compare{cmbr} -\ifx\tmp@sfdefault\tmp@compare - % \sfdefault is cmbr (cmbright.sty) - % no slanted bold letters - % no slanted bold capital Greeks - \renewcommand{\math@sfGreek}{cmbr} - \renewcommand{\greek@bold@sl}{n} - \renewcommand{\mathnormal@bold@shape}{n} - \renewcommand{\mathit@bold@series}{m} -\fi - -\def\tmp@compare{lmss} -\ifx\tmp@sfdefault\tmp@compare - % \sfdefault is lmss (lmodern.sty sans serif) - % T1 encoding only - % slanted bold letters - % no slanted bold capital Greeks - \renewcommand{\math@encoding}{T1} - \renewcommand{\math@lph@encoding}{T1} - \renewcommand{\math@sfGreek}{cmss} - \renewcommand{\greek@bold@sl}{n} - \renewcommand{\mathnormal@bold@shape}{sl} - \renewcommand{\mathit@bold@series}{bx} -\fi - - - -% Change font for digits and "operators" (\sin, \exp, ...) -% to default sans serif font - -\SetSymbolFont{operators}{normal}{\math@encoding}{\math@sfdefault}{m}{n} -\SetSymbolFont{operators}{bold}{\math@encoding}{\math@sfdefault}{bx}{n} - - -% Most special math symbols remain unmodified (and many of those -% don't have serifs); however all letters (A-Z, a-z) are -% explicitely changed to the sans serif version (again -% default sans serif font). -% -% Unfortunately, there is no standard slanted+bold sans serif font -% available (as Postscript Type 1 font), so try an upright -% version (may be better than nothing). - -\DeclareSymbolFont{SFMath}{\math@encoding}{\math@sfdefault}{m}{sl} -\SetSymbolFont{SFMath}{normal}{\math@encoding}{\math@sfdefault}{m}{sl} -\SetSymbolFont{SFMath}{bold}{\math@encoding}{\math@sfdefault}{bx}{\mathnormal@bold@shape} -\DeclareMathSymbol{A}{\mathalpha}{SFMath}{`A} -\DeclareMathSymbol{B}{\mathalpha}{SFMath}{`B} -\DeclareMathSymbol{C}{\mathalpha}{SFMath}{`C} -\DeclareMathSymbol{D}{\mathalpha}{SFMath}{`D} -\DeclareMathSymbol{E}{\mathalpha}{SFMath}{`E} -\DeclareMathSymbol{F}{\mathalpha}{SFMath}{`F} -\DeclareMathSymbol{G}{\mathalpha}{SFMath}{`G} -\DeclareMathSymbol{H}{\mathalpha}{SFMath}{`H} -\DeclareMathSymbol{I}{\mathalpha}{SFMath}{`I} -\DeclareMathSymbol{J}{\mathalpha}{SFMath}{`J} -\DeclareMathSymbol{K}{\mathalpha}{SFMath}{`K} -\DeclareMathSymbol{L}{\mathalpha}{SFMath}{`L} -\DeclareMathSymbol{M}{\mathalpha}{SFMath}{`M} -\DeclareMathSymbol{N}{\mathalpha}{SFMath}{`N} -\DeclareMathSymbol{O}{\mathalpha}{SFMath}{`O} -\DeclareMathSymbol{P}{\mathalpha}{SFMath}{`P} -\DeclareMathSymbol{Q}{\mathalpha}{SFMath}{`Q} -\DeclareMathSymbol{R}{\mathalpha}{SFMath}{`R} -\DeclareMathSymbol{S}{\mathalpha}{SFMath}{`S} -\DeclareMathSymbol{T}{\mathalpha}{SFMath}{`T} -\DeclareMathSymbol{U}{\mathalpha}{SFMath}{`U} -\DeclareMathSymbol{V}{\mathalpha}{SFMath}{`V} -\DeclareMathSymbol{W}{\mathalpha}{SFMath}{`W} -\DeclareMathSymbol{X}{\mathalpha}{SFMath}{`X} -\DeclareMathSymbol{Y}{\mathalpha}{SFMath}{`Y} -\DeclareMathSymbol{Z}{\mathalpha}{SFMath}{`Z} -\DeclareMathSymbol{a}{\mathalpha}{SFMath}{`a} -\DeclareMathSymbol{b}{\mathalpha}{SFMath}{`b} -\DeclareMathSymbol{c}{\mathalpha}{SFMath}{`c} -\DeclareMathSymbol{d}{\mathalpha}{SFMath}{`d} -\DeclareMathSymbol{e}{\mathalpha}{SFMath}{`e} -\DeclareMathSymbol{f}{\mathalpha}{SFMath}{`f} -\DeclareMathSymbol{g}{\mathalpha}{SFMath}{`g} -\DeclareMathSymbol{h}{\mathalpha}{SFMath}{`h} -\DeclareMathSymbol{i}{\mathalpha}{SFMath}{`i} -\DeclareMathSymbol{j}{\mathalpha}{SFMath}{`j} -\DeclareMathSymbol{k}{\mathalpha}{SFMath}{`k} -\DeclareMathSymbol{l}{\mathalpha}{SFMath}{`l} -\DeclareMathSymbol{m}{\mathalpha}{SFMath}{`m} -\DeclareMathSymbol{n}{\mathalpha}{SFMath}{`n} -\DeclareMathSymbol{o}{\mathalpha}{SFMath}{`o} -\DeclareMathSymbol{p}{\mathalpha}{SFMath}{`p} -\DeclareMathSymbol{q}{\mathalpha}{SFMath}{`q} -\DeclareMathSymbol{r}{\mathalpha}{SFMath}{`r} -\DeclareMathSymbol{s}{\mathalpha}{SFMath}{`s} -\DeclareMathSymbol{t}{\mathalpha}{SFMath}{`t} -\DeclareMathSymbol{u}{\mathalpha}{SFMath}{`u} -\DeclareMathSymbol{v}{\mathalpha}{SFMath}{`v} -\DeclareMathSymbol{w}{\mathalpha}{SFMath}{`w} -\DeclareMathSymbol{x}{\mathalpha}{SFMath}{`x} -\DeclareMathSymbol{y}{\mathalpha}{SFMath}{`y} -\DeclareMathSymbol{z}{\mathalpha}{SFMath}{`z} - -\DeclareMathSymbol{\imath}{\mathalpha}{SFMath}{"10} -\DeclareMathSymbol{\jmath}{\mathalpha}{SFMath}{"11} - - -% The symbols ",", ".", and "\ldotp" should be sans serif -% but upright. - -\DeclareSymbolFont{SFMathUp}{\math@encoding}{\math@sfdefault}{m}{n} -\SetSymbolFont{SFMathUp}{normal}{\math@encoding}{\math@sfdefault}{m}{n} -\SetSymbolFont{SFMathUp}{bold}{\math@encoding}{\math@sfdefault}{bx}{n} -\DeclareMathSymbol{,}{\mathpunct}{SFMathUp}{`,} -\DeclareMathSymbol{.}{\mathord}{SFMathUp}{`.} -\DeclareMathSymbol{\ldotp}{\mathord}{SFMathUp}{`.} - - -% Take capital greek letters from cmss or [tp]xss; other sans serif fonts -% like helvetica don't have capital greeks, so here cmss is -% taken instead of \sfdefault. Unfortunately, this does not work -% within the alphabet commands \mathrm, \mathsf, ... - -\DeclareSymbolFont{SFMathGreek}{OT1}{\math@sfGreek}{m}{\greek@shape} -\SetSymbolFont{SFMathGreek}{normal}{OT1}{\math@sfGreek}{m}{\greek@shape} -\SetSymbolFont{SFMathGreek}{bold}{OT1}{\math@sfGreek}{bx}{\greek@bold@shape} - -\DeclareMathSymbol{\Gamma}{\mathalpha}{SFMathGreek}{"00} -\DeclareMathSymbol{\Delta}{\mathalpha}{SFMathGreek}{"01} -\DeclareMathSymbol{\Theta}{\mathalpha}{SFMathGreek}{"02} -\DeclareMathSymbol{\Lambda}{\mathalpha}{SFMathGreek}{"03} -\DeclareMathSymbol{\Xi}{\mathalpha}{SFMathGreek}{"04} -\DeclareMathSymbol{\Pi}{\mathalpha}{SFMathGreek}{"05} -\DeclareMathSymbol{\Sigma}{\mathalpha}{SFMathGreek}{"06} -\DeclareMathSymbol{\Upsilon}{\mathalpha}{SFMathGreek}{"07} -\DeclareMathSymbol{\Phi}{\mathalpha}{SFMathGreek}{"08} -\DeclareMathSymbol{\Psi}{\mathalpha}{SFMathGreek}{"09} -\DeclareMathSymbol{\Omega}{\mathalpha}{SFMathGreek}{"0A} - - -\DeclareSymbolFont{SFMathUpGreek}{OT1}{\math@sfGreek}{m}{n} -\SetSymbolFont{SFMathUpGreek}{normal}{OT1}{\math@sfGreek}{m}{n} -\SetSymbolFont{SFMathUpGreek}{bold}{OT1}{\math@sfGreek}{bx}{n} - -\DeclareMathSymbol{\upDelta}{\mathalpha}{SFMathUpGreek}{"01} -\DeclareMathSymbol{\upOmega}{\mathalpha}{SFMathUpGreek}{"0A} - - -% Define new behavior for math alphabet commands - - -\SetMathAlphabet{\mathnormal}{normal}{\math@lph@encoding}{\math@sfdefault}{m}{sl} -\SetMathAlphabet{\mathnormal}{bold}{\math@lph@encoding}{\math@sfdefault}{bx}{\mathnormal@bold@shape} - -\SetMathAlphabet{\mathrm}{normal}{\math@lph@encoding}{\mathrm@lph}{m}{n} -\SetMathAlphabet{\mathrm}{bold}{\math@lph@encoding}{\mathrm@lph}{bx}{n} - -\SetMathAlphabet{\mathbf}{normal}{\math@lph@encoding}{\mathbf@lph}{bx}{n} -\SetMathAlphabet{\mathbf}{bold}{\math@lph@encoding}{\mathbf@lph}{bx}{n} - -\SetMathAlphabet{\mathit}{normal}{\math@lph@encoding}{\mathit@lph}{m}{sl} -\SetMathAlphabet{\mathit}{bold}{\math@lph@encoding}{\mathit@lph}{\mathit@bold@series}{sl} - -\SetMathAlphabet{\mathsf}{normal}{\math@lph@encoding}{\mathsf@lph}{m}{n} -\SetMathAlphabet{\mathsf}{bold}{\math@lph@encoding}{\mathsf@lph}{bx}{n} - - - -% Define new math alphabet command \mathsl - -\DeclareMathAlphabet{\mathsl}{\math@lph@encoding}{\math@sfdefault}{m}{sl} -\SetMathAlphabet{\mathsl}{bold}{\math@lph@encoding}{\math@sfdefault}{\mathit@bold@series}{sl} - - -\endinput diff --git a/common/xbee.jpg b/common/xbee.jpg deleted file mode 100644 index 9bf9d4b767646bf05fb6b0b61a82b2fa7342eec0..0000000000000000000000000000000000000000 Binary files a/common/xbee.jpg and /dev/null differ diff --git a/es-slides-2018ws.pdf b/es-slides-2018ws.pdf deleted file mode 100644 index 4ebec3aaed5df37c81a5eff63df75da30f2fc5f5..0000000000000000000000000000000000000000 Binary files a/es-slides-2018ws.pdf and /dev/null differ diff --git a/update b/update deleted file mode 100755 index 29efa64d5b6706ed18844a382fa26426f9659d34..0000000000000000000000000000000000000000 --- a/update +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash - -sem=2018ws -course=es - -date_mask="201[89][01][0-9][0-3][0-9]" -time_mask="[0-2][0-9][0-5][0-9][0-5][0-9]" -base_url="https://gitlab.cvh-server.de/pgerwinski/$course/raw/master/" -pattern="README:" - -if pdfjam --papersize "{362.835pt,272.126pt}" -o es-slides-$sem.pdf \ - $date_mask/es-$date_mask.pdf > /dev/null 2> pdfjam.err; then - rm pdfjam.err -else - cat pdfjam.err - rm pdfjam.err - exit 1 -fi - -readme_old=README.md -readme=README-NEW.md - -collect () -{ - if [ "$1" = "--no-date" ]; then - show_date=false - shift - else - show_date=true - fi - headline="$1"; shift - source_suffix="$1"; shift - target_suffix="$1"; shift - underline=$(echo "$headline" | sed -e 's/./-/g') - echo >> $readme - echo "$headline" >> $readme - echo "$underline" >> $readme - for f in "$@"; do - description=$(grep -m 1 "$pattern" "$f" | sed -e "s/^.*$pattern *//") - if $show_date; then - y=$(echo $f | cut -b 1-4) - m=$(echo $f | cut -b 5-6) - d=$(echo $f | cut -b 7-8) - date="$d.$m.$y: " - else - date="" - fi - url="$base_url"$(echo $f | sed -e "s/\.$source_suffix$/.$target_suffix/") - echo " * [$date$description]($url)" >> $readme - done -} - -cat > $readme << EOF -Eingebettete Systeme -==================== - -Lehrveranstaltung im Wintersemester 2018/19 -Hochschule Bochum, Campus Velbert/Heiligenhaus -Prof. Dr. rer. nat. Peter Gerwinski - -Copyright © 2012–2018 Peter Gerwinski - -**Diese Lehrmaterialien sind freie Software.** -Sie dürfen diese gemäß den jeweils angegebenen Lizenzen -([CC-BY-SA 3.0](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/CC-BY-SA-3.0), -[GNU GPL 3+](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/GNU-GPL-3), -[modified BSD License](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/BSD-MODIFIED)) -studieren, kopieren, modifizieren und/oder weitergeben. -Für Details siehe [common/README](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/README). -EOF - -#collect "Vortragsfolien:" tex pdf $date_mask/es-$date_mask.tex $date_mask/verschluesselung-$date_mask.tex -collect "Vortragsfolien:" tex pdf $date_mask/es-$date_mask.tex - -cat >> $readme << EOF - * [alle in 1 Datei](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/es-slides-2018ws.pdf) -EOF - -#collect "Übungsaufgaben:" tex pdf $date_mask/es-uebung-$date_mask.tex -collect "Tafelbilder:" txt jpg $date_mask/photo-$date_mask-$time_mask.txt -#collect --no-date "Praktikumsunterlagen:" tex pdf $date_mask/es-$sem-p[1-4].tex - -cat >> $readme << EOF - -Literatur: ----------- - * [Skript: Netzwerktechnik](http://www.peter.gerwinski.de/download/net-2013ss.tar.gz] - -Original-Materialien einschließlich Beispiel-Programme und LaTeX-Quelltexte: ----------------------------------------------------------------------------- - * [common – gemeinsame Dateien für Skript und Vortragsfolien](https://gitlab.cvh-server.de/pgerwinski/es/tree/master/common) - * [201????? – Vortragsfolien und Beispiele](https://gitlab.cvh-server.de/pgerwinski/es/tree/master) - * [branch 2017ws – vollständige Lehrmaterialien vom Wintersemester 2017/18](https://gitlab.cvh-server.de/pgerwinski/es/tree/2017ws) - - -Embedded Systems -================ - -Course in winter semester 2018–19 -Bochum University of Applied Sciences, Campus Velbert/Heiligenhaus -Prof. Dr. rer. nat. Peter Gerwinski - -Copyright © 2012–2018 Peter Gerwinski - -**These teaching materials are Free Software.** -You may study, copy, modify, and/or distribute them -according to their respective licences -([CC-BY-SA 3.0](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/CC-BY-SA-3.0), -[GNU GPL 3+](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/GNU-GPL-3), -[modified BSD License](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/BSD-MODIFIED)). -See the file [common/README](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/common/README) for details. - - * [common – common files for lecture notes and slides](https://gitlab.cvh-server.de/pgerwinski/es/tree/master/common) - * [201????? – slides and examples](https://gitlab.cvh-server.de/pgerwinski/es/tree/master) - * [es-slides-2018ws.pdf – all slides in 1 file](https://gitlab.cvh-server.de/pgerwinski/es/raw/master/es-slides-2018ws.pdf) - * [branch 2017ws – complete teaching materials from winter semester 2017–18](https://gitlab.cvh-server.de/pgerwinski/es/tree/2017ws) -EOF - -if diff -wu $readme_old $readme; then - rm $readme -else - echo -n "Press ENTER to overwrite $readme_old, ^C to abort (keeping $readme) " - read junk - mv $readme $readme_old -fi