1.4.1. Betriebssysteme#

Im Folgenden werden die Grundfunktionen und einzelne ausgesuchte Aspekte von Betriebssystemen kurz vorgestellt.

Grundfunktion#

Ein Betriebssystem (operating system, OS) ist ein Programm, das alle Betriebsmittel eines Rechensystems verwaltet und ihre Zuteilung kontrolliert. Dabei versteckt bzw. abstrahiert das Betriebssystem alle Hardwarecomponenten, z.B. durch Treiber. Damit kann ein standarisierter Zugriff auf die Hardware erfolgen, ohne die speziellen Strukutren bzw. Kommunikationsmuster kennen zu müssen. Ein Anwendungsprogramm kann von einem OS ausgeführt werden, wobei es auf vom OS angebotenen Schnittstellen zugreift.

Ein OS stellt einer Anwendung Zugriff auf u.A. folgende Ressourcen zur Verfügung:

  • Bildschirmausgabe und Tastatureingabe

  • Grafische Darstellung der Benutzeroberfläche

  • Dateisystem

  • Arbeitsspeicher

  • Netwerk

https://upload.wikimedia.org/wikipedia/commons/6/66/Operating_system_placement-de.svg

Fig. 1.57 Betriebssystem#

Aufbau#

  • Hardware: Tastatur, Grafikkarte, etc.

  • OS: Das Betriebssystem kann mit der zu nutzenden Hardware umgehene, d.h. es versteht alle hardwarespezifischen Protokolle

  • Betriebsmittel: Abstraktion der spezifischen Protokolle, verallgemeinert und erlaubt den Zugriff auf zentrale Ressourcen (z.B. Tastatur, Bildschirm, Festplatte)

  • Anwendungsprogramme: Greifen auf die Betriebsmittel zu und haben keine explizite Kenntnis der Hardware oder des Aufbaus des OS

../../../_images/os.svg

Fig. 1.58 Aufbau eines Betriebssystems#

Programm, Prozess, Thread#

  • Programm: Beinhaltet nur die Anweisungen wie Daten verarbeitet werden.

  • Prozess: Laufende Instanz eines Programms, welches spezielle Eingabedaten verarbeitet.

  • Thread: Paralleler Ausführungsstrang in einem Prozess, um z.B. mehrere Eingaben gleichzeitig zu bearbeiten (Benutzereingabe, Netzwerkverkehr).

../../../_images/prozess-programm-thread.svg

Fig. 1.59 Programm, Prozess, Thread#

Mehrprozessbetrieb#

Ein modernes Betriebssystem ist in der Lage mehrere Prozesse gleichzeitig auszuführen. Dazu werden Stückchen der verschiedenen Prozesse hintereinander ausgeführt. Mit dieser Pseudo-Parallelität ist es möglich z.B. foldende Aufgaben gleichzeitig ausführen zu können:

  • Musik hören

  • Text schreiben

  • Auf Wikipedia surfen

Die CPU kann natürlich nur eine Aufgabe auf einmal abarbeiten. Beim Wechsel zwischen den Prozessen merkt sich das OS den Status (Register, Speicher) eines Prozesses, so dass dieser später lückenlos fortgesetzt werden kann.

Übersicht Betriebssysteme#

Es existiert eine Schar an verschiedenen Betriebssytemen, wobei Microsoft (MS) Windows nur ein Vertreter ist.

Beispiele Windows-Familie:

Beispiele UNIX- und BSD-Familie:

Beispiel Apple (aufbauend auf BSD):

https://upload.wikimedia.org/wikipedia/commons/f/fe/Windows_8_logo_and_wordmark.svg

https://upload.wikimedia.org/wikipedia/commons/3/35/Tux.svg

https://upload.wikimedia.org/wikipedia/commons/2/21/MacOS_wordmark_%282017%29.svg

  • Windows 10
  • Windows 8 (NT 6.2)
  • Windows Phone 8 (NT 6.2)

  • FreeBSD
  • AIX
  • Linux
  • Android
  • Firefox OS

  • OSX 10.14
  • iOS 13

Beispiel – Linux#

Linux ist ein populäres und frei verfügbares Betreibssystem. Es wird im Desktop- und Server-Bereich eingesetzt. Während es insbesonere bei Servern (Internet und HPC) den Markt deutlich dominiert, befindet sich der Anteil bei Desktops im kleinen einstelligen Prozentbereich. Jedoch gibt es Initiativen im öffentlichen Bereich sich von der Abhängigkeit und Kontrolle von einzelnen Softwarekonzernen zu lösen.

Geschichte von UNIX#

https://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg

Fig. 1.60 Geschichte von UNIX#

  • 1969: erste Version von UNIX

  • bis 1980: frei verfügbar und offen, dann nur noch verschlossen und lizensiert

  • 1983: Start des GNU-Projekts, Schaffung eines freien UNIX-kompatiblen Betriebssystems

  • 1991: Erste Version von Linux

  • 1994: Gurndlagen für z.B. FreeBSD

  • 2001: Mac OSX aufbauend auf BSD (Darwin)

Philosophie von UNIX#

Die UNIX-artigen Betriebssysteme und die dafür entwickelten Anwendungen verfolgen folgende Philosophie:

  1. Schreibe Computerprogramme so, dass sie nur eine Aufgabe erledigen und diese gut machen.

  2. Schreibe Programme so, dass sie zusammenarbeiten.

  3. Schreibe Programme so, dass sie Textströme verarbeiten, denn das ist eine universelle Schnittstelle.

Beispiel:

  • wc: zählt z.B. die Anzahl von Zeilen in der Eingabe

  • find: findet Dateien, z.B. nach Änderungsdatum

  • grep: sucht nach vorgegebenen Begriffen in der Eingabe

Daraus kann dann z.B. folgender Befehl kombiniert werden:

find . -mtime -15m -type f | grep -i info | wc -l

Hierbei wird die Anzahl der Dateien ausgegeben, welche die Zeichenkette info im Dateinamen beinhalten und in den letzten 15 Minuten modifiziert wurden.