Also Linus hat offiziell auch gesagt, dass zerocopy scheiße ist und BSDs sollen das für sich behalten. Dass die lokale Kommunikation mit Sockets dann kein zerocopy kann ist rein ihre eigene Politik. Ich bin da auch skeptisch bei "high-level" und "Kernel". Ein Kernel sollte minimal sein und nur die Mittel dazu liefern, alles mit Anwendungen zu realisieren.
Da bist du aber auch bei den BSDs falsch.

Die BSD-Kernel sind auch alles andere als "Minimal".
Ich weiß immer noch nicht was mir kdbus liefert, was ich benötigen könnte. Mich hat dbus sehr genervt, weil die Anwendungen es dazu genutzt haben, zu verhindern, dass man eine zweite Instanz starten kann (und das ist mir einfach zu blöd, weil ich diese Funktion oft gerade beabsichtige). Also noch einmal... was kann kdbus nützliches für Anwendungen liefern (und sagt nicht Kommunikation, das ist nicht präzise genug! es geht um Mechanismen, die fehlen und nicht Mechanismen, die einfach anders sind).
kdbus liefert dir vom Funktionsumfang erst mal nicht mehr als das alte dbus. Es frisst eben nur deutlich weniger Ressourcen. Es geht hierbei nicht darum irgendetwas neues, anderes zu machen, sondern das vorhandene weniger stumpfsinnig ablaufen zu lassen. Und nein, man hat nicht KOMPLETT dbus in den Kernel verlagert.
Was dbus als ganzes liefert ist aber nunmal die Kommunikation zwischen den einzelnen Schichten. Du schließt ein USB-Controller an, dann kann dein Spiel informiert werden, dass dies geschehen ist. Dein Netzwerk fällt aus, dann kann dein Netzwerkdienst die Anwendungen informieren, dass sie nicht versuchen brauchen weiter Daten ins Netz zu senden und auf Timeouts zu warten. Du stellst deine Sound-Ausgabe auf Stumm, dann brauchen deine Anwendungen auch keinen Ton mehr ausgeben, kommt ja bei dir eh nicht mehr an.
All solche Sachen.
Und da braucht man jetzt nicht mit dem Argument kommen: "Das geht auch alles ohne dbus"... ja, natürlich, indem jede Anwendung für jede Art von Gegenanwendung die entsprechenden Schnittstellen implementiert und dauert am pollen ist. Und genau das verhindert dbus. Es ist ein einheitlicher Weg Nachrichten zwischen Anwendungen auszutauschen. Egal welche.
Ob die Implementierung jetzt besonders toll ist, sei mal dahin gestellt. Es kam ja nun auch niemand mit irgend etwas besserem hervor. Und wer jetzt das IPC von Android nennt, der soll sich mal die Kritik daran angucken
Und IPC auf Kernel Ebene ist jetzt echt nichts neues xD Und das Argument "das geht auch alles mit dem Bisherigen" hat uns so tolle Sachen wie Xorg eingebracht... ne Danke
