• [^] # Re: Microkernel ?

    Posté par . En réponse au journal addr.sun_family = AF_DBUS;. Évalué à 10.

    On déplace du code en espace utilisateur vers du code noyau pour éviter du context switching.

    Je doute qu'on puisse raisonnablement en conclure qu'on tend vers du microkernel.

    La caractéristique des micro-noyaux ce n'est pas d'avoir un système d'IPC, puisque tous les noyaux en ont un ; c'est que :

    - ce soit l'une des rares fonctionnalités offertes ("idéalement" le noyau ne fait que gérer les contextes d'exécution, donc ordonnancement des processus, communication entre les processus et gestion de l'addressage mémoire) ;
    - qu'elle soit performante (puisque les tâches habituellement effectuées par le noyau le seront par une flotte de processus qui en aura donc beaucoup beaucoup besoin, des IPCs).

    Je ne trollerai ni sur le nombre de fonctionnalités traînant dans le noyau, ni sur les performances de D-Bus.

    Ceci dit ici le leitmotiv du changement c'est que le context switching coûte trop cher.
    C'est en partie dû au design du noyau Linux.

    Au contraire, les micro-noyaux :

    - utilisent énormément de context switching puisqu'un tas de processus sont impliqués pour fournir une fonctionnalité qui est classiquement entièrement gérée en kernel space ;
    - sont donc logiquement conçus pour être les plus efficaces possibles en la matière.