Показать статистику
0 голосов
от (4.5тыс. баллов)
49 просмотров 1 ответов

1 Ответ

0 голосов
от (15.8тыс. баллов)
User Space - адресное пространство, где выполняются обычные пользовательские процессы (то есть все, кроме ядра). Роль ядра состоит в том, чтобы управлять приложениями, работающими в этом пространстве, взаимодействием друг с другом и самим компьютером.
Kernel Space - это пространство памяти, где хранится и выполняется код ядра.

Процессы, запущенные в пользовательском пространстве, имеют доступ только к ограниченной части памяти, тогда как ядро имеет доступ ко всей памяти. Процессы, запущенные в пространстве пользователя, также не имеют доступа к пространству ядра. Процессы пользовательского пространства могут получить доступ только к небольшой части ядра через интерфейс, предоставляемый ядром, - системные вызовы. Если процесс выполняет системный вызов, ядру отправляется программное прерывание, которое затем отправляет соответствующий обработчик прерывания и продолжает свою работу после завершения обработчика.

Код пространства ядра имеет свойство работать в "режиме ядра", который (на вашем типичном настольном компьютере -x86)  который выполняется в кольце 0. Обычно в архитектуре x86 имеется 4 кольца защиты. Ring 0 (режим ядра), Ring 1 (может использоваться гипервизорами виртуальных машин или драйверами), Ring 2 (может использоваться драйверами, хотя не уверен в этом). Кольцо 3 - это то, под чем работают типичные приложения. Это кольцо с наименьшими привилегиями, и приложения, работающие в нем, имеют доступ к подмножеству инструкций процессора. Кольцо 0 (пространство ядра) является самым привилегированным кольцом и имеет доступ ко всем инструкциям машины. Например, "простое" приложение (например, браузер) не может использовать инструкции сборки x86 lgdt для загрузки глобальной таблицы дескрипторов или hlt для остановки процессора.
...