Поделиться через


Режим пользователя и режим ядра

Процессор на компьютере под управлением Windows работает в двух разных режимах: пользовательском режиме и режиме ядра. Процессор переключается между этими режимами в зависимости от типа выполняемого кода. Приложения работают в пользовательском режиме, а основные компоненты операционной системы работают в режиме ядра. Хотя многие драйверы работают в режиме ядра, некоторые из которых могут работать в пользовательском режиме.

Режим пользователя

При запуске приложения в пользовательском режиме Windows создает процесс для него. Этот процесс предоставляет приложению частное виртуальное адресное пространство и частную таблицу дескрипторов. Так как виртуальное адресное пространство каждого приложения является частным, одно приложение не может изменять данные другого приложения. Каждое приложение выполняется в изоляции, гарантируя, что если один из них завершает работу, он не влияет на другие приложения или операционную систему.

Виртуальное адресное пространство приложения в пользовательском режиме также ограничено. Процесс, выполняемый в пользовательском режиме, не может получить доступ к виртуальным адресам, зарезервированным для операционной системы. Ограничение виртуального адресного пространства приложения в пользовательском режиме предотвращает изменение или повреждение критически важных данных операционной системы.

Режим ядра

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

На следующей схеме показано взаимодействие между компонентами пользовательского режима и режима ядра.

диаграмма, показывющая взаимодействие между компонентами пользовательского режима и режима ядра в компьютерной системе.

виртуальных адресных пространств