![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
![]()
Системные вещи. Ответы Часть 2.2015-07-01 17:54:00 (читать в оригинале)ВведениеПродолжаю публиковать ответы на вопросы на наших собеседованиях. Вопрос про режимы ядра и многие последующие вопросы привязаны к той ОС, в которой вы работаете. В нашей компании активно разрабатываются проекты в Windows и Linux. Однако, так как большинство кандидатов лучше знают Windows, то и ответы будут публиковаться для Windows, если это не оговорено дополнительно. Кстати, по всем системным вещам Windows стоит обращаться к замечательной книге М. Руссинович, Д. Соломон - Внутреннее устройство Microsoft Windows. В ней даны подробные ответы на все системные вопросы нашего собеседования. Если же вам больше интересно как все работает внутри Linux, то я рекомендую обратиться к книге Таненбаум Э. - Современные операционные системы. Что такое режим ядра и режим пользователя?Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows использует два режима доступа к процессору: пользовательский (user mode) и ядра (kernel mode). Код приложений работает в пользовательском режиме, тогда как код операционной системы (например, системные сервисы и драйверы устройств) — в режиме ядра. B режиме ядра предоставляется доступ ко всей системной памяти и разрешается выполнять любые машинные команды процессора. Предоставляя операционной системе более высокий уровень привилегий, чем прикладным программам, процессор позволяет разработчикам операционных систем реализовать такие архитектуры, которые не дают возможности сбойным приложениям нарушать стабильность работы всей системы. Windows не предусматривает никакой защиты системной памяти от компонентов, работающих в режиме ядра. Иначе говоря, код операционной системы и драйверов устройств в режиме ядра получает полный доступ к системной памяти и может обходить средства защиты Windows для обращения к любым объектам. Поскольку основная часть кода Windows выполняется в режиме ядра, крайне важно, чтобы компоненты, работающие в этом режиме, были тщательно продуманы и протестированы. CPL, RPL, DPL?Существует четыре уровня привилегий (PL) сегментов (0-3). Привилегированность увеличивается с уменьшением номера. На нулевом уровне позволяется использование привилегированных инструкций. Уровень привилегий сегмента (Descriptor Privilege Level) соответствует значению поля DPL в дескрипторе сегмента. Текущий уровень привилегий (Current Privilege Level) соответствует уровню привилегий сегмента кода, селектор которого загружен в регистр CS (то есть уровню привилегий выполняющегося сегмента кода). Запрашиваемый уровень привилегий (Requested Privilege Level) находится в двух младших битах селектора (задаётся программой). Как происходит взаимодействие между режимом пользователя и ядра? SYSENTER, int2e?
На этом на сегодня всё, продолжение читайте в следующем посте.
|
![]() ![]() ![]()
Категория «Игры»
Взлеты Топ 5
Падения Топ 5
![]()
Популярные за сутки
|
Загрузка...

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