Что недоступно из пользовательского пространства?

Я где-то читал (3.1.3), что существует высокое кольцо (режим супервизора) и низкое кольцо (пользовательский режим) и что некоторые «вещи» могут выполняться только с самого высокого кольца.

Что они подразумевают под «вещами»? Я предполагаю, что это включает в себя то, что syscalls (чтение / запись / открытие …), но это так? Думают ли они о чем-то более низком уровне, например, о возможных инструкциях ASM?

Есть ли список где-то, что разрешено в пользовательском режиме, а что нет?

Кольца, о которых вы говорите, обсуждаются здесь в Википедии под названием « Кольцо (компьютерная безопасность)» .

ss колец

Взгляните на раздел режима Supervisor , это то, что использует Linux.

Linux и Windows – это две операционные системы, которые используют супервизор / пользовательский режим. Для выполнения специализированных функций код пользовательского режима должен выполнять системный вызов в режиме супервизора или даже в пространстве ядра, где доверенный код операционной системы выполнит требуемую задачу и вернет ее обратно в пространство пользователя.

Я также хотел бы взглянуть на страницу « Системный вызов» , в которой более подробно обсуждается характер этих вызовов, уделяя особое внимание привилегиям, обсуждаемым там:

Однако многим нормальным приложениям явно необходим доступ к этим компонентам, поэтому системные вызовы становятся доступными операционной системой для обеспечения четко определенных, безопасных реализаций для таких операций. Операционная система выполняется на самом высоком уровне привилегий и позволяет приложениям запрашивать услуги через системные вызовы, которые часто выполняются с помощью прерываний; прерывание автоматически переводит процессор на некоторый уровень требуемых привилегий, а затем передает управление ядру, которое определяет, должна ли вызывающая программа предоставлять запрошенную услугу. Если услуга предоставлена, ядро ​​выполняет определенный набор инструкций, по которым вызывающая программа не имеет прямого управления, возвращает уровень привилегий к вызывающей программе, а затем возвращает управление вызывающей программе.

API ядра Kernel также может пролить свет на ваши вопросы относительно того, что находится в режиме супервизора.