Bevor wir drauf eingehen, was ein Betriebssystem ist und wozu mach sowas überhaupt braucht, lösen Sie die folgende Aufgabe. Sie können diese gut auch zu zweit diskutieren.
Sie kennen sicher mindestens zwei Betriebssysteme, sogar eher mehr, zumindest vom Namen her.
Welche könnten das sein? Notieren Sie sich deren Namen.
Überlegen Sie sich nun mal in Ruhe, was dieses Betriebssystem überhaupt soll.
Denken Sie dabei auch an die Themen, die Sie im Informatikunterricht gelernt hatten. Zudem haben Sie mehrere Rollen: einerseits sind Sie Anwender*in, andererseits auch Programmierer*in.
Sobald Sie sich im Klaren sind, schreiben Sie ein kurzes Essay (halbe A4-Seite) und schicken dieses an die Lehrperson.
Frei nach Schiller (oder so😂):
Ein Betriebssystem ist eine Software, welche den Zugriff auf die Hardware vereinfacht und koordiniert.
Das ist natürlich jetzt sehr kurz, ist aber in etwa das Essenzielle.
Was ist nun damit gemeint?
"Ein Betriebssystem ist eine Software", darüber sind wir uns wohl einig. Es ist eine Software, die man mittels USB-Stick (früher CD-ROM oder Diskette) oder auch Setup-Datei installieren kann. Es ist also nicht Hardware.
"…eine Software, die den Zugriff auf die Hardware vereinfacht".
Nun, warum brauchen wir Zugriff auf die Hardware? Ganz einfach, unser Computer IST ja Hardware. Die Software, auch jedes Word und PowerPoint, läuft auf der Hardware.
Geht es bei diesem Zugriff um uns als Anwender*innen oder hat da sonst noch wer Zugriff drauf?
Das ist eine gute Frage und schon der Schlüssel dazu, warum ein Betriebssystem nicht so einfach in einem kurzen Satz erklärt werden kann.
"…Zugriff auf die Hardware vereinfacht"
Mit Vereinfachung ist auch gemeint, dass Sie sich nicht um technische Belange der Hardware kümmern müssen. Erinnern Sie sich an die Breadboard-Computer, die wir angeschaut haben? Hier nochmals ein Beispiel:
Das ist ein vollwertiger 8Bit Computer. Er hat sogar ein kleines Display. Die Eingabe erfolgt über winzige Dip-Switches. Um darauf komfortabel arbeiten können, müsste man noch einen Bildschirm und eine Tastatur anschliessen. Und eine SSD wäre auch noch praktisch zum Speichern.
Aber wie geht das? Können Sie das? Ich denke nicht, ausser, Sie haben sich damit auseinandergesetzt.
Da muss es etwas geben, das den Zugriff auf einen solchen Computer vereinfacht.
Und was ist mit der Koordinierung?
Auch hier:
Wir haben in unserer Definition oben vier relevante Stichworte:
Es hilft, wenn man sich das Ganze als Schichten vorstellt:
Da scheint also zwischen den Anwendungsprogrammen und der Hardware eine Schicht zu stecken, die man "Betriebssystem" nennt. Und dieses Betriebssystem regelt, quasi als Wächter und Koordinator, den Zugriff auf die darunterliegende Hardware. Weil dieser Zugriff aber in der Regel sehr kompliziert resp. komplex ist, sollen wir uns nicht darum kümmern müssen, sondern das Betriebssystem macht das.
Erinnern Sie sich an die Analogie mit dem Fundbüro im Modul "Datenbanken"? Als Alternative können Sie sich auch ein Zeughaus des Militärs vorstellen. Da können Sie nicht einfach reinspazieren und sich bedienen. Nein, da hat es an der Theke beim Eingang einen Verwalter. Und Sie sagen dem, was Sie brauchen. Er wird Ihnen sagen, ob Sie das überhaupt haben dürfen. Wenn ja, müssen Sie es nicht selbst holen gehen im Lager, sondern er organisiert dies für Sie. Sie müssen lediglich ein wenig warten. Und falls der Artikel nicht verfügbar ist, wird er Ihnen das mitteilen und allenfalls Alternativen vorschlagen oder Sie heimschicken.
Der dirkete Zugriff auf das Lager des Zeughauses wäre viel zu mühsam. Sie kennen sich ja überhaupt icht aus. Sie würden ewig brauchen, bis Sie was finden. Zudem, wenn Sie was mitnehmen, müssten Sie es ja in der Lagerverwaltungssoftware noch austragen, sonst würde der Bestand nicht mehr stimmen.
Zudem: es hat noch genau ein paar Schuhe, aber zwei Personen stehen an. Wer kriegt nun die Schuhe? Wäre da kein Verwalter an der Theke, würden Sie sich vielleicht mit der anderen Person prügeln. Der Verwalter wird stattdessen entscheiden und dafür sorgen, dass Sie sich nicht in die Haare geraten.
Das Zeughaus können Sie sich auch als eine Warteschlange vorstellen. Sie dürfen nicht einfach neben der anstehenden Warteschlange vordrängeln und dem Verwalter sagen, Sie hätten jetzt gerne sofort Ihre Schuhe. Der wird Sie nach hinten schicken und sagen, Sie sollen gefälligst warten. Das ist z.B. bei Druckjobs genau gleich. Oder auch beim Speichern von Daten auf die SSD.
In unserer Zeughaus-Analogie ist der Verwalter also das Betriebssystem:
Somit haben wir nicht nur geklärt, was ein Betriebssystem ist, sondern auch, wozu es dient.
Gehen wir von der Analogie weg hin zum echten Betriebssystem.
Sie können sich an das Modul "Rechnerarchitektur" erinnern. Eigentlich war alles "sehr simpel", es geht ja immer nur um 0 oder 1…aber trotzdem war die ganze Verkabelung schlussendlich sehr komplex.
Wie man Maus, Tastatur, Festplatte, Bildschirm, etc. an einen Computer anschliesst, habe wir im Unterricht nicht angeschaut. Auch hier gilt zwar: nur 0 oder 1, aber das macht es am Schluss unglaublich komplex, weil jedes Peripheriegerät auf eine unterschiedliche Methode angeschlossen wird.
Stellen Sie sich nur eine SSD vor. Diese hat einen Haufen Speicherzellen. Was bedeutet das nun, wenn wir ein Word-Dokument speichern möchten? Wie wollen wir wissen, wo auf der SSD das gespeichert werden soll? An der einen Speicherstelle steckt ja vielleicht bereits eine Zahl drin. Drüfen wir diese nun überschreiben oder gehört diese Zahl ev. zu einer anderen Word-Datei?
Der Computer ist eine Maschine. Diese Maschine ist für uns Menschen, wenn wir sie im Alltag bedienen wollen, zu komplex. Deshalb erstellt man mit einem Betriebssytem quasi eine neue Maschine, in dem Fall eine virtuelle Maschine, welche einen einfacheren Zugriff auf die Hardware erlaubt.
Dieses Erstellen von virtuellen Maschinen auf einer echten Maschine kann beliebig fortgesetzt werden und dient der Abstraktion und entsprechend der Vereinfachung für den Zugriff auf die Hardware.
Python-Code können Sie mit einem einfachen Mausklick ausführen. Auch darunter steckt eine virtuelle Maschine, nämlich der Python-Interpreter. Haben Sie schon mal mit Java programmiert? Da gibt es eine Software-Komponente, die heisst JVM, und das bedeutet "Java Virtual Machine". Dies ist auch eine virtuelle Maschine, um den Zugriff auf die Hardware zu vereinfachen.
Tanenbaum & Bos (2016) verwenden ein schönes Bild bezüglich Schnittstellen:
Früher gab es eine unglaubliche Fülle an Anschlussmöglichkeiten und Standards, beispielsweise Serialport, Parallelport, ISA, EISA, Microchannel, SCSI, IDE, etc.
Hier zur Belustigung ein Bild mit einigen Anschlüssen, die es mal gab (und teilweise immer noch gibt):
Die Einführung von USB sowie dem Prinzip von Plug'n Play (man kann ein Gerät einfach einstecken und es funktioniert) war ein Segen! Das hat vieles vereinfacht.
Unterdessen sind Hardware-Schnittstellen mehrheitlich genormt. Trotzdem gibt es eine Vielzahl davon, und die unterscheiden sich komplett voneinander:
Ein Betriebssystem sorgt dafür, dass der Zugriff auf diese Ressourcen vereinfacht werden. Das gilt einerseits für Sie als Anwender*in. Eben, Sie müssen nicht mehr vorgängig einen Treiber installieren, sondern können das (USB)-Gerät einfach mal einstecken.
Aber auch als Entwickler*in in Python müssen Sie die Speicherung Ihrer Daten auf beispielsweise eine SSD nicht jedes Mal neu programmieren. Da können Sie stattdessen auf Routinen vom Betriebssystem zugreifen.
Es soll nicht nur der Zugriff vereinfacht werden. Wir haben weiter oben bei der Zeughaus-Analogie auch gesehen, dass man das Zeughaus verwalten muss. Genau diese Aufgabe hat ein Betriebssystem auch.
Sie wollen in Photoshop irgendwas zeichnen, gleichzeitig lassen Sie im Hintergrund eine komplizierte Berechnung mit Python laufen, welche laufend Daten auf die SSD schreibt. Gleichzeitig kriegen Sie eine E-Mail mit einer Datei als Anhang, welche Sie gleich speichern wollen; ab besten in Ihrem OneDrive. Sofort beginnt der OneDrive-Client, diese Datei von Ihrem Computer hochzuladen, und so weiter und so fort.
Ich denke, Sie sehen, dass es da eine Koordination in irgendeiner Form geben muss.
Es ist wie bei natürlichen Ressourcen: deren Vorhandensein ist knapp. Die Bedürfnisse, auf diese Ressourcen zuzugreifen, sind jedoch beliebig gross.
Das führt zu Problemen:
Sie sind mit mir einverstanden, denke ich, das sollte nicht passieren.
Genau dafür ist ein Betriebssystem da. Es muss die verschiedenen Ressourcen und Aufgaben, die auf die Ressourcen zugreifen wollen, verwalten.
Dass zwei Programme gleichzeitig oder quasi gleichzeitig funktionieren, ist heute selbstverständlich. Das war aber nicht immer so. Zu MS-DOS Zeiten konnte immer nur genau ein Programm laufen und im Speicher geladen sein.
Damals war in diesem Zusammenhang weniger Koordination notwendig. Aber wenn zwei Programme gleichzeitig laufen sollen, dann braucht es Koordination. Was ist, wenn gerade zwei Programme gleichzeitig auf die SSD zugreifen wollen? Was passiert resp. was darf nicht passieren? Dieser Zugriff muss geregelt sein.
Im folgenden Video finden Sie eine schöne Zusammenfassung davon, wozu Betriebssysteme gut sind:
Und hier als Alternative noch ein zweites: