Hadmut Danisch

Ansichten eines Informatikers

Steigende Überkomplexität von Linux

Hadmut
28.7.2009 20:47

Linux unterliegt einem rapiden Verschlechterungsprozess.

Früher war es der Stil von Unix, die diversen Administrations- und Hilfsprogramme möglichst unabhängig und einfach zu halten und die Komplexität auf deren Zusammenarbeit zu verlagern. Früher konnte man die wesentlichen Unix-Programme relativ schnell und einfach mit strace (bzw. truss) und gegebenenfalls einem Blick in den Quelltext debuggen.

Mittlerweile drehen die Desktop-Schreiber von Gnome, KDE, OpenDesktop aber zunehmend durch. Die Software wird überwiegend von relativ jungen Leuten mit wenig “historischer Programmiererfahrung” geschrieben, die ziemlich locker drauflosprogrammieren. Das Ergebnis sind hochkomplexe und dadurch instabile und sicherheitsanfällige Systeme.

Anfang der 80er Jahre habe ich noch ein Z80-Betriebssystem in den Osterferien komplett disassembliert, gelesen und verstanden. 64 intern war damals die Bibel.

Zu Zeiten von SunOS 3.5 kannte man das ganze Betriebssystem in seiner Funktion.

Unter Solaris wurde es dann langsam zu zeitintensiv, noch jedes Detail zu kennen und verstanden zu haben. Dafür ging das dann unter Linux noch jahrelang.

Bei den modernen Desktops steht man gelegentlich davor wie der Ochs’ am Berg: Die bauen wie die Wilden hochkomplexe Systeme mit undurchsichtigen Zusammenhängen und haben dazu nicht einmal aktuelle und exakte Dokumentationen.

Gnome-Applikationen bekommen gelegentlich Schluckauf. Wo suchen? Keine Ahnung, kein systematischer Anfangszustand.

Sie haben als allgemeines Adressbuch Akonadi gebaut, undurchsichtig, instabil, ressourcenvergeudend.

Das Standard-Netzwerktool unter Ubuntu ist der Network Manager. Eigentlich von RedHat geschrieben, paßt kaum in die Debian/Ubuntu-Umgebung. Der Autor ist überheblich und arrogant und ignoriert jeden Verbesserungsvorschlag. Pre-up und Pre-down-Phasen will er nicht, weil jede Applikation ja damit klarkommen müßte, wenn plötzlich das Netzwerk fehlt. Firewallregeln zu setzen oder Dämonen sauber herunterzufahren ist seine Sache nicht. Auch nötige Informationen werden nicht übergeben, man bekommt einen UUID und soll sich den Kram aus einem Shell-Skript über den DBus selbst zusammensuchen. Das ist nicht nur Vergeudung von Ressourcen, sonder auch deshalb übel, weil es für den DBus auch keine ordentliche Doku gibt. Überhaupt ist es eine völlig bescheuerte Idee, die Konfiguration nicht in normale Dateien abzulegen, sondern über den DBus zu verteilen. Dazu braucht man extra Dämonen, und hat noch das Problem, daß man unter Gnome und KDE unterschiedliche Konfigurationen hat. Richtig dreckig zu Debuggen. Nichts dokumentiert.

Ich habe gerade auf manchen Rechnern ein Problem mit Network-Manager, genauer gesagt mit dem Dämon, der über den DBus die System-Konfiguration verteilen soll. Doku is nich. Quelltext vorhanden, aber so gut wie nicht dokumentiert und sehr schwer lesbar. Ein Wust von Funktionsaufrufen ohne durchgängigen Faden.

Ich habe dazu auf der Mailingliste der Entwickler gefragt. Nicht mal die können sagen, wo man mit der Fehlersuche anfangen und wie man vorgehen könnte. Nur die entschuldigende Aussage, daß das Zeug sehr komplex sei und man viel wissen müsse.

