les performances d'un tel système *conçu* pour les µk et tirant parti de L4 (notamment des LIPC, etc.) pourraient être excellentes.
Pour l'instant ce n'est pas le cas. Je surveillerai néanmoins tout ça de plus près maintenant ;)
2/ le DGA sous GNU/Linux, il faut avoir les droits roots. Avec un protocole bien conçu, il est possible de faire sur un multi-serveur sans avoir de droit root (juste un token "dga")
Ca peut se faire aussi sous linux, mais ça n'existe pas encore, c'est en développement :))
Fais-le, et on verra.
Voici la méthode que je propose :
le processus fait appel à une fonction write() sur une page
write() marque la page en question non writable(et on la locke en ram) (ou encore mieux, utiliser un genre de copy on write !)
...
l'appel d'écriture asynchrone se fait
on marque la page writable à nouveau (et on la delocke) (ou on la détruit si on a fait le pseudo copy on write et qu'on a fait une copie entre temps)
Si entre temps le processus a tenté une écriture sur cette page on peut
l'intercepter et l'endormir. Ou si on a fait le pseudo copy on write il peut continuer, et on ne procède à la copie que si c'est nécessaire.
T'en pense quoi ?? Ca m'a l'air pas mal, mais il doit y avoir un problème sinon tous les noyaux monolithiques feraient comme ça.
Là, j'aimerais bien savoir comment.
L'idée est d'utiliser les niveaux de privilèges non utilisés sur x86 de la manière suivante :
On rajoute un privilege level de 1 (et si on veut de 2 aussi) contenant les fonctions autorisées avec moins de droits (celles que pourront lancer un programme qui a besoin de droits mais qui ne devrait pas être root). Au lancement d'un proc on le marque en fonction de son "niveau de cpl sous-jacent" (hum, j'espère que tu vois ce que je veux dire, c'est mal expliqué). Lorsqu'on fait un appel système, il est opéré par le cpl sous jacent correspondant si le programme a le droit de le faire, sinon... Et les cpl de 1 et 2 ne touchent pas à 0, donc ce qu'on voulait faire est accompli.
Problème : toutes les architectures n'ont pas 4 niveaux de privilèges :(
Le reste du débat micro noyau/monolithique m'apparaît de plus en plus comme une question de point de vue personnel. J'attends toujours un bench complètement neutre sur la chose.
[^] # Re: linux a 11 ans, momment de changer d'air!
Posté par Stephane Marchesin . En réponse à la dépêche Bitkeeper, RMS et PLONK.. Évalué à 1.
Pour l'instant ce n'est pas le cas. Je surveillerai néanmoins tout ça de plus près maintenant ;)
2/ le DGA sous GNU/Linux, il faut avoir les droits roots. Avec un protocole bien conçu, il est possible de faire sur un multi-serveur sans avoir de droit root (juste un token "dga")
Ca peut se faire aussi sous linux, mais ça n'existe pas encore, c'est en développement :))
Fais-le, et on verra.
Voici la méthode que je propose :
le processus fait appel à une fonction write() sur une page
write() marque la page en question non writable(et on la locke en ram) (ou encore mieux, utiliser un genre de copy on write !)
...
l'appel d'écriture asynchrone se fait
on marque la page writable à nouveau (et on la delocke) (ou on la détruit si on a fait le pseudo copy on write et qu'on a fait une copie entre temps)
Si entre temps le processus a tenté une écriture sur cette page on peut
l'intercepter et l'endormir. Ou si on a fait le pseudo copy on write il peut continuer, et on ne procède à la copie que si c'est nécessaire.
T'en pense quoi ?? Ca m'a l'air pas mal, mais il doit y avoir un problème sinon tous les noyaux monolithiques feraient comme ça.
Là, j'aimerais bien savoir comment.
L'idée est d'utiliser les niveaux de privilèges non utilisés sur x86 de la manière suivante :
On rajoute un privilege level de 1 (et si on veut de 2 aussi) contenant les fonctions autorisées avec moins de droits (celles que pourront lancer un programme qui a besoin de droits mais qui ne devrait pas être root). Au lancement d'un proc on le marque en fonction de son "niveau de cpl sous-jacent" (hum, j'espère que tu vois ce que je veux dire, c'est mal expliqué). Lorsqu'on fait un appel système, il est opéré par le cpl sous jacent correspondant si le programme a le droit de le faire, sinon... Et les cpl de 1 et 2 ne touchent pas à 0, donc ce qu'on voulait faire est accompli.
Problème : toutes les architectures n'ont pas 4 niveaux de privilèges :(
Le reste du débat micro noyau/monolithique m'apparaît de plus en plus comme une question de point de vue personnel. J'attends toujours un bench complètement neutre sur la chose.