]> git.plutz.net Git - vhs_kurs/blobdiff - Tag_4.short
korrekturen
[vhs_kurs] / Tag_4.short
index a91f96c3eb889c1713e5fec4b2fd0ff1e4ffa03e..f11091f8a27a5355da61e1179ccfd1dd068cef44 100644 (file)
 [html
 [head [title VHS Linuxkurs]]
 [body
-  [footer Paul Hänsch | Linux Grundkurs | VHS Chemnitz]
+  [footer Paul Hänsch | Linux Grundkurs | VHS Leipzig]
 
 [slide [h1 VHS Linux Grundkurs - Teil 4]]
 
 [slide [h2 Themen]
   [ul
     [li Softwareinstallation mit Paketsystemen]
-    [li Anwendungsprogramme]
     [li Installation des Betriebssystems]
   ]
 ]
 
-[slide [h1 Was ist ein Paketsystem?]]
+[slide [h1 Softwareinstallation und Paketsysteme]]
+
+[slide [h2 Softwareinstallation]
+  [p [h3 Wir benutzen ein Paketsystem]
+    [img src="synaptic_1.jpg"]
+  ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
+  [ul .uncover
+  Die Vier Freiheiten:
+    [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
+    [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen]
+    [li [b Verbreiten:] das Programm weitergeben]
+    [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben]
+  ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
+  [ul
+  Die Vier Freiheiten:
+    [li [b Verwenden:] das Programm für jeglichen Zweck ausführen]
+    [li [b Verstehen:] die Funktionsweise des Programms untersuchen und eigenen Bedürfnissen anpassen [ul
+      [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]]
+    ]]
+    [li [b Verbreiten:] das Programm weitergeben]
+    [li [b Verbessern:] das Programm verbessern und diese Verbesserungen der Öffentlichkeit freigeben [ul
+      [li [em Der Zugang zum Quellcode ist dafür Voraussetzung]]
+    ]]
+  ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
+  [ul .uncover
+    [li Ein Softwareauthor schreibt [em Quellcode]]
+    [li Programm muss für ein Rechnersystem [em kompiliert/gebaut] werden]
+    [li Dies ist nicht Aufgabe des Authors (denn große Vielfalt von Plattformen, Hardware, etc.)]
+    [li Eine System-[em Distribution] ist eine Sammlung von Software[em paketen]]
+    [li Maintainer [em paketieren] Programme für eine Distribution]
+  ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
+  [ul .uncover
+    [li Distributionen stellen Softwarearchive bereit → [em Paketquellen] [ul
+      [li z.B. online zum Download]
+      [li z.B. als CD-Rom]
+    ]]
+    [li Verschiedene Distributionen benutzen verschiedene Arten Pakete zu bauen → [em Paketsysteme] [ul 
+      [li z.B. nur Archiv entpacken]
+      [li z.B. Quellcode automatisch bauen]
+      [li z.B. Dateisystemimage mounten]
+    ]]
+    [li Oft sind Pakete kryptographisch signiert]
+  ]
+]
+
+[slide [h2 Was ist ein Paketsystem?]
+  [ul
+    [li [strong Oft sind Pakete kryptographisch signiert]]
+    [li Einer der wichtigsten Sicherheitsaspekte von Linux-Systemen]
+  ]
+]
+
+[slide [h1 Doch nochmal zur Kryptographie]]
+
+[slide [h2 Was ist verschlüsselung?]
+  [p [h3 Der Klassiker: Symmetrische Verschlüsselung:]
+    [a href="https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem"
+      [img src="1200px-Orange_blue_symmetric_cryptography_de.svg.png" width="50%"]
+      [br] https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem]
+  ]
+]
+
+[slide [h2 Symmetrische Verschlüsselung]
+  [ul
+    [h3 Verschlüsseln:]
+    [li [pre ~$ echo "Geh Heim Dienst!" >datei]]
+    [li [pre ~$ gpg -c datei]]
+    [h3 Zum entschlüsseln:]
+    [li [pre ~$ gpg -d date.gpg]]
+    [p (Achtung: gpg merkt sich Passworte für kurze Zeit)]
+  ]
+]
+
+[slide [h1 Symmetrische Verschlüsselung -> Asymmetrische Verschlüsselung]]
+
+[slide [h2 Asymmetrische Verschlüsselung]
+  [p style="text-align: center;" 
+    [a href="https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem"
+      [img src="Orange_blue_public_private_keygeneration_de.svg.png" width="25%" ]
+      [img src="1200px-Orange_blue_public_key_cryptography_de.svg.png" width="60%" ]
+      [br] https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem
+    ]
+  ]
+]
+
+[slide [h1 Asymmetrische Verschlüsselung -> Signierung]
+  Wenn jeder eine Nachricht an mich verschlüsseln kann, wie kann ich dann die Identität des Absenders verifizieren?
+]
+
+[slide [h2 Signierung]
+  [p style="text-align: center;" 
+    [a href="https://de.wikipedia.org/wiki/Asymmetrisches_Kryptosystem"
+      [img src="1200px-Orange_blue_digital_signature_de.svg.png" width="50%"]
+      [br] https://de.wikipedia.org/wiki/Symmetrisches_Kryptosystem
+    ]
+  ]
+]
+
+[slide [h2 Signierung]
+  [h3 Übung aus dem letzten Kurstag]
+  [pre
+  ~$ ssh beamer
+  The authenticity of host 'beamer (192.168.101.20)' can't be established.
+  ECDSA key fingerprint is SHA256:....
+  Are you sure you want to continue connecting (yes/no)? _
+  ]
+  [ul
+    [li -> der öffentliche Schlüssel identifiziert einen Host (Fingerprinting)]
+  ]
+]
 
 [slide [h2 Was ist ein Paketsystem?]
-  Free Software definition
-  Softwareauthor
-  Maintainer -> Paket
-  Distribution
-  Paketquellen
-  digitale signaturen
+  [ul .uncover
+    [li [strong Oft sind Pakete kryptographisch signiert]]
+    [li Einer der wichtigsten Sicherheitsaspekte von Linux-Systemen]
+    [li -> Pakete sind vom Maintainer signiert]
+  ]
 ]
 
 [slide [h1 Apt und dpkg]]
 
 [slide [h2 Apt und dpkg]
-  synaptic
-  apt-get update
-  apt-cache search
-  apt-get install
-  apt-get remove
-  apt-get upgrade
-  dist-upgrade, autoremove
-  /etc/apt/sources.list
+  [ul .uncover
+    [li Paketinformationen neu laden]
+    [li Paketquellen bearbeiten]
+    [li zum Installieren vormerken]
+  ]
+]
+
+[slide [h2 Apt und dpkg]
+  [ul .uncover
+    [li [pre ~$ sudo apt-get update]]
+    [li [pre ~$ apt-cache search ...]]
+    [li [pre ~$ apt-cache show ...]]
+    [li [pre ~$ sudo apt-get install ...]]
+    [li [pre ~$ sudo apt-get remove ...]]
+  ]
+]
+
+[slide [h2 Apt und dpkg]
+  [ul .uncover
+    [li Pakete haben Abhängigkeiten]
+    [li Abhängigkeiten können Paketinstallationen blockieren]
+    [li Distributionen paketieren deshalb häufig nicht die neusten Programmversionen]
+  ]
+]
+
+[slide [h2 Apt und dpkg]
+  [ul .uncover
+    [li [pre ~$ less /etc/apt/sources.list]]
+    [li [pre ~$ sudo apt-get upgrade]]
+    [li [pre ~$ sudo apt-get dist-upgrade]]
+    [li [pre ~$ sudo apt-get autoremove]]
+  ]
 ]
 
+[slide [h1 Andere Paketsysteme]]
+
 [slide [h2 Andere Paketsysteme]
-  pacman, emerge, ipkg/opkg, rpm/yum, msi
+  [ul .uncover
+    [li Arch GNU Linux [ul
+      [li [pre pacman -Ss ...; pacman -S ...; pacman -R ...]]
+    ]]
+    [li Gentoo [ul
+      [li [pre emerge --sync; emerge --search ...; emerge ... ]]
+    ]]
+    [li Fedora/RedHat [ul
+      [li [pre yum search ...; yum install ...; yum remove ... ]]
+    ]]
+    [li Andere [ul
+      [li ipkg/opkg, msi, ...]
+    ]]
+  ]
+]
+
+[slide [h1 Software selbst übersetzen]
+  Selbst "Maintainer" sein ...
+]
+
+[slide [h2 Software selbst übersetzen]
+  [ul .uncover
+    [li Authoren stellen Quellcode häufig über [em Versionsverwaltung] bereit [ul
+      [li Wir müssen den Quellcode [em auschecken / clonen]]
+    ]]
+    [li Software muss in Maschinencode übersetzt werden [ul
+      [li Wir brauchen einen [em Compiler] für die entsprechende Programmiersprache]
+      [li Wir müssen selbst [em Abhängigkeiten] beachten (→ Dependency Hell)]
+    ]]
+    [li IdR. wird der Prozess vereinfacht durch Buildautomatisierung]
+  ]
 ]
 
 [slide [h2 Software selbst übersetzen]
-  kein Beispiel
-  Versionskontrolle
-  Compiler
-  Dependencies
-  Make
+  [ul .uncover
+    [h3 Ein einfaches Beispiel]
+    [li [pre ~$ git clone https://git.plutz.net/git/vhs_kurs]]
+    [li [pre ~$ cd vhs_kurs]]
+    [li [pre ~$ make]]
+  ]
 ]
 
-[slide [h1 Anwendungsprogramme]]
+<!--
+[Xslide [h1 Anwendungsprogramme]]
 
-[slide [h2 Anwendungsprogramme]
+[Xslide [h2 Anwendungsprogramme]
   Sprachpakete
   LibreOffice, Inkscape, Marble, Cups, Webserver
 ]
+-->
 
 [slide [h1 Systeminstallation]]
 
 [slide [h2 Systeminstallation]
-  Leerer Datenträger
-  -> Partitionen anlegen
-  chroot / busybox
-  System soweit, dass Paketsystem benutzbar ist
-  debootstrap, pacstrap, tarball
-  Kernel, Bootloader -> Plattformspezifisch
-  benutzer anlegen, ggf. fstab anpassen
-  bootloader schreiben
+  [ul .uncover
+    [li Beginnt mit einer leeren Partition]
+    [li System muss gerade soweit bestehen, dass Software installiert werden kann]
+    [li Systemkernel muss installiert sein]
+    [li Bootloader muss installiert sein (Plattformspezifisch)]
+    [li ggf. Benutzer anlegen]
+    [li ggf. /etc/fstab anpassen]
+  ]
 ]
 
-[slide [h1 \...]]
+[slide [h2 Systeminstallation]
+  [ul .uncover
+    [h3 Installation des Basissystems]
+    [li Abhängig von Distribution]
+    [li debootstrap, pacstrap]
+    [li Archiv entpacken]
+  ]
+]
+
+[slide [h2 Systeminstallation]
+  [ul .uncover
+    [li [pre ~$ mkdir sys]]
+    [li [strike mount /dev/sdx1 sys/]]
+    [li [pre ~$ mkdir sys/bin]]
+    [li [pre ~$ cp /bin/busybox sys/bin]]
+    [li [pre ~$ sys/bin/busybox --install sys/bin]]
+  ]
+]
+[slide [h2 Systeminstallation]
+  [ul .uncover
+    [li [pre ~$ sudo chroot sys /bin/sh]]
+  ]
+]
 
 [slide [h2 Zusammenfassung]
+  [ul
+    [li Paketsysteme vereinfachen die Softwareinstallation]
+    [li Paketsysteme erhöhen die Sicherheit]
+    [li Paketsysteme und verfügbare Pakete sind der Hauptunterschied zwischen Distributionen]
+    [li Zur Systeminstallation wird im wesentlichen das Paketsystem ausgerollt]
+  ]
 ]
 
+[slide [h1 Anwendersoftware]]
+[slide [h1 \...]]
+
 [slide [h2 Nächster Termin]
-  Freitag, 26.4.
-  Netzwerk, Remotelogin, Dateiübertragung
+  [ul
+    [li Mittwoch, 16.10.]
+  ]
 ]
 
 ]]