Syslinux переключается в защищенный режим после загрузки ядра? - PullRequest
1 голос
/ 18 июня 2011

syslinux переключается в защищенный режим после загрузки ядра?Каково состояние машины после загрузки syslinux ядра.

1 Ответ

2 голосов
/ 20 июня 2011

Я предполагаю, что вы говорите о загрузке syslinux ядра Linux.

Взгляните на Documentation / x86 / boot.txt .

Ядро Linux имеет небольшой код настройки реального режима (находится по адресу arch / x86 / boot / ), который выполняет несколько действий, которые необходимо выполнить перед переходом в защищенный режим (большая часть запросов). BIOS реального режима для нескольких частей информации). Загрузчик загружает эту часть в нехватку памяти (ниже 640 КБ).

Старые ядра были достаточно малы, чтобы помещаться в менее чем 640 КБ непрерывной памяти, поэтому загрузчик загружал все ядро ​​в нехватку памяти и мог делать все в реальном режиме. Более новые ядра имеют больший размер (обычно около 4 МБ), поэтому их необходимо загружать в большой объем памяти (более 1 МБ). Для этого загрузчик должен перейти в защищенный режим, чтобы поместить туда ядро, вернуться в реальный режим, чтобы вызвать BIOS для чтения большего количества секторов с диска, и переключиться обратно в реальный режим , прежде чем перейти к код установки ядра (который снова перейдет в защищенный режим в последний раз).

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

Состояние процессора такое, как описано в документации, с которой я связан выше: CS реального режима указывает на начало кода настройки реального режима плюс 0x20 (заставляя CS: IP указывать на начало второй 512-байтовой настройки реального режима сектор кода), остальные регистры сегмента указывают на начало кода настройки реального режима (первый сектор) и несколько параметров, заполненных в заголовках, найденных в первых двух секторах кода настройки реального режима. Содержание регистров общего назначения не имеет значения.

...