Vorlesung Betriebssysteme I Thema 1: Einführung
Total Page:16
File Type:pdf, Size:1020Kb
Vorlesung Betriebssysteme I Thema 1: Einführung Robert Baumgartl 14. 10. 2020 1 / 35 Organisatorisches Alle nötigen Informationen finden Sie hier: https://www.informatik.htw-dresden.de/~robge/bs1/bs1.html 2 / 35 Vorkenntnisse Bitte um Handzeichen – Wer hat schon I mit Windows gearbeitet? I mit Linux (o. a. Unix) gearbeitet? I einen der Editoren vi oder emacs genutzt? I in C programmiert? I make eingesetzt? I fork() beim Programmieren benutzt? I in der Open-Source-Community mitgewirkt? I einen Treiber geschrieben? 3 / 35 Vorkenntnisse II Wer weiß, was das ist? char *foo(char *dest, const char *src) { while(*dest++ = *src++); } . und das? :(){ :|:&};: (Vorsicht! Nicht ausprobieren!) 4 / 35 Wozu befassen wir uns mit Betriebssystemen? ... es gibt doch Windows! Einige Gedanken: I Grundlagenfach der Informatik („es geht nicht ohne BS“) I BS sind verflixt komplex! I aktiver Forschungsgegenstand I Betriebssysteme-Sicherheit I Verteilung & Skalierbarkeit I spezielle Fähigkeiten: Echtzeitfähigkeit, Ressourceneffizienz, Resilienz (u.a.) I Konferenzen: SOSP, USENIX, EUROSYS 5 / 35 Einordnung der Lehrveranstaltung 1. Semester Betriebssysteme 1 Programmierung 1 3. Semester Rechnernetze Rechnerarchitektur 4. Semester Betriebssysteme 2 Wahlpflichtmodul (nur Inf.) z.B. Echtzeitsysteme 5. Semester Projektseminar z.B. Virtualisierung 6. Semester Bachelorarbeit (...natürlich über ein Betriebssystem−Thema!) 6 / 35 Vorläufige Themenübersicht 1. Einführung (Grundlegende Begriffe) 2. Linux in a Nutshell 3. Dateisystem 4. Grundlegende Begriffe, Teil 2 5. Aktivitäten, Prozesse 6. Kommunikation 7. Scheduling 8. Threads (Aktivitäten, die zweite) 9. Synchronisation, sofern Zeit 7 / 35 Wozu benötigen wir ein Betriebssystem? 1. Bereitstellen von Diensten und dafür notwendigen Abstraktionen (z. B. „Prozess“, „Datei“, „Gerätetreiber“ u. v. a. m.) 2. Ressourcenverwaltung inklusive Protokollierung 3. Koordinierung paralleler Abläufe 4. Basis für Schutz und Sicherheit 8 / 35 Perspektiven auf Betriebssysteme I Nutzer I Administrator I Systemprogrammierer I Treiberprogrammierer I (feindlicher) Angreifer, „Hacker“ I Forensiker I Controller I Lehrer I Wissenschaftler 9 / 35 Ziel des Kurses Vermittlung von vorwiegend praktischen Kenntnissen zu I Nutzung elementarer Werkzeuge I Automatisierung von Bedienhandlungen I Interaktion zwischen Applikationen und Betriebssystem(en) I Struktur und Vorgängen innerhalb von Betriebssystemen I Unix-artigen und Windows-Betriebssystemen 10 / 35 Eine kurze Geschichte der . Betriebssysteme Entwicklung der Rechensysteme 1. Erste Rechner [ca. 1945] I kein BS 2. Großrechner (Mainframes) [ca. 1960 . heute] I IBM System/360: OS/360-Familie I aktuell z/OS für heutige IBM-Mainframes 3. Minicomputer [ca. 1970 . 1985] I DEC PDP 11: UNIX [1970 . heute] I DEC VAX 11/780: VMS [1977 . heute] 4. Workstations [ca. 1982 . 1995] I z. B. HP, Sun, Silicon Graphics u. v. a. m I UNIX, d. h. , HP-UX, SunOS, IRIX,... I heute weitgehend verschwunden (durch High-End-PCs ersetzt) 11 / 35 Eine kurze Geschichte der . Betriebssysteme Entwicklung der Rechensysteme, Teil 2 5. Mikrocomputer (Personal Computer) [ca. 1978 . heute] 1 Homecomputer [ca. 1978 . 1994] I Commodore PET, C64, Atari ST, Commodore Amiga, . I Homebrew-OS („ROM-BIOS“), CP/M, AmigaOS,... I heute weitgehend ausgestorben 2 Apple-Computer [ab 1984] I macOS – erstes kommerzielles BS mit grafischer Oberfläche I OS X (Grundlage: Darwin, basierend auf BSD UNIX 4.4) 3 IBM PC (XT, AT, 386er . ) [ab 1981] I MS-DOS [1981 . 1994] I Windows [ab 1985] I Linux [ab 1991] 12 / 35 Eine kurze Geschichte der . Betriebssysteme Entwicklung der Rechensysteme, Teil 3 6. Mobile Rechner (Handys, Smartphones, Tablets) 1 „klassische“ Mobiltelefone I Nokia, Ericsson, Motorola (u. v. a. m.) I jeder sein eigenes BS 2 Symbian-Smartphones [1997 . 2012] I SymbianOS I erstes BS für Smartphones und PDA: Nokia Communicator, Ericsson P900, . I Single-Core-Architektur I wechselvolle Geschichte 3 Apple iPhone [ab 2007] I iOS I ähnlich macOS basierend auf UNIX(XNU-Kernel) 4 Android-Geräte [ab 2008] I Android, basierend auf Linux I weitestverbreitetes BS überhaupt 13 / 35 Eine kurze Geschichte der . Betriebssysteme Leseempfehlungen Gerard O’Regan: A Brief History of Computing. Springer Verlag, 2012 Brian Bagnall: Volkscomputer. Aufstieg und Fall des Computer-Pioniers Commodore und die Geburt der PC-Industrie, Gameplan, 2011 Linus Torvalds, David Diamond: Just for Fun: Wie ein Freak die Computerwelt revolutionierte. dtv, 2002 14 / 35 Plattformen fürs „Personal Computing“ I verkaufte „Personal Computing Units“ pro Jahr I Quelle: http://twitpic.com/87nbjj 15 / 35 Aktuelle Betriebssysteme Es gibt: I Windows-Familie (2.0 ! 10) I Linux I MacOS X ... das wars, oder? I MS-DOS, RTEMS, QNX, FreeBSD, SymbianOS, PalmOS, RTAI, HP-UX, BeOS, Minix, Chorus, L4, Mach, Amoeba, OS/390, DCP, TOS, CP/M, VMS, eCos, Contiki, OS/2 . I vgl. http://de.wikipedia.org/wiki/Liste_der_Betriebssysteme 16 / 35 Aktuelle Betriebssysteme Es gibt: I Windows-Familie (2.0 ! 10) I Linux I MacOS X ... das wars, oder? I MS-DOS, RTEMS, QNX, FreeBSD, SymbianOS, PalmOS, RTAI, HP-UX, BeOS, Minix, Chorus, L4, Mach, Amoeba, OS/390, DCP, TOS, CP/M, VMS, eCos, Contiki, OS/2 . I vgl. http://de.wikipedia.org/wiki/Liste_der_Betriebssysteme 17 / 35 UNIX I . ist kein Betriebssystem, sondern eine ganze Familie I Name ist ein Wortspiel aus dem Vorgänger „Multics“ und „unique“ I zusammen mit der Programmiersprache C in den 70er Jahren entwickelt I einige Vertreter: *BSD, System V, Linux, HP-UX, AIX, Solaris, Minix I sogar Microsoft hat ein UNIX entwickelt: XENIX (es ist aber schon lange tot) I der zugehörige Standard heißt POSIX I beliebt vor allem im Serverbereich (aber nicht nur!) I Nutzer haben mit Vorurteilen zu kämpfen . 18 / 35 Philosophie von UNIX 9 Grundsätze: 1. Small is beautiful. 2. Make each program do one thing well. 3. Build a prototype as soon as possible. 4. Choose portability over efficiency. 5. Store data in flat text files. 6. Use software leverage to your advantage. 7. Use shell scripts to increase leverage and portability. 8. Avoid captive user interfaces. 9. Make every program a filter. (Mike Gancarz: The UNIX Philosophy, Digital Press, 1995) 19 / 35 Lizensierungsaspekte 2 grundlegende Ideen: I Closed Source: Quellcode ist geheim, „Betriebsgeheimnis“, steht i. a. nur dem Hersteller zur Verfügung I Open Source: Quellcode steht prinzipiell jedem zur Verfügung ! kann modifiziert und weiterverteilt werden (und soll dazu ermuntern) 20 / 35 Kommerzielle Lizenzen I kann (muss aber nicht) Einblick in Quellcode umfassen (z. B. für nichtkommerzielle Zwecke) I erfordert meist Vertrag („End User License Agreement“ (EULA)) I typische EULAs sind im EU-Raum jedoch unwirksam (zum Glück) Kosten für: I Entwicklungswerkzeuge I Bibliotheken (z. B.für Protokollstacks oder zum Debugging) I Royalties: pro Installation auf Zielgerät I (Schulung der Entwickler) 21 / 35 GNU General Public License (GPL) I Richard Stallman, 1989 I Kurzform: 1. Das Werk darf für beliebige Zwecke verwendet werden (auch kommerziell). 2. Das Werk darf beliebig weitergegeben werden, kostenlos oder kostenpflichtig. Der Quelltext (auch eigener Modifikationen) ist mitzuliefern. 3. Das Werk darf beliebig modifiziert werden. 4. Es dürfen keine Einschränkungen an diesen Regeln erfolgen. I enthält sog. starkes „Copyleft“: erzwingt die Weiterverbreitung von aus freien Werken abgeleiteten Werken ! niemand kann die Verbreitung eines ursprünglich freies Werk verhindern („Virulenz“) I wichtigste Open-Source-Lizenz I Beispiele: Linux, eCos, GCC, emacs, vi 22 / 35 Nachteile der GPL I untersagt das Vermischen von GPL-Code mit Code, der unter inkompatibler Lizenz steht (also alle closed source, aber auch freie Software) I ! Binärtreiber bestimmter Grafikkarten sind eigentlich illegal im Linux-Kern (geduldet; „tainted kernel“) I erschwert die Migration zu freier Software, da in Unternehmen existierende kommerzielle Software nicht ohne weiteres in diese integriert werden kann I Verletzungen werden verfolgt! (gpl-violations.org) 23 / 35 Klassifizierung von Betriebssystemen Kriterium: Nutzeranzahl I Single-User-BS I Multi-User-BS Kriterium: Anzahl unabhängiger Aktivitäten I Single-Tasking-BS I Multi-Tasking-BS Kriterium: Kommunikation mit der Umwelt I BS zur Stapelverarbeitung (Batchbetrieb) I interaktives BS I BS für autonome Systeme 24 / 35 Klassifizierung von Betriebssystemen II Kriterium: Verteilung I lokales BS I verteiltes BS Kriterium: Zielarchitektur/Einsatzzweck I Serverbetriebssystem I eingebettetes Betriebssystem I Echtzeitsystem I Mainframe-BS I BS für Personal Computer I BS für Smart Card I BS zur Ausbildung/Lehre 25 / 35 Welches Betriebssystem wird eingebettet eingesetzt? 62 Please select ALL of the operating systems you are currently using. Embedded Linux 22% FreeRTOS 20% In-house/custom 19% Android 13% Debian (Linux) 13% Ubuntu 11% Microsoft (Windows Embedded 7/Standard) 8% Texas Instruments RTOS 5% Texas Instruments (DSP/BIOS) 5% Micrium (uC/OS-III) 5% Microsoft (Windows 7 Compact or earlier) 5% Keil (RTX) 4% Micrium (uC/OS-II) 4% Wind River (VxWorks) 4% 2017 (N=619) AnalogDevices (VDK) 3% Express Logic (ThreadX) 3% Freescale MQX 3% Only Operating Systems with 2% or more are shown. Angstrom (Linux) 3% Green Hills (INTEGRITY) 2% Base: Currently using an operating system 2017 Embedded Markets Study © 2017 Copyright by AspenCore. All rights reserved. (https://m.eet.com/media/1246048/2017-embedded-market-study.pdf) 26 / 35 Interaktion mit dem Betriebssystem Paradigmen: I vorwiegend textorientiert (Konsole, Shell, Eingabeaufforderung) I grafische