Что произойдет, если я изменю значение контрольного регистра cr0? - PullRequest
0 голосов
/ 07 июня 2018

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

Мне было интересно, если это вообще возможно, что произойдет, если каким-то образом мне удастся изменить значение cr0 для изменения флагов?

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

1 Ответ

0 голосов
/ 07 июня 2018

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

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

...