LINUX.ORG.RU

История изменений

Исправление snizovtsev, (текущая версия) :

0. Современный ПиСи - это не одна, сразу несколько параллельно работающих вычислительных систем. Основная - x86 intel cpu, а вокруг него всякая embedded обслуга. Всё, что не x86 - огорожено от тебя подписанными прошивками.
1. Процессор x86 включает процессор Intel ME на чипсете. Прочитывается ROM, колдует с электрикой, загружает встроенный ROM микрокода. Примерно что из себя представляет микрокод можно послушать тут. После этого наступает x86.
2. Процессор загружает прошивку UEFI с SPI - отдельная флешка на материнке. Проверяется её подпись и передаётся управление. Микрокод заменяется апдейтом, прошитым в UEFI. Происходит POST проверки, инициализация периферии и запуск встроенных приложений. Приложения имеют тот же формат, что и файлы в папке EFI загрузчика, но просто записаны на встроенную флешку. Позволяют читать разные ФС, например. UEFI и приложения написан на обычном C/C++ и скомпилирован в x86_64, обычно на базе полуотрытых исходников TianoCore. Про структуру прошивки можно послушать тут.
3. Когда все девайсы проинициализированы, запускается поиск загрузочный партиций. Ищется FAT32 с типом партиции «UEFI System», внутри него ищут приложения внутри папки EFI. Приложение - это просто статический x86_64 бинарь в нужном формате, который вместо сисколов может использовать UEFI API, втч предоставляемые другими UEFI приложениями. Помимо автонайденных приложений обычно можно ещё указать имя + путь к файлу руками в Bios Setup или через UEFI variables (тулзой efivar). Они сохраняются в NVRAM на материнке.
4. Ну а дальше читается ядро, initramfs, ещё раз апдейтится микрокод и наступает ring 3. Это если на десктопе, на сервере перед этим обычно ещё type-1 гипервизор загружается.

Как то так я себе понимаю.

Исходная версия snizovtsev, :

0. Современный ПиСи - это не одна, сразу несколько параллельно работающих вычислительных систем. Основная - x86 intel cpu, а вокруг него всякая embedded обслуга. Всё, что не x86 - огорожено от тебя подписанными прошивками.
1. Процессор x86 включает процессор Intel ME на чипсете. Прочитывается ROM, колдует с электрикой, загружает встроенный ROM микрокода. Примерно что из себя представляет микрокод можно послушать тут. После этого наступает x86.
2. Процессор загружает прошивку UEFI с SPI - отдельная флешка на материнке. Проверяется её подпись и передаётся управление. Микрокод заменяется апдейтом, прошитым в UEFI. Происходит POST проверки, инициализация периферии и запуск встроенных приложений. Приложения имеют тот же формат, что и файлы в папке EFI загрузчика, но просто записаны на встроенную флешку. Позволяют читать разные ФС, например. UEFI и приложения написан на обычном C/C++ и скомпилирован в x86_64, обычно на базе полуотрытых исходников TianoCore. Про структуру прошивки можно послушать тут.
3. Когда все девайсы проинициализированы, запускается поиск загрузочный партиций. Ищется FAT32 с типом партиции «UEFI System», внутри него ищут приложения внутри папки EFI. Приложение - это просто статический x86_64 бинарь в нужном формате, который вместо сисколов может использовать UEFI API, втч предоставляемые другими UEFI приложениями.
4. Ну а дальше читается ядро, initramfs, ещё раз апдейтится микрокод и наступает ring 3. Это если на десктопе, на сервере перед этим обычно ещё type-1 гипервизор загружается.

Как то так я себе понимаю.