Zwei empfehlenswerte Lehrbücher vermitteln die Grundlagen der Betriebssysteme beziehungsweise der C- und C++-Programmierung.
Ob Big Iron – etwa ein Mainframe oder Supercomputer – oder eine kleine virtuelle Maschine: Jeder Rechner braucht ein Betriebssystem. Dessen Aufgaben sind vielfältig: Es verwaltet Ressourcen wie Speicher, Plattenplatz und Rechenkapazität, es stellt Hardware-unabhängige Programmierschnittstellen und Geräte-unabhänge Ein- und Ausgabefunktionen bereit, es sorgt für Sicherheit, ermöglicht die Kommunikation von Prozessen untereinander und stellt dem Anwender eine Bedienoberfläche bereit.
Betriebssysteme sind also recht komplexe Gebilde. Ihre Grundlagen und Konzepte stellt nun systematisch der Band “Betriebssysteme” von Eduard Glatz vor.
Viele Konzepte gut erklärt
Das Werk ist als Lehrbuch konzipiert, was einen nüchternen Ton bedingt. Auch werden vor Beginn jedes Kapitels Lernziele definiert. Die sehr systematische Aufbereitung des Stoffes dürfte auch Lesern entgegenkommen, die keine Studenten sind – stellenweise wirkt die penible Methodik allerdings auch leicht übertrieben, etwa wenn jeder mögliche Terminus prinzipiell ins Englische respektive Deutsche übersetzt wird.
Wo es für das Verständnis nötig ist, blickt das Buch auch über die Grenzen des Betriebssystems hinaus und erläutert beispielsweise den prinzipiellen Aufbau heutiger Mikroprozessoren, weil deren Konzept verschiedener Privilegienstufen unter anderem die Basis für Schutzmechanismen des Operating System bildet. Wichtige Modelle wie etwa das Prozessmodell in Kapitel 4 behandelt das Buch sowohl aus der Unix/Linux-Perspektive als auch aus Windows-Sicht, was hilfreich und erhellend ist.
Kapitel 5 und 6 wenden sich der Synchronisation und Kommunikation zwischen Prozessen zu, Kapitel 7 ist mit “Ein- und Ausgabe” überschrieben. Für die verschiedenen Ein- und Ausgabearten verwendet der Autor hier wie an vielen Stellen kurze, instruktive Beispiele, die sehr zur guten Verständlichkeit beitragen. Das Kapitel geht auch auf Treiber, Massenspeicher und Scheduler ein. Sogar Benutzeroberflächen werden im I/O-Kapitel behandelt. Den Dateisystemen ist aber später ein eigenes Kapitel 9 gewidmet, dem Kapitel 8 zur Speicherverwaltung vorausgeht.
Im zehnten Kapitel dreht sich alles um Entwicklungswerkzeuge, Bibliotheken und die Skriptprogrammierung unter Unix. Hier vermisst man ein paar Absätze zur Windows Power Shell. Kapitel 11 mit dem Thema Sicherheit fällt recht kurz aus, es behandelt im Wesentlichen auch nur Autorisierung und Zugriffskontrolle und spart Themen wie Kryptographie oder Benutzerverwaltung aus. Das nächste Kapitel beleuchtet die Virtualisierung von Rechnerressourcen, bevor das Schlusskapitel mobile Betriebssysteme erörtert.
Insgesamt stellt das Werk viele grundlegende Konzepte moderner Betriebssysteme anschaulich und gut verständlich dar. Es ist nicht bei jeder Spezialität jedes OS auf dem allerneuesten Stand – beispielsweise sagt es noch nichts zu Systemd –, das tut der Darstellung der prinzipiellen Zusammenhänge aber keinen Abbruch.
Alles zu C++
Bei dem Mammutwerk von Ulrich Kaiser und Martin Guddat zu C und C++ bleiben auf über 1200 Seiten kaum Fragen offen. Erschöpfend werden alle Aspekte der C- und C++-Programmierung behandelt, angefangen von den Grundbegriffen der Software-Entwicklung bis zu fortgeschritteneren Themen wie der Objektorientierung in C++. Dabei werden anfangs keinerlei Programmierkenntnisse vorausgesetzt.
Doch geht der Ehrgeiz der Autoren weiter: Nicht nur eine Einführung in die Sprache soll es sein, sie wollen “über das Interesse an der Programmierung zur Informatik” führen. Dieser Anspruch bedingt aber nicht nur den enormen Umfang, sondern auch die eher willkürliche Wahl von Informatik-Themen.
Das Buch enthält viele Codebeispiele und Illustrationen, die Sprache ist klar und einfach, das erleichtert das Verständnis. Ein Anhang mit Aufgaben und Lösungen erlaubt die Kontrolle des Lernfortschritts im Selbststudium. Alles in allem ein sehr empfehlenswerter Titel für alle, die C/C++ von Grund auf lernen wollen.







