Quelques questions concernant les sonneries de privilèges CPU x86:
Pourquoi les anneaux 1 et 2 ne sont-ils pas utilisés par la plupart des systèmes d'exploitation? Est-ce simplement pour maintenir la compatibilité du code avec d'autres architectures, ou y a-t-il une meilleure raison?
Existe-t-il des systèmes d'exploitation qui utilisent réellement ces anneaux? Ou sont-ils complètement inutilisés?
x86
cpu
privileges
user541686
la source
la source
Réponses:
En tant qu'écrivain de système d'exploitation amateur, j'ai trouvé que parce que la pagination (une partie importante du modèle de protection moderne) n'a qu'un concept de privilégié (anneau 0,1,2) et non privilégié, les avantages des anneaux 1 et 2 ont été considérablement réduits.
L'intention d'Intel en ayant les anneaux 1 et 2 est que le système d'exploitation place les pilotes de périphériques à ce niveau, donc ils sont privilégiés, mais quelque peu séparés du reste du code du noyau.
Les anneaux 1 et 2 sont en quelque sorte «majoritairement» privilégiés. Ils peuvent accéder aux pages du superviseur, mais s'ils tentent d'utiliser une instruction privilégiée, ils GPF comme le ferait ring 3. Ce n'est donc pas un mauvais endroit pour les pilotes comme prévu par Intel ...
Cela dit, ils ont certainement une utilisation dans certains modèles. En fait, pas toujours directement par le système d'exploitation. Par exemple, VirtualBox , une machine virtuelle , met le code du noyau invité dans l'anneau 1. Je suis également sûr que certains systèmes d'exploitation les utilisent, je ne pense tout simplement pas que ce soit une conception populaire pour le moment.
la source
Du point de vue de la conception du système d'exploitation, avoir plusieurs anneaux privilégiés est une bizarrerie de x86 - la plupart des autres processeurs n'ont que deux modes (superviseur et utilisateur). En tant que tel, concevoir un système d'exploitation pour exiger plusieurs modes privilégiés l'empêchera immédiatement d'être porté sur un autre processeur. De plus, de nombreux packages de virtualisation modernes n'émulent pas correctement les niveaux de privilèges autres que 0 et 3, ce qui rend les systèmes d'exploitation qui utilisent ces niveaux beaucoup plus difficiles à tester.
la source
Selon la page de Wikipédia sur Ring Security , les anneaux 1 et 2 sont utilisés pour les pilotes (anneau 1), les systèmes d'exploitation invités (anneau 1) et le code privilégié d'E / S (anneau 2), les hyperviseurs se trouvent en -1/0 (selon l'hyper-visière) pas 1 comme je l'ai déjà dit.
Cependant, les deux anneaux supplémentaires n'ont jamais vraiment aidé et sont donc devenus rarement utilisés. TBH, la plupart des codes utilisant les anneaux 1 et 2, ceux-ci les ont semi-réutilisés de leur utilisation d'origine (comme les hyperviseurs). La plupart des codes Windows de nos jours semblent traiter le système comme n'ayant que deux niveaux (noyau et utilisateur), probablement en raison de la surcharge associée à l'entrée et à la sortie du noyau du noyau.
la source
-
quelque part. Êtes-vous sûr que les hyperviseurs utilisent l'anneau 1?