Betriebssysteme aus der Vogelperspektive¶
Lernziele¶
Hier lernen Sie den Sinn von Betriebssystemen kennen, d.h. welche Aufgabe Betriebssysteme erfüllen und mit welchen Prinzipien sie diese Aufgaben lösen.
Die eingeführten Konzepte werden dabei später durch praktische Beispiele aus dem Bereich des Betriebssystems UNIX/Linux erläutert.
Ziele eines Betriebssystems¶
Im Kapitel Rechnerarchitektur - Aufbau von Computern wurde die Hardware der Computer besprochen. Auf dieser hardwarenahen Ebene Programme zu entwickeln und den Computer zu benutzen, ist extrem umständlich und aufwendig. Für Anwender/innen (User) soll ein Rechner einfach handzuhaben sein, d.h. das Betriebssystems soll Benutzerfreundlichkeit gewährleisten.
Diese Diskrepanz zwischen der Hardware und der einfachen Bedienung wird als semantische Lücke bezeichnet. Eine wesentliche Aufgabe der Betriebssysteme ist es, diese semantische Lücke zu schließen. Die Anwender/innen des Computers soll sich also nicht um Details der Hardware kümmern müssen. Die Hardware sollte ihm verborgen bleiben (Information Hiding).
Beispiel: Wenn Benutzer/innen Daten auf der Festplatte ablegen wollen, so wollen sie sich nicht darum kümmern, wohin und in welche Blöcke die Daten geschrieben werden. Das Betriebssystem stellt hierzu ein logisches Dateisystem zu Verfügung: Daten werden in Dateien geschrieben.
Hauptaufgaben eines Betriebssystems¶
Auch andere Sichtweisen auf die Aufgaben des Betriebssystems als die der Vermittlerschicht zwischen Hardware und Software sind möglich: Die wesentlichen Aufgaben der Betriebssysteme (nach [Rechenberg-Pomberger]):
Abstraktion: Hierunter wird das oben erwähnte Information Hiding verstanden. Benutzer/innen kommunizieren nicht direkt mit der Hardware, sondern verwenden einfache Konzepte, die von der Hardware abstrahieren. Sie kommunizieren gewissermaßen mit einer virtuellen Maschine.
Das Betriebssytem ist für die Koordination und Zuteilung der Betriebsmittel (Resource Management) verantwortlich. Unter den Betriebsmitteln versteht man alle Soft- und Hardwarekomponenten, welche ein Programm benötigt, um ausgeführt werden zu können.
Das Betriebssytem schafft eine Plattform für Anwenderprogramme.
Das Betriebssytem sorgt dafür, dass mehrere Benutzer/innen, welche eventuell gleichzeitig auf einem Rechner arbeiten, sich nicht gegenseitig behindern, d.h. es sorgt für den Schutz zwischen verschiedenen Benutzern im Mehrbenutzerbetrieb.
Das Betriebssytem stellt eine Bedienschnittstelle für Systemverwalter und Benutzer zur Verfügung.
Betriebssysteme an der Schnittstelle zwischen Hardware und Anwendungsprogrammen¶
Ein Betriebssystem vermittelt zwischen der Hardware und den Anwendungsprogrammen, d.h. Anwendungsprogramme greifen nicht direkt auf die Hardware zu, sondern immer nur über das Betriebssystem. (Spezielle) Hardware wird so abstrahiert (Kapselung). Das Betriebssystem stellt zudem Schnittstellen für Systemfunktionen bereit.
Der englische Begriff für Betriebssystem ist Operating System (OS).
Grundlegende Bestandteile eines Betriebssystems¶
- Kernel
- Der zentrale Bestandteil des Betriebssystems ist der Kern (kernel). In ihm ist die Prozess- und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems aufbauen.
- Der Steuerung aller Prozessor- und Speicherzugriffe.
- Der Kernel kann direkt oder über Gerätetreiber auf die Hardware zugreifen.
- Management der wichtigsten Treiber (driver). Ein Treiber ist eine Software für den Zugriff auf (spezielle) Hardware.
- Befehlsübersetzer
- Mittels Kommandos können Nutzer:innen auf Betriebssystemfunktionen zugreifen, typischerweise auf der Kommandozeile.
- Systembibliotheken (system software libraries - system call application programming interface (API)) stellen eine Programmier-Schnittstelle zur Verfügung, die in Programmen genutzt werden kann.
- Dateisystem
- Dateien (files) können in einem Dateibaum gespeichert werden (siehe nächstes Kapitel).
Aufgaben eines Betriebssystems¶
- Verwaltung der Prozesse (laufende Programme): Starten und Beenden von Prozessen. Moderne Betriebssyteme ermöglichen es, Prozesse quasi parallel auszuführen. Dies wird als Mehrprozessbetrieb (multitasking) bezeichnet.
- Überwachung der Speicherzugriffe
- Interprozesskommunikation: Regelung der Kommunikation und Synchronisation der Prozesse untereinander.
- Schnittstelle zwischen der Hardware / Rechner-Komponenten (wie Festplatten, Bildschirm etc.) und den Anwendungen.
- Software zur Verwaltung und Pflege des Dateisystems.
- Ansteuerung für Peripheriegeräte, wie Tastatur, Maus, Drucker etc.
- Networking: Empfangen und Senden von Netzwerknachrichten (Packages). Routing von Packages.
- Bereitstellen eines system call application programming interface (API)
- Kommandozeilenschnittstelle für Befehle etc.
Beispiele für Computer-Betriebssysteme¶
- Unix und unix-odide Betriebssysteme: Verbreitetes Betriebssystem, das in verschiedenen Varianten verfügbar ist, wie z.B. AIX, HP-UX, IRIX, BSD, Mac OS X, Solaris und Linux.
- Windows: PC Betriebsystem
Weitere Grundbegriffe¶
Multitasking¶
Linux ist ein Multitasking-Betriebssystem. Das heißt mehrere Prozesse können quasi-parallel ablaufen. Dazu erhalten die einzelnen Prozesse "Zeitscheiben" auf dem Computer vom Betriebssystem zugeteilt. Dieses Zuteilen der Resourcen wird Scheduling genannt. Die entsprechende Teilkomponente des Betriebssystem heißt Scheduler.
Nebenbemerkung: Auf modernen Multiprozessor-Computern können einige Prozesse wirklich parallel laufen.
Mehrbenutzerbetrieb (multiuser)¶
Im Mehrbenutzerbetrieb können mehrere Benutzer/innen (gleichzeitig) auf einem Computer arbeiten (abstraction of a virtual private computer). Die entsprechenden Bereiche im Dateisystem lassen sich dabei vor unbefügtem Zugriff schützen. Prozesse der einzelnen User müssen auch voreinander abgegrenzt werden. Multiuser-Betriebssysteme stellen dafür Schutzmechanismen und Rechtesysteme zur Verfügung.
Netzwerke¶
Moderne Computer werden häufig vernetzt, d.h. sie sind nicht isoliert, sondern können miteinander kommunizieren. Daher stellen moderne Betriebsysteme auch Netzwerkfunktionalität zur Verfügung.