Процессор выполняет программы либо в пользовательском режиме, либо в режиме ядра. И когда вы используете свой компьютер, ваш процессор регулярно переключается между ними в зависимости от того, что он делает. Но что такое режим пользователя и режим ядра и в чем разница между ними?
Давайте посмотрим, что это за режимы и почему ЦП должен переключаться между этими режимами.
Что такое «режим пользователя» в Windows?
Когда вы загружаете программу в Windows, она запускается в пользовательском режиме. Всякий раз, когда программа пользовательского режима хочет запустить, Windows создает для нее процесс. Процесс - это просто программа, которую выполняет процессор или которую Windows запланировала для выполнения. И всякий раз, когда Windows создает процесс, она также создает для этого процесса виртуальное адресное пространство.
А виртуальное адресное пространство представляет собой набор логических (нефизических) адресов, которые Windows назначает процессу. Процессы могут использовать эти адреса для хранения данных в физической памяти.
Кроме того, виртуальные адресные пространства изолированы. Таким образом, виртуальное адресное пространство одного процесса не мешает адресному пространству другого процесса. А поскольку программы пользовательского режима имеют отдельные адресные пространства, в случае сбоя одной программы происходит сбой только она и не приводит к остановке других программ или всей ОС вместе с ней.
Связанный: Советы, которые помогут исправить ошибку синего экрана в Windows 10
Другой способ описания приложений пользовательского режима - использовать термин «менее привилегированные». Windows ограничивает доступ приложений пользовательского режима напрямую к критическим системным ресурсам, что делает их менее привилегированными. Например, если приложению требуется доступ к оборудованию, оно должно пройти через ядро ОС с помощью системных вызовов.
Проще говоря, прикладные программы, такие как видеоигры, работают в пользовательском режиме. Они менее привилегированы, поэтому не имеют неограниченного доступа к системным ресурсам. Каждое приложение пользовательского режима имеет собственное адресное пространство. Приложение не может изменить адресное пространство другого приложения. Следовательно, если одно приложение выйдет из строя, это не повлияет на другие программы, работающие на компьютере.
Связанный: Предупреждающие знаки, что ваш компьютер выйдет из строя (и что делать)
Что такое «режим ядра» в Windows?
Прежде чем обсуждать режим ядра, мы должны сначала узнать, что такое «ядро» и как оно работает с Windows.
Ядро - это мозг операционной системы. Это основной программный компонент, на который полагаются все остальные компоненты внутри ОС. Ядро управляет аппаратным обеспечением компьютера, расписывает, какие процессы и когда запускаются на компьютере, а также обеспечивает взаимодействие между аппаратным обеспечением и прикладным программным обеспечением.
Короче говоря, ядро - это наиболее привилегированный фрагмент кода, выполняемый в системе. Это потому, что это код, который напрямую взаимодействует с оборудованием. Любая другая программа, которая хочет использовать аппаратные ресурсы, должна запрашивать доступ через ядро.
Когда прикладная программа работает в пользовательском режиме и хочет получить доступ к оборудованию, например к веб-камере, она должна запросить ядро с помощью системного вызова. Для обслуживания этих запросов ЦП во время выполнения программы переключается из режима пользователя в режим ядра.
После завершения выполнения процесса ЦП переключается обратно в режим пользователя и начинает выполнение следующего запланированного процесса. Это называется «переключением контекста».
В чем разница между пользовательским режимом и режимом ядра?
Ключевое различие между режимом пользователя и режимом ядра - это уровень привилегий, который предлагает каждый режим. В пользовательском режиме у приложений меньше прав. У них нет прямого доступа к аппаратным ресурсам, а также они не могут писать в адресные пространства других приложений.
Связанный: Как использовать диспетчер устройств для устранения неполадок Windows 10
Код, работающий в режиме ядра, имеет повышенные привилегии. Он не только имеет прямой доступ к компьютерному оборудованию, но и все программы, работающие в режиме ядра, включая ОС, также используют одно адресное пространство. Итак, если программа в Вылетает режим ядра, он может вывести из строя всю ОС. Чтобы избежать подобных сбоев, Windows разрешает запускать только некоторые процессы в режиме ядра.
Windows применяет многоуровневый подход к отделению пользовательских программ от системных ресурсов
Windows использует многоуровневую модель для определения уровня привилегий процессов. Приложения, которые находятся на самом внешнем уровне, имеют привилегию аренды. В основе этих слоев лежит ядро. Как следствие, ядро имеет неограниченный доступ к ресурсам ОС.
Многоуровневый подход также защищает жизненно важные функции ОС. Случайный сбой программ верхнего уровня не влияет на ОС. С другой стороны, когда ядро выходит из строя, вся ОС выходит из строя.
Почему Windows продолжает вылетать? Вот наиболее частые причины сбоев Windows и несколько советов по их устранению.
Читать далее
- Окна
- Окна
Фавад - писатель-фрилансер, работающий полный рабочий день. Он любит технологии и еду. Когда он не ест и не пишет о Windows, он либо играет в видеоигры, либо мечтает о путешествиях.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться