Ответ 1
GRUB отбрасывает вас в защищенный режим.
GRUB Спецификация Multiboot (версия 0.6.96) Раздел 3.2 сообщает об этом
"CR0
Бит 31 (PG) должен быть очищен. Должен быть установлен бит 0 (PE). Другие биты - все undefined.
И Отображение списка CR0 сообщает вам, что система должна находиться в защищенном режиме.
Linux не является многозадачным ядром и не полагается на некоторый загрузчик для переключения в PM, он следует за Linux Boot Protocol. Но linux делает сам режим защищенного режима и не полагается на загрузчик
check: http://lxr.linux.no/#linux+v2.6.39/arch/x86/boot/main.c
Здесь он вызывает go_to_protected_mode();
, когда затем вызывает protected_mode_jump ()
, который затем выполняет CR0
stuff (устанавливает бит 0)
(Другой бит говорит, что пейджинг отключен)
ИЗМЕНИТЬ
Что я могу понять, так это то, что GRUB может определять протокол загрузки linux (GRUB2, а также наследие) и загружает linux в память, но не переключается в защищенный режим. Посмотрите на эту ссылку: http://www.gnu.org/software/grub/manual/grub.html#GNU_002fLinux и раздел 16 страницы в этой ссылке.