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
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
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).
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.
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#
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:
Schreibe Computerprogramme so, dass sie nur eine Aufgabe erledigen und diese gut machen.
Schreibe Programme so, dass sie zusammenarbeiten.
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 Eingabefind
: findet Dateien, z.B. nach Änderungsdatumgrep
: 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.