• # La fiabilité n'est pas le seul avantage des micro-noyaux...

    Posté par . En réponse à la dépêche MINIX 3 - Google Summer of Code. Évalué à 2.

    il y a aussi la facilité de développement, la maintenabilité et le débugage.
    A votre avis, qu'est-ce qui est le plus simple à coder et à débuger ?
    Un noyau que l'on doit recompiler et relinker à chaque modification, ou alors des serveurs qui tournent en userland ?
    Sous Linux, pour modifier la pile TCP/IP, on doit recompiler le noyal, redémarrer, et prier pour que la machine ne crashe pas. Si elle crashe, bonjour pour débugger.
    Sous un micro-noyau, hop, on compile un serveur qui tourne en espace utilisateur, et que l'on peut débugger comme n'importe quelle application (gdb), et c'est parti. Pareil pour les modules : même si on peut les compiler et les charger à la volée, et bien ils peuvent toujours planter tout le système, et le débuggage n'a rien d'évident.
    Avec la complexité croissante des architectures et pilotes modernes, je préfère avoir des centaines de milliers de lignes de code qui tournent en espace utilisateur qu'en mode noyau : on peut retourner le problème dans tous les sens, mais personne ne me fera trouver acceptable qu'un bug dans le pilote de ma webcam puisse planter ma machine ou flinguer le contenu de mon disque dur.

    Et puis bon, pour soutenir ma thèse sur la facilité de développement, j'ai deux exemples de grand succès : Hurd et Minix :-)