Äh, es scheint eine Menge Rechtfertigungen zu geben, die "so ist es besser".
Ich denke, die Leute könnten vom Lesen von "Showstopper" profitieren. das Buch über die Entwicklung von Windows NT.
Der ganze Grund, warum die Dienste unter Windows NT als DLLs in einem Prozess ausgeführt werden, war, dass sie als separate Prozesse zu langsam waren.
Wenn Sie sich schmutzig gemacht haben, werden Sie feststellen, dass die Strategie zum Laden der Bibliothek das Problem ist.
Auf Unices (im Allgemeinen) werden die Codesegmente der Shared Libraries (DLLs) tatsächlich gemeinsam genutzt.
Windows NT lädt eine Kopie der DLL pro Prozess, da es das Bibliothekscodesegment (und das ausführbare Codesegment) nach dem Laden manipuliert. (Sagt es, wo sind Ihre Daten?)
Dies führt zu Codesegmenten in Bibliotheken, die nicht wiederverwendbar sind.
Das Erstellen des NT-Prozesses ist also ziemlich teuer. Und auf der anderen Seite bedeutet dies, dass DLL keine nennenswerte Speicherersparnis darstellt, sondern eine Chance für Abhängigkeitsprobleme zwischen Apps darstellt.
Manchmal lohnt es sich in der Technik, zurückzutreten und zu sagen: "Wenn wir das jetzt so gestalten würden, dass es wirklich scheiße ist, wie würde es dann aussehen?"
Ich arbeitete mit einem eingebetteten System, das einst ziemlich temperamentvoll war, und eines Tages schaute ich es mir an und stellte fest, dass es sich um ein Hohlraummagnetron handelte, mit der Elektronik im Mikrowellenhohlraum. Danach haben wir es viel stabiler (und weniger wie eine Mikrowelle) gemacht.