Hallo,
Tut man es nicht, implementiert man in den Hardwaretreibern die Funktionalität mehrfach.
Das ist ganz klar Quatsch. Jede Funktionalität sollte immer nur genau ein mal Implementiert sein.
Sollte sie. Ist sie aber im Falle von WLAN nicht. Darum gibt es nach wie vor Linux-WLAN-Treiber (z.B. "acx"), die kein WPA oder HostAP unterstützen - weil sie aus der Zeit vor dem "mac80211"-Stack sind. Unter XP ist die Situation ähnlich, dort weiß ich es von einer frühen RTL8180, die kein WPA kann.
Etwas nicht-hardwarespezifisches, was mehrere Treiber benutzen können bzw. was die Basis von Treibern ist, gehört zum Kernel dazu. Nicht unbedingt in den gleichen Adressraum, aber so ziemlich untrennbar. So zumindest meine Meinung.
Das sind aber alles (teil-)monolithische Designs.
Ganz recht. Keines der von Dir genannten OSe würde ich als Micro-Kernel bezeichnen, noch nicht mal als etwas Micro-Kernelig.
Naja, Windows NT ist als Mikrokernel entstanden, bricht aber aus Performancegründen teilweise aus diesem Konzept aus, darum Makrokernel. Das Grundprinzip ist trotzdem ein Mikrokernel.
Bei einem Mikrokernel hast du ohnehin Leistungsverlust für Syscalls
Das halte ich für eine unbewiesene Behauptung.
Wenn ein Syscall durch IPC hindurch mit Services über ein spezifiziertes Protokoll reden muss, dann ist das langsamer, als einfach eine Funktion aufzurufen. Sieh es als unbewiesen an, aber gib mir dann einen Grund an, warum sich monolithische Designs durchgesetzt haben.
(Gut, inzwischen findet ein Umdenken statt. Aber die Rechner sind um viele Größenordnungen schneller und Sicherheit wandert in die Köpfe von Designern und Programmierern.)
Gruß,
Svenska