Я пытаюсь понять, как машина переходит от ядра к запуску ядра. Из того, что я собрал, полезно переключиться в защищенный режим во время загрузки, чтобы получить доступ к более адресуемой памяти, даже если мы в конечном итоге переключимся на более обычный план виртуальной памяти с каталогами страниц и таблицами страниц и отключим сегментацию ,Как установить флаг PE в CR0 включить защищенный режим?
кажется, что для переключения в защищенный режим 3 вещи, которые необходимо сделать:
- Настройка глобальной таблицы дескрипторов (GDT) и загрузить его с помощью
lgdt
инструкции - Установите PE флаг/бит в регистр управления CR0 с поддержкой (то есть. до значения 1)
- Выполнить длинный прыжок с
ljmp
Я задаюсь вопросом о логике для Translat используя регистр сегмента и указатель инструкции в индекс и смещение для использования с gdt. Является ли эта логика реализована аппаратными средствами? Если это так, то какое аппаратное обеспечение и почему является выполнением части процесса ljmp
? Почему бы просто не установить флаг PE в CR0 для включения защищенного режима (без следующих ljmp
)?
Мне интересно, почему вы не искали текстовый шаблон 'protected mode' в [Intel® 64 и IA-32 Architectures Software Developer's Manual] (http: // www. intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html), и какова ваша исследовательская работа и почему вы спрашиваете, какую проблему вы пытаетесь решить/понять? Кстати: знаете ли вы, что частый ответ на подобные вопросы: читайте http://wiki.osdev.org? – xmojmr
@xmojmr Я искал в руководстве разработчика Intel, но не смог найти нужную мне информацию. Я пытаюсь понять, как достигается переход из реального режима в защищенный режим. Я не знал о wsdev wiki, поэтому я посмотрю на него в следующий раз, когда у меня возникнет такой вопрос. –