Lesenswert
26.02.2020, 10:45 Uhr
Entwickler-Kritik an der Struktur von Betriebssystemen
Der Tschechische Entwickler Bystroushaak hat in seinem Blog einen umfangreichen, sehr kritischen englischsprachigen Beitrag zur Struktur moderner Betriebssysteme veröffentlicht.
Der Autor arbeitet als Backend-Programmierer. Seine Aufgabe bestehen darin, Systeme zu erstellen, die alle Arten von Daten lesen, verarbeiten und speichern, alle Arten von Formaten parsen, alle Arten von Programmen aufrufen und mit anderen Systemen und Geräten interagieren. In der Tschechischen Nationalbibliothek gehörte er zu einem Team, das an einem System zur Verarbeitung elektronischer Publikationen arbeitete. Er schrieb fast den gesamten Backend-Code, von der Datenspeicherung bis zur Kommunikation mit bestehenden Bibliothekssystemen. In einer anderen Firma arbeitete er an einem System zum DDoS-Schutz und verfasste den größten Teil des Kommunikations-Backends. Auch am Backend für die Nubium-Entwicklung, eine Firma, die die wahrscheinlich größte tschechische Datei-Hosting-Website uloz.to hat er mitgewirkt.
In seinem englischsprachigen Beitrag führt er noch mehr Arbeiten auf, an denen er mitgewirkt hat, um seinen Lesern einen Einblick in seinen beruflichen Hintergrund zu geben. Er sagt, dass er überall, wo er gearbeitet hat, das gleiche Muster gesehen hat – unabhängig geschaffene, aber ungefähr ähnliche Software, die aus mehreren Anforderungen gewachsen ist:
- Zuverlässige Speicherung einer großen Anzahl kleiner Dateien (Millionen oder Milliarden von Dateien, von Megabyte bis Gigabyte pro Datei) oder einer kleineren Anzahl großer Dateien (Terabyte pro Datei).
- Lesen und Speichern der Konfiguration in einem strukturierten Format (INI, JSON, XML, YAML, ...).
- Strukturierte Kommunikation zwischen internen Diensten, aber auch mit externen Programmen.
- Verteilte Architektur mit mehreren physischen Maschinen, die eine gute Skalierung ermöglicht.
Wenn Sie ein Programmierer sind, so sagt er, wissen Sie wahrscheinlich, worauf er hinaus will. Wenn viele Programmierer das gleiche Muster auf irgendeiner Programmierbibliothek erstellen, ist es kein Fehler dieser Leute, sondern ein Fehler im Design der Bibliothek. Als er darüber nachgedacht hat, hat er erkannt, dass die Architektur des Betriebssystems selbst für diese Art von Arbeit falsch ist: "Die Dinge, die sie uns bietet und die Dinge, die sie uns erlaubt, sind nicht das, was wir wollen und erwarten. Vor allem nicht aus der Sicht der "Benutzeroberfläche des Programmierers", mit der er als Programmierer oft arbeitet.
An dieser Stelle beginnt die Kritik von Bystroushaak an den modernen Betriebssystemen – hier können Sie sie lesen.