В чем разница между пользовательским режимом и режимом ядра, и почему и как вы активируете (варианты использования?).
Различия между режимами User и Kernel
Ответ 1
Режим ядра
В режиме ядра исполняемый код имеет полный и неограниченный доступ к базовому оборудованию. Это может выполнять любую инструкцию ЦП и ссылаться на любой адрес памяти. ядро режим, как правило, зарезервирован для самые надежные функции с наименьшим уровнем операционной системы. Аварии в режим ядра катастрофичен; Oни остановит весь ПК.
Пользовательский режим
В пользовательском режиме исполняемый код не имеет возможности прямого доступа аппаратной или справочной памяти. Код запуск в пользовательском режиме должен делегировать системных API для доступа к оборудованию или Память. Благодаря предоставленной защите вследствие такого рода изоляции, пользовательский режим всегда восстанавливается. Наиболее кода, запущенного на вашем компьютере будет выполняться в пользовательском режиме.
Подробнее
Ответ 2
Это два разных режима работы компьютера. До этого, когда компьютеры были как большая комната, если что-то падает, это останавливает весь компьютер. Поэтому компьютерные архитекторы решили изменить его. Современные микропроцессоры реализуют в аппаратных средствах как минимум два разных состояния.
Пользовательский режим:
- где выполняются все пользовательские программы. У него нет доступа к ОЗУ и аппаратное обеспечение. Причина этого в том, что если все программы режиме ядра, они могли бы перезаписать память друг друга. Если он должен получить доступ к любой из этих функций - он обращается к базовый API. Каждый процесс начинается с окон, за исключением системы процесс выполняется в пользовательском режиме.
Режим ядра:
- где выполняются все программы ядра (разные драйверы). В нем есть доступ к каждому ресурсу и базовому оборудованию. Любая команда процессора может выполняться и каждый доступ к адресу памяти. Этот режим зарезервирован для драйверов, работающих на самом низком уровне.
Как происходит переход.
Переключение из режима пользователя в режим ядра не выполняется автоматически с помощью ЦП. Процессор прерывается прерываниями (таймеры, клавиатура, ввод-вывод). Когда происходит прерывание, CPU прекращает выполнение текущей запущенной программы, переключается в режим ядра, выполняет обработчик прерываний. Этот обработчик сохраняет состояние процессора, выполняет его операции, восстанавливает состояние и возвращается в пользовательский режим.
http://en.wikibooks.org/wiki/Windows_Programming/User_Mode_vs_Kernel_Mode
http://tldp.org/HOWTO/KernelAnalysis-HOWTO-3.html
Ответ 3
Процессор на компьютере под управлением Windows имеет два разных режима: режим пользователя и режим ядра. Процессор переключается между двумя режимами в зависимости от того, какой тип кода работает на процессоре. Приложения запускаются в пользовательском режиме, а основные компоненты операционной системы запускаются в режиме ядра. Хотя многие драйверы работают в режиме ядра, некоторые драйверы могут запускаться в пользовательском режиме.
При запуске приложения пользовательского режима Windows создает процесс для приложения. Процесс предоставляет приложение с приватным виртуальным адресным пространством и частной таблицей дескрипторов. Поскольку виртуальное адресное пространство приложения является приватным, одно приложение не может изменять данные, принадлежащие другому приложению. Каждое приложение выполняется изолированно, и если приложение выходит из строя, авария ограничивается одним приложением. Аварийная сбой не влияет на другие приложения и операционную систему.
В дополнение к приватности виртуальное адресное пространство приложения пользовательского режима ограничено. Процессор, работающий в пользовательском режиме, не может получить доступ к виртуальным адресам, зарезервированным для операционной системы. Ограничение виртуального адресного пространства приложения пользовательского режима не позволяет приложениям изменять и, возможно, повреждать критические данные операционной системы.
Весь код, который работает в режиме ядра, разделяет одно виртуальное адресное пространство. Это означает, что драйвер режима ядра не изолирован от других драйверов и самой операционной системы. Если драйвер режима ядра случайно записывает неправильный виртуальный адрес, данные, принадлежащие операционной системе или другому драйверу, могут быть скомпрометированы. Если драйвер режима ядра аварийно завершает работу, вся операционная система выходит из строя.
Если вы являетесь пользователем Windows, пройдите по этой ссылке, вы получите больше.
Ответ 4
Я собираюсь взять удар в темноте и предположить, что вы говорите о Windows. В двух словах, режим ядра имеет полный доступ к оборудованию, но пользовательский режим этого не делает. Например, многие, если не большинство драйверов устройств, записываются в режиме ядра, потому что им необходимо контролировать более тонкие детали своего оборудования.
См. также этот wikibook.
Ответ 5
Другие ответы уже объяснили разницу между режимом пользователя и ядра. Если вы действительно хотите подробно рассказать, вы должны получить копию Внутренние документы Windows, отличная книга, написанная Марк Руссиновичем и Дэвидом Соломоном, описывающая архитектуру и внутренние детали различных окон операционные системы.
Ответ 6
Что
В принципе разница между режимами ядра и пользователя не зависит от ОС и достигается только путем ограничения некоторых инструкций, которые должны выполняться только в режиме ядра с помощью аппаратного дизайна. Все другие цели, такие как защита памяти, могут выполняться только этим ограничением.
Как
Это означает, что процессор находится в режиме ядра или в пользовательском режиме. Используя некоторые механизмы, архитектура может гарантировать, что всякий раз, когда он переключается в режим ядра, выводится код ОС, который должен быть запущен.
Почему
Наличие этой аппаратной инфраструктуры может быть достигнуто в обычных ОС:
- Защита пользовательских программ от доступа к всей памяти, чтобы не позволить программам перезаписывать ОС, например,
- предотвращение выполнения пользовательскими программами чувствительных инструкций, таких как те, которые изменяют границы указателя памяти ЦП, чтобы не позволить программам нарушать их границы памяти, например.