• [^] # Re: Arf :)

    Posté par . En réponse à la dépêche Google Groups remonte aux années 80. Évalué à 9.

    >En fait, la question est : ça sert à quoi un MK ?



    Bonne question :-)



    En fait au début (c'est a dire sur le papier) le MK proposait plusieurs avantages :



    - une plus grande sécurité : comme l'idée c'est de mettre les serveurs et les drivers dans le userland, si un driver part en vrille, le système reste debout. L'autre avantage c'est que si tu trouves une faille dans un serveur tournant en userland (genre buffer overlfow ou machin du genre) tu n'obtiendras pas forcément l'accès sur la machine (en fait c'est ce qu'on reproche beaucoup au modèle monolithique, comme il y'a plein des choses dans le kerneland, un buffer overlfow dans sur un serveur et on peut passer maitre de la machine).L'inconvenient c'est la vitesse. Ca RAAAAMMME. D'ou l'idée de passer une partie des serveurs dans le kerneland. Le problème c'est que tu perds une partie de la sécurité au profit des performances. Autant rester sur un noyau monolithique si on veut aller vite.

    - les émulateurs : comme un micro noyau gère très peu de choses : il est possible de mettre des serveurs au dessus pour émuler facilement des systèmes d'exploitation. Mac OS X le fait par exemple : il est capable de lancer deux systèmes d'exploitation en même temps (Mac OS X et Classic) ce qui permet d'utiliser les applis des deux mondes de manières transparentes. On pourrait également imaginer un système a MK sur x86 capable de faire tourner des programmes MS-DOS, Windows, Linux et FreeBSD de manière transparente. Le problème c'est que la loi sur la propriété intellectuel met un sale coup a ce projet(faudrait payer une licence pour chaque système commercial émulé) et qu'au fond ca n'interresse pas tant de gens que ca.

    - Les sytèmes distribués. C'etait la grande marotte des micro noyaux : en effet si les serveurs ne sont pas dans le kerneland ils peuvent très bien etre sur une autre machine. A partir de la on peut écrire des systèmes permettant de gérer des clusters très facilement : on rajoute la machine et hop tout collabore de facon transparente. On peut faire ce genre de chose avec MOSIX sous linux mais il faut patcher son système. En fait le problème c'est qu'un système distribué n'a pas de bonne performances comme système isolé. Ca n'exige pas les mêmes choses. On a donc favorisé le developpement de systèmes d'exploitation plus orienté isolé (c'est a dire que tout tourne sur une seule machine) mais avec l'explosion des reseaux peut etre qu'on reviendra a des besoins de systèmes d'exploitations distribués. L'avenir le dira.

    - La portabilité : on s'est rendu compte que c'etait une connerie. Un système monolithique peut également étre très portable.



    L'idée donc c'est qu'un MK ca ne sert a rien pour un utilisateur lambda. C'est bien pour des applications bien précises (nottament les clusters) mais les systèmes actuels n'ont pas cette optique. On privilégie la vitesse avec un noyau monolithique ou en passant plein de trucs en kerneland, ce qui au fond, n'est pas forcément plus mal.