Betriebssysteme
Total Page:16
File Type:pdf, Size:1020Kb
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 •First •Prev •Next •Last •Full Screen •Quit Organisatorisches + Vorlesung mit Ubungen¨ Betriebssysteme WWI17B2 jeweils Montags (einzelne Termine) in A369 + http://knopper.net/bs/ (spater¨ moodle) •First •Prev •Next •Last Folie 1 •Full Screen •Quit 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.¨ •First •Prev •Next •Last Folie 2 •Full Screen •Quit 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. •First •Prev •Next •Last Folie 3 •Full Screen •Quit 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. •First •Prev •Next •Last Folie 4 •Full Screen •Quit 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. •First •Prev •Next •Last Folie 5 •Full Screen •Quit Wann braucht man (k)ein Betriebssystem? * Beispiel 2 Motorsteuerung 3D Drucker“, ebenfalls mit Mikrocon- ” troller (Demo) •First •Prev •Next •Last Folie 6 •Full Screen •Quit 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.¨ •First •Prev •Next •Last Folie 7 •Full Screen •Quit Warum ausgerechnet Linux als Lern-OS? µ Funktionsweise und Interna“ gut dokumentiert, ” µ technische Konzepte auch auf andere Betriebssysteme ubertragbar,¨ µ Open Source (Folie + 39 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 (+ [24]), •First •Prev •Next •Last Folie 8 •Full Screen •Quit 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. •First •Prev •Next •Last Folie 9 •Full Screen •Quit 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. •First •Prev •Next •Last Folie 10 •Full Screen •Quit 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. •First •Prev •Next •Last Folie 11 •Full Screen •Quit 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. •First •Prev •Next •Last Folie 12 •Full Screen •Quit Unix-Stammbaum* •First •Prev •Next •Last Folie 13 •Full Screen •Quit 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, ... •First •Prev •Next •Last Folie 14 •Full Screen •Quit 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).¨ •First •Prev •Next •Last Folie 15 •Full Screen •Quit Beispiel Haushaltsroboter Autonomer Staubsauger •First •Prev •Next •Last Folie 16 •Full Screen •Quit 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 •First •Prev •Next •Last Folie 17 •Full Screen •Quit 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.¨ •First •Prev •Next •Last Folie 18 •Full Screen •Quit 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 ... •First •Prev •Next •Last Folie 19 •Full Screen •Quit Technik: Aufbau und Eigenschaften von Linux * Linux-Architektur •First •Prev •Next •Last Folie 20 •Full Screen •Quit Vereinfachtes Schema Applications System services (daemons) Libraries Kernel (static) + Modules Hardware •First •Prev •Next •Last Folie 21 •Full Screen •Quit 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,