Введение

Режимы работы компьютеров

Режимы работы процессора (также называемые режимами процессора, состояниями процессора, уровнями привилегий процессора и другими названиями) — это режимы работы центрального процессора большинства компьютерных архитектур, которые накладывают ограничения на тип и область операций, выполняемых инструкциями, исполняемыми процессором. Например, такая конструкция позволяет операционной системе работать с более широкими привилегиями, чем приложению, путем запуска операционной системы и приложений в различных режимах. В идеале, только высокодоверенный код ядра должен выполняться в не ограниченном режиме; все остальное (включая некорпоративные части операционной системы) работает в ограниченном режиме и должно использовать системный вызов (через прерывание) для запроса к ядру выполнить от его имени любую операцию, которая может повредить или скомпрометировать систему, что делает невозможным для ненадежных программ изменять или повреждать другие программы (или саму вычислительную систему). Драйверы устройств разрабатываются как часть ядра из-за необходимости частого доступа к операциям ввода-вывода. Может быть реализовано несколько режимов, например, позволяющих гипервизору запускать несколько операционных систем под своим управлением, что является базовой конструкцией многих современных систем виртуальных машин.

Архитектура

Несколько компьютерных систем, представленных в 1960-х годах, таких как IBM System/360, DEC PDP 6/PDP 10, серии GE 600/Honeywell 6000 и серии Burroughs B5000 и B6500, поддерживали два режима работы центрального процессора: режим, предоставляющий полные привилегии коду, выполняющемуся в этом режиме, и режим, ограничивающий прямой доступ к устройствам ввода/вывода и некоторым другим аппаратным средствам для кода, выполняющегося в этом режиме. Первый режим назывался режимом супервизора (System/360), исполнительным режимом (PDP 6/PDP 10), главным режимом (серия GE 600), режимом управления (серия B5000) и состоянием управления (серия B6500). Второй режим назывался проблемным состоянием (System/360), пользовательским режимом (PDP 6/PDP 10), рабочим режимом (серия GE 600) и нормальным состоянием (серия B6500); в серии B5000 существовало несколько режимов, не являющихся режимами управления.

RISC-V

RISC V имеет три основных режима процессора: пользовательский (U), режим супервизора (S) и машинный (M). Виртуализация поддерживается посредством независимой настройки CSR, а не отдельного четвертого режима.