Wenn aber schon bei ewas so einfachem und grundlegendem wie der Netzwerkkonfiguration Software eingesetzt wird, die nicht mehr zu debuggen ist und deren Funktionsweise man nicht mehr in angemesser Zeit durchblicken kann, dann geht da was grundlegend schief. Immer öfter stößt man im Linux-Umfeld auf Ideologen, die irgendwelchen Mist treiben und sich dabei überhaupt nicht mehr abbringen lassen, in ihrer Arroganz als Developer baden.

Ich glaube, daß Linux (genauer gesagt die Desktops) da gerade in eine ganz schlechte Richtung laufen. Linux entfernt sich immer weiter von dem sicheren, stabilen, beherrschbaren System, das es mal war, und damit von den wesentlichen Vorteilen gegenüber Windows. Und das hängt nicht zuletzt auch damit zusammen, daß die Programmiersprache C (von der ich mal sehr begeistert war), dazu überhaupt nicht taugt.


4 Kommentare (RSS-Feed)

Stefan
29.7.2009 1:08
Kommentarlink

Ich blicke da auch nicht durch. Irgendein avahi-autopid-Dämon startet ständig, und ein mDNS Dienst läuft, aber wozu man es braucht, und wann man es deaktivieren kann steht nicht in den Scripten.

Früher habe ich nur mit pon und poff gearbeitet, und man mußte an 3, 4 Stellen was eintragen (chap-secrets, peers/dsl-provider usw.) aber dann lief es. Jetzt habe ich einen Router, der automatisch gefunden wird, aber dafür klappt es mit dem Netzugang auch manchmal gar nicht. Den HP 4+ LaserJet würde ich gerne immer unter der gleichen IP erreichen, und dann soll nicht vorher ein anderer Client sich dessen IP gemausert haben.


matze
31.7.2009 10:37
Kommentarlink

Das ist doch gerade der Witz an mDNS bzw. avahi. Du musst dich nicht um die IP kümmern, weil der Druckername lokal aufgelöst werden kann.


Hadmut
31.7.2009 17:38
Kommentarlink

Wofür mDNS und avahi rein theoretisch gut sind, ist bekannt. Außerdem sollen sie so eine Art Gegenstück zur Autokonfiguration von Windows bilden.

Ich weiß aber von keinem einzigen Fall, in dem jemand das Zeugs tatsächlich genutzt hat. Dafür hat mir der mDNS schon einige Male Probleme bereitet. Und eine ordentliche Doku habe ich dazu auch noch nicht gefunden.


yasar
31.7.2009 11:20
Kommentarlink

pon/poff kann man heute immer noch benutzen. Ich selbst setze es selbst mit hardy (wegen LTS) immer noch ein.

Mit Druckern habe ich die Erfharung gemacht, daß man diese am besten auf eine IP-Adresse festtackert, die außerhalb der DHCP-Adressen liegt. Dann kommt keiner in die Quere. ggf. Kann man das auch mit DHCP und Leases auf basis der MAC-Adressen bewerkstelligen. Das funktioniert zwar auch recht gut, aber es gibt seltene Fälle, wo dann wieder Probleme auftauchen.

Tatsache ist natürlich, daß Linux, genauer gesagt die Linux-Distributionen, immer komplexer werden. Das führt wie Hadmut schon dargelegt hat, zu dem Effekt, daß man genauso wie schon immer unter Windows mit dem debuggen von problemen manchmal wie der Ochs vorm Berg sitzt und nicht weiß, wo man beginnen soll.

Andererseits kann man natürlich immer noch auf die kleinen übersichtlichen Minimaldistributionen (z.B. DSL) zugreifen und sich damit die einfachheit mit dem Verlust der bequemlichkeit “erkaufen”.

Immerhin hat man ja die Möglichkeit, sich basierend auf dem kernel sein System selbst zusammenzustellen. Ich muß allerdings gestehen, daß das letzte Mal, daß ich mein “eigenes” linux zusammengestellt habe, schon ein paar Jahre her ist.