Что такое режим пользователя и режим ядра в Windows

Admin

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

Понимание того, что делает операционная система

Компьютер состоит из аппаратного обеспечения, электронных компонентов и программного обеспечения, компьютерного кода, выполняемого этим оборудованием. Но что может быть менее ясно, так это то, как они работают вместе.

Оглавление

Самый важный элемент компьютера - это бит или «двоичная цифра». Все, что делает компьютер, представлено в виде единиц и нулей. Различные компоненты компьютера по-разному представляют биты. В Процессор, микроскопические транзисторы отображают единицы и нули, будучи включенными или выключенными. Эти транзисторы организованы в логические структуры, называемые логическими вентилями.

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

Независимо от того, как достигается физическое представление двоичного кода, вы можете в конечном итоге сократить все компоненты потребительского компьютера до этого необработанного машинного кода.

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

Это программное обеспечение переводит все, что требуется приложениям (и, следовательно, пользователю), в инструкции машинного кода, понятные процессору и другим компонентам. Самая важная часть программного обеспечения в этом процессе - это ядро.

Что такое ядро?

Ядро, как следует из названия, является ядром операционной системы. Ядро - это программное обеспечение, которое находится в ОЗУ и руководит всем, что делает компьютер. Когда что-то записывается в память, это ядро ​​управляет выполнением.

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

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

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

Роль интерфейсов прикладного программирования (API)

Во времена MS-DOS разработчикам программного обеспечения приходилось писать свое программное обеспечение специально для оборудования пользователя. Наиболее известным примером этого в системах MS-DOS были драйверы звуковой карты.

Данная видеоигра должна поддерживать самые популярные карты (Sound Blaster, Ad-lib, Gravis Ultrasound и т. Д.) И надеяться, что охватит большинство игроков. Сегодня все работает по-другому, благодаря API.

Экран выбора звуковой карты от Wolf3D

Microsoft DirectX - отличный тому пример. Если вам нужно подробное объяснение, ознакомьтесь с Что такое DirectX и почему это важно? Однако наиболее важно знать, что API предлагает стандартный способ для разработчиков программного обеспечения запрашивать аппаратные ресурсы у таких компонентов, как графический процессор. Кроме того, производители оборудования должны гарантировать, что их продукты соответствуют DirectX, чтобы обеспечить полную совместимость с любым аналогичным программным обеспечением.

API-интерфейсы предлагают уровень трансляции между программными приложениями и низкоуровневым ядром с его аппаратными драйверами. Да, это немного снижает производительность. Тем не менее, на современных компьютерах это ничтожно мало и имеет ряд преимуществ, и именно здесь мы наконец переходим к пользовательскому режиму и режиму ядра.

Пользовательский режим vs. Режим ядра

Современные операционные системы запускают сотни или тысячи «процессов» одновременно, динамически выделяя им процессорное время по мере необходимости в зависимости от их приоритетов и требований к вычислительной мощности.

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

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

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

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

Ловушки и исключения

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

Опасности режима ядра: синий экран смерти

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

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

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

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

Если у вас возникли проблемы с "Синим экраном смерти", обязательно прочтите наши Руководство по устранению неполадок "синий экран смерти" для Windows 10!

Добро пожаловать в Help Desk Geek - блог, полный технических советов от проверенных технических экспертов. У нас есть тысячи статей и руководств, которые помогут вам устранить любую проблему. С момента запуска в 2008 году наши статьи были прочитаны более 150 миллионов раз.

Мы тоже ненавидим спам, откажитесь от подписки в любое время.

5 лучших инструментов конфиденциальности Windows 11
5 лучших инструментов конфиденциальности Windows 11

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

PowerShell против командной строки: плюсы и минусы
PowerShell против командной строки: плюсы и минусы

Черный (или синий) терминал с мигающим курсором — классический образ для всех, кто использует сис...

10 лучших хаков для ПК, чтобы получить максимальную отдачу от Windows
10 лучших хаков для ПК, чтобы получить максимальную отдачу от Windows

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