«Кольца защиты» и «Режимы процессора» - это одно и то же? - PullRequest
1 голос
/ 19 января 2020

Я знаю, что CPU имеет специальные регистры для отслеживания режима работы CPU. Я думал, что «Защитные кольца» и «Режимы процессора» - это одно и то же, но когда я прочитал статью о «Защитных кольцах» в Википедии, я запутался в том, что такое «Защитные кольца». Смысл моей путаницы заключался в том, что в некоторых статьях википедии были написаны следующие строки:

Кольцевая защита в некоторых системах может сочетаться с режимами процессора (режим главного / ядра / привилегированного / супервизора и режим ведомого / непривилегированного / пользовательского). Операционные системы, работающие на аппаратном обеспечении, поддерживающем обе, могут использовать обе формы защиты или только одну.

Итак, является ли «Кольца защиты» абстракцией уровня ОС? В чем разница между «защитными кольцами» и «режимами процессора»? Любое дальнейшее объяснение приветствуется.

Защитные кольца

Режимы процессора

1 Ответ

5 голосов
/ 19 января 2020

«Кольца защиты» и «режимы ЦП» - это одно и то же?

В основном это зависит от того, как разработчик / производитель ЦП захотел определить свою терминологию.

Для 80х86; терминология определяется так, что существует несколько режимов ЦП (реальный режим, защищенный режим, длинный режим и т. д. c), а некоторые из режимов ЦП имеют уровни привилегий, которые не являются режимами ЦП. Однако Intel могла бы определить это больше как «защищенный режим имеет 4 подрежима, по одному на каждый уровень привилегий», если они хотят.

Для других процессоров терминология может быть определена так, что существует «супервизор». режим "и" пользовательский режим "(и, возможно, другие режимы -" режим виртуализации "," режим IRQ "и т. д. c). ARM определяет свою терминологию следующим образом (но они могли бы определить свою терминологию больше как «ЦП имеет только 2 режима (обычный режим и режим гипервизора), а все остальное - что-то еще (уровень привилегий)», если они захотят).

Итак, "Защитные кольца" - это абстракция уровня ОС? В чем разница между «защитными кольцами» и «режимами ЦП»?

В общем, концепция защитных колец (разбиение ОС на слои и наличие слоев с разными разрешениями / привилегиями) намного старше, чем 80x86. (по крайней мере, такой же старый, как и мультиплексные устройства в 1960-х годах, но, возможно, более старый и, вероятно, датируемый системами пакетной обработки в 1950-х годах), а дизайн защищенного режима 80x86 был просто реализацией существовавшей ранее концепции.

Однако ни одна современная ОС (о которой я знаю) не использует эту концепцию (например, «весь код пользователя в одном домене защиты»); и вместо этого они используют значительно большую изоляцию (например, «каждый отдельный процесс в своем изолированном домене защиты»), что делает довольно бессмысленным иметь более 2 уровней привилегий (один для управления изоляцией, а другой для всего, что было изолировано друг от друга) .

...