Кольца защиты: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м →‎Реализация: пунктуация
Строка 9:
Многие современные архитектуры [[центральный процессор | центральных процессоров]] (включая популярную архитектуру [[x86]]) включают некоторые формы защиты. Но несмотря на это, операционная система [[Windows NT]], также как и [[UNIX]], полностью не используют эти возможности. Предшественница Windows NT операционная система [[OS/2]] использовала три кольца: кольцо 0 для кода [[ядро операционной системы | ядра]] и драйверов устройств, кольцо 2 для привилегированного кода (программы с доступом к операциям ввода-вывода), и кольцо 3 для непривилегированного кода (почти все пользовательские программы).
 
Оригинальная система Multics имела восемь колец защиты, но многие современные системы имеют, как правило, меньше. Процессор всегда знает, в каком кольце исполняется код, благодаря специальным машинным регистрам. В некоторых системах области виртуальной памяти также связаны с номерами колец, и более привилегированному кольцу даются специальные права (такие, как адресация реальной памяти в обход механизма виртуальной памяти).
 
Механизм колец строго ограничивает пути, с помощью которых управление можно передать от одного кольца к другому, а также предписывает ограничения на операции доступа к памяти, которые могут быть произведены внутри кольца. Обычно существует некоторая инструкция («ворота»), которая передаёт контроль из менее защищённого в более защищённое (с меньшим номером) кольцо; это известно как запрос супервизора во многих операционных системах, использующих кольцевую архитектуру. Этот механизм разработан для того, чтобы ограничить возможности случайного или намеренного нарушения безопасности.