Je ne peut qu'en rester au niveau des généralités de l'architecture des OS, mais cette vidéo explique bien la situation pour Windows :
En résumé les pilotes systèmes de Windows tournent au niveau ring 0 et entrainent un plantage total de la machine en cas d'erreur logicielle non gérée. C'est toujours mieux que les générations précédentes (DOS, Windows 3, MacOS 9) qui n'isolaient pas du tout les applications et l'OS, et ça reste comparable aux Linux actuels qui restent des OS monolithiques (d'abord statiques lorsqu'il fallait "recompiler le noyau" pour ajouter des pilotes, puis actuellement dynamiques / modulaires avec des modules chargeables au besoin). BSD ne fait pas mieux.
Il y a des exceptions comme le pilote FUSE qui permet de développer un système de fichier en user-space, ou les systèmes d'exploitation à micro-noyaux comme Mach, ou seul le strict minimum fonctionne en kernel-space et le plus gros de l'OS en user-space, mais au prix d'une performance réduite.
Par exemple cette étude montre bien l'impact sur les performance de ce fonctionnement en User-Space pour FUSE, impact aggravé avec l'accélération des performances des SSD :
https://www.usenix.org/system/files/conference/fast17/fast17-vangoor.pdfMacOS X est partiellement basé sur Mach mais n'avait pas de pilotes systèmes en User-Space jusqu'à 2019 et macOS X.15 Catalina, qui désormais propose de développer des pilotes systèmes sous forme de Kernel Extensions tournant en User-Space, au prix de contraintes beaucoup plus fortes sur ces pilotes, mais aussi de beaucoup plus de sécurité de fonctionnement :
https://support.kandji.io/support/solutions/articles/72000558740-system-extensions-overview-and-guide