Вопрос, собственно, такой:
Можно ли загрузить ядро Linux в UEFI-системе класса 2 или 3 без прекращения работы UEFI Boot Services?
Т.е. без вызова ExitBootServices(). Чем вообще грозит невызов?
P.S. Считаем, что Secure boot в рассматриваемой UEFI-системе отключен.
вопросы ставите вы интересные - скажу сразу ответа на них я не знаю,
если ето про загрузку из под Shell ... есть мелочь которая вам может подпортить малину ... настройка PCI устройств, она не совсем закончена, если мы вышли из Setup-a в Shell, стоит обратить внимание на Offset[4] в некоторых(большенстве) PCI устройств он или в 0 или 7, что не всегда правда далее в ДОС/Linux/Win
,хотя если ето не мешает ...
и об отладке ядра, вопрос мучающий меня многие годы ... как, если ето не в виртуальной машине (а UART например отсутствует) ??
... иди туда, незнаю куда, возьми то, не знаю что ... (C) Русские народные сказки
Из-за того, что с выключенной трансляцией страниц нельзя переключить
процессор в 64-битный режим , x64 UEFI firmware использует трансляцию страниц.
Но при этом таблицы страниц составлены так, что линейные адреса равны физическим.
Думаю, одна из проблем в том, что процедуры UEFI Boot Services, могут оказаться
несовместимыми с другими вариантами трансляции.
Недаром в спецификации UEFI в описании функции SetVirtualAddressMap
(которая может быть использована для изменения трансляции) написано,
что вызывать ее может только приложение, вызвавшее перед этим функцию
ExitBootServices.
Загрузится ли обсуждаемая ОС без изменения paging context ?
Так, уже спасибо, есть куда подумать и выработать новые вопросы. Как/если выработаю - welcome
А кому счас легко...
Отправить комментарий