• [^] # Re: Contexte

    Posté par (site web personnel) . En réponse au lien Apps and driver support in Redox OS - OSnews. Évalué à 10.

    Faut revoir le débat Tanenbaum vs Torvalds au début du noyau Linux pour avoir les arguments de l'époque qui ont peut changé depuis.

    En gros ce choix de conception fait partie des noyaux dits micro-noyaux (Hurd, Minix, Redox OS, autres) et ceux dits monolithiques (Linux, BSD, etc.). Windows et macOS ont clairement une approche hybride en mettant le maximum en espace utilisateur mais gardant malgré tout pour des raisons de performances certaines choses dans l'espace noyau.

    Le nerf de la guerre c'est donc fiabilité contre performance. Car le passage de l'espace utilisateur à espace noyau est coûteux en temps (car le processeur doit faire certaines actions, tu peux perdre en cache des données, etc.) et y passer tous les pilotes en espace utilisateur a donc un impact significatif à cet égard. Cela augmente aussi la nécessité d'échanger des messages entre les pilotes et le reste du noyau ce qui ajoute un peu de complexité.

    Mais l'avantage c'est que si le pilote crashe (corruption mémoire ou autre), cela n'affectera pas à priori le reste du noyau qui pourra le relancer si nécessaire. Dans le cas d'un noyau monolithique comme Linux ton ordinateur est souvent bon à redémarrer suite à un kernel panic généré dans ce cas.

    30 ans après on voit que les approches absolutistes ont échoué. Les micro-noyaux purs sont peu répandus et les approches hybrides semblent privilégiés. C'est ce qui permet par exemple à Windows de relancer le pilote graphique quand il plante ce qui peut arriver, ces pilotes étant très gros et complexes un crash peut arriver de temps en temps.