Vorlesung-Print.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
1 Betriebssysteme Prof. Dipl.-Ing. Klaus Knopper (C) 2019 <[email protected]> Live GNU/Linux System Schwarz: Transparent,KNOPPIX CD−Hintergrundfarbe (silber) bei Zweifarbdruck, sonst schwarz. Vorlesung an der DHBW Karlsruhe im Sommersemester 2019 Organisatorisches + Vorlesung mit Ubungen¨ Betriebssysteme WWI17B2 jeweils Montags (einzelne Termine) in A369 + http://knopper.net/bs/ (spater¨ moodle) Folie 1 Kursziel µ Grundsatzlichen¨ Aufbau von Betriebssystemen in Theorie und Praxis kennen und verstehen, µ grundlegende Konzepte von Multitasking, Multiuser-Betrieb und Hardware-Unterstutzung¨ / Resource-Sharing erklaren¨ konnen,¨ µ Sicherheitsfragen und Risiken des Ubiquitous und Mobile Computing auf Betriebssystemebene analysieren, µ mit heterogenen Betriebssystemumgebungen und Virtua- lisierung arbeiten, Kompatibilitatsprobleme¨ erkennen und losen.¨ Folie 2 0 Themen (Top-Down) + Ubersicht¨ Betriebssysteme und Anwendungen, Unterschiede in Aufbau und Einsatz, Lizenzen, Distributionen, + GNU/Linux als OSS-Lernsystem fur¨ die Vorlesung, Tracing und Analyse des Bootvorgangs, + User Interface(s), + Dateisystem: VFS, reale Implementierungen, + Multitasking: Scheduler, Interrupts, Speicherverwaltung (VM), Prozessverwaltung (Timesharing), + Multiuser: Benutzerverwaltung, Rechtesystem, + Hardware-Unterstutzung:¨ Kernel und Module vs. Treiber“ - Kon- ” zept, + Kompatibilitat,¨ API-Emulation, Virtualisierung, Softwareentwick- lung. + Sicherheits-Aspekte von Betriebssystemen, Schadsoftware“ und ” forensische Analyse bei Kompromittierung oder Datenverlust. Folie 3 Zur Benutzung der Folien µ Foliensatze¨ werden nach Bedarf erstellt, und konnen¨ sich bis zum Ende der Veranstaltung noch andern.¨ Daher bitte Vorsicht beim Ausdrucken. µ Verweise auf Handouts oder sinnvolle + Sekundarlitera-¨ tur sind entsprechend gekennzeichnet und i.d.R. direkt anklickbar. µ Prufungsrelevant¨ sind grundsatzlich¨ alle in der Vorlesung behandelten Themen. Folie 4 Wann braucht man (k)ein Betriebssystem? * Beispiel 1 Hut mit Augen : Teensy“ Mikrocontroller (Nano-+ ” ” ” Arduino-Board), 2 TFT-Displays, Stromversorgung, C-Programm (Sketch) Ein auf dem Microcontroller standig¨ laufendes Programm steuert (ohne Betriebssystem) zwei TFT-Displays an. Folie 5 1 Wann braucht man (k)ein Betriebssystem? * Beispiel 2 Motorsteuerung 3D Drucker“, ebenfalls mit Mikrocon- ” troller (Demo) Folie 6 Kombination: Steuerung eines 3D-Druckers 3D Printer Octoprint Server Wifi Raspberry Pi STL−Files Commands USB User−Interface Status Info Statistics Arduino Controller GCODE + Octoprint kommuniziert mit dem Drucker uber¨ primitive + G-CODE Steuerbefehle, bietet dem Benutzer aber uber¨ einen unter Linux/Raspi laufenden Webserver eine komfortable Ober- flache.¨ Folie 7 Warum ausgerechnet Linux als Lern-OS? µ Funktionsweise und Interna“ gut dokumentiert, ” µ technische Konzepte auch auf andere Betriebssysteme ubertragbar,¨ µ Open Source (Folie + 13 ff.): ë Bauplan / Quelltext aller essentiellen Komponenten ist offengelegt, ë kostenlose Nutzung, ë Kopie/Modifikation/Verbreitung erlaubt. µ Dominierendes Betriebssystem im Bereich Internet of Things (IoT) und Mobile Computing (+ [8]), Folie 8 2 Ein wenig Geschichte (1) um 1970: Ken Thompson (Bell Labs): Betriebssystem fur¨ Großrechner + MULTICS, nach dessen Scheitern Entwicklung von + Unix Ende der 70er: University of California in Berkeley (UCB): + Berkeley ” System Distribution“ (BSD), Ansatze¨ zur Netzwerkfahigkeit¨ und vir- tueller Speicher. 70er-80er: Wettbewerb zwischen den beiden Hauptderivaten (com- mercial) System V + Unix (AT&T-Zweig) und der freien Berkeley- Version BSD. (Mainframes) Ende 80er: + MS-DOS, + Windows, OS/2, div. andere proprietare¨ Be- triebssysteme fur¨ Einzelplatzrechner. Folie 9 Ein wenig Geschichte (2) 1984 Richard Stallman grundet¨ die + Free Software Foundation, eine Gesellschaft, die freie Software (mit offenen Quelltexten) fordert,¨ und mit Hilfe einer speziellen Lizenz, der GNU General Public Licen- se, die Offenheit und freie Verteilbarkeit der Software garantiert. Langfristiges Ziel ist es, ein Betriebssystem und eine Suite von An- wendungen zur Verfugung¨ zu stellen, die vollstandig¨ frei sind von proprietarem¨ oder nutzungslizenzpflichtigem Material. 1988: + POSIX 1003.1 wird verabschiedet, ein Standard, der die Min- destanforderungen der Unix-basierten Lager vereint. Fast alle mo- dernen Unices sind POSIX-konform. Folie 10 Ein wenig Geschichte (3) 1993 Der finnische Student Linus Torvalds schreibt eine virtuelle Spei- cherverwaltung fur¨ i386-basierte Rechner. Er entscheidet sich dafur,¨ den Quelltext seiner Arbeit zu veroffentlichen,¨ was eine zu- vor selten gekannte Kooperation zwischen Entwicklern uber¨ das Internet weltweit auslost¨ und schafft damit die Grundlage fur¨ das heute popularste¨ freie Unix-artige Betriebssystem + Linux fur¨ kostengunstige¨ Desktop-PCs und andere. Auf Anwendungsebe- ne wird die bereits fur¨ andere Unix-Systeme vorhandene GNU- Software portiert und verwendet, so dass nach kurzer Entwick- lungszeit ein vollstandiges¨ Set an Anwendersoftware inclusive Ent- wicklungsumgebungen zur Verfugung¨ steht. Folie 11 3 Ein wenig Geschichte (4) 1995- Das + Linux-Betriebssystem und auf Unix-Betriebssystemen ba- sierende Anwendungen wie SAMBA und Apache verbreiten sich vor allem als preisgunstige¨ Server-Systeme, zunachst¨ nur als Ge- heimtipp unter Technikern, heute als Mainstream-Software im re- gularen¨ Ersatz als File, Print- und Informationsserver sowie Gate- ways in heterogenen Netzwerkumgebungen. 1998-heute Neben dem zunehmenden Einsatz als Desktop/Client- System mit KDE oder GNOME halt¨ Linux auch Einzug als embed- ded Betriebssystem in Handhelds, Tablets, Kameras, MP3-Spielern und anderen Geraten¨ der Unterhaltungs- und Kommunikationsin- dustrie. Folie 12 Unix-Stammbaum* Folie 13 Nicht-PCs und embedded Systeme Durch seine Flexibilitat¨ und die freizugige¨ Lizenz ist GNU/Linux ei- ne beliebte Systemsoftware fur¨ neu entwickelte Hardware, wenn nicht sogar in vielen Fallen¨ die einzige Moglichkeit.¨ µ+ RaspberryPi, + Arduino Microboards, µ Netzwerkkomponenten: Accesspoints (+ OpenWRT), Ma- naged Switches, ... µ Unterhaltungselektronik: Receiver, SmartTVs, ... µ Steuerelektronik: autonome Fahrzeuge, Flugdrohnen, ... Folie 14 4 Beispiel RaspberryPi µ ARM-Architektur, Board kaum großer¨ als eine EC-Karte, µ Energiebedarf < 3W, Versorgung uber¨ USB, µ Netzwerk-, USB-, HDMI-, Composite-, Audio-Anschluss, SD- Karteneinschub fur¨ OS, µ Betriebssystem: Raspbian (Debian), BSD, Plan9, RiscOS, µ Anwendung als: Steuerungssystem, Streaming Server, Mul- timedia (+ XBMC), normaler Desktop-PC“ (mit gewissen ” Performance-Einschrankungen).¨ Folie 15 Beispiel Haushaltsroboter Autonomer Staubsauger Folie 16 Beispiel Flugdrohne Zur Steuerung der 4 Propeller eines + Quadrokopters und Anbindung an eine Steuerungs- konsole (Computer, Smartphone oder RC-Steuerung per Funk) wird eine leichtgewichtige“ ” Losung¨ benotigt,¨ die auf senso- risch erfasste Positionsverande-¨ rungen in + Echtzeit reagieren kann. Hierdurch wird das Gerat¨ auch ohne Interaktion stabil in der Luft positioniert und kann auf Anweisungen reagieren. Demo mit + AR.DRONE Folie 17 5 Eigenschaften von Unix + Unix in Wikipedia µ Mehrere Aufgaben gleichzeitig (Multitasking) µ Mehrbenutzerfahig¨ (Multiuser) µ Auf vielen Hardware-Plattformen lauffahig¨ (portabel) µ Effiziente, transparente Ausnutzung der Resourcen µ hierarchisches Dateisystem µ Stabilitat¨ durch eigenen Speicherbereich fur¨ jedes Programm (Virtual Memory, Speicherschutz) µ strikte Trennung zwischen Betriebssystem ( Kernel“, System- ” dienste) und Anwendersoftware (Desktop-, Server-Suiten) Auch andere Betriebssysteme haben diese Design-Vorgaben ubernommen,¨ in unterschiedlicher Auspragung.¨ Folie 18 Verschiedene Unix-Betriebssysteme Name/TM Hersteller + SunOS/Solaris Oracle (ehem. SUN Microsystems) + HPUX Hewlett Packard + Aix IBM + Sinix Siemens/Nixdorf + Ultrix/DEC Unix(OSF/1) Digital Equipment + Services for Unix“ (Interix) Microsoft ” + Mac OSX / iOS Apple + Berkeley Software Distribu- Community (Entwickler) tion (BSD) + Linux Community (Entwickler) + Android Google ... Folie 19 Technik: Aufbau und Eigenschaften von Linux * Linux-Architektur Folie 20 6 Vereinfachtes Schema Applications System services (daemons) Libraries Kernel (static) + Modules Hardware Folie 21 Einwurf: Die Softwarekrise µ Die Komplexitat¨ von Betriebssystemen und Anwendungen und damit auch die Anfalligkeit¨ f¨urFehler steigt standig,¨ gleichzeit ver- sprechen die Software-Anbieter, dass die Programme immer ein- ” facher“ bedienbar werden. µ Fruher:¨ Anwender, Programmierer, Systemadministrator in einer Person + Fahigkeit,¨ das System selbst zu kontrollieren und erwei- tern zu konnen,¨ Programem moglichst¨ effizient gestalten und nut- zen. µ Heute: Der Anwender mochte¨ sich mit der Technik nicht ausein- andersetzen, aber trotzdem alle Moglichkeiten¨ effizient nutzen. + Kontrolle uber¨ das System, Verantwortung fur¨ Wartung und Aktua- lisierung wird an den Softwarehersteller ubertragen.¨ µ Heute: Auch fur¨ Systemprogrammierer und Administratoren wird es immer schwieriger, die Ubersicht¨ zu behalten und die Software in jedem Detail zu verstehen, Fehler zu erkennen. Folie 22 Konsequenzen daraus? µ Verlust von Kontrolle und Verstandnis¨ f¨urtechnische Zusam- menhange¨ , fast bedingungsloses Vertrauen gegenuber¨ Hard- und Softwareherstellern, Missbrauchsmoglichkeiten¨ (+ Spionage, + Malware, Fernsteuerung / + Botnetze, + Identitatsdiebstahl¨ ). µ Schere zwischen + Geeks“ und + DAUs“ wird stetig ” ” großer?¨ µ Losungsans¨