Похоже, есть два лагеря, небольшая группа людей, которые заботятся о УЕФИ, и все остальные, которые не замечают или заботятся о том, пока их компьютерные работы. Итак, давайте поговорим о том, что UEFI, как это должно быть, что он подходит, и почему вы должны (или не должны) заботиться.
Что такое UEFI?
UEFI означает унифицированную расширяющуюся интерфейс прошивки, обычную организацию, известную как Объединенный форум EFI. Intel вышел с EFI (интерфейс расширяемой прошивки), а затем сделал Spec Public как UEFI. В качестве спецификации детали приложения меняются между поставщиками и производителями, но цель – представить обычную и понятую структуру загрузчика ОС. Это делает его намного проще, чтобы написать ОС, так как вам больше не нужно беспокоиться о всей неопрятной компании фактически запуска чипсета.
Несколько IBVS (независимых поставщиков BIOS) предлагают свои реализации UEFI, которые производят материнские платы, которые могут лицензироваться и использовать в своих продуктах. Некоторые примеры будут AMI, Phoenix и Insyde. Вы, вероятно, видели свой логотип или просто текст их имени кратко вскадя на экран перед вашим выбором, правильно сапоги.
Давайте поговорим о том, как UEFI Boots. Как правило, есть несколько разных фаз. Обычно мы говорим, потому что существуют многочисленные реализации, и многочисленные из них делают вещи из спецификации. Существует три общих этапа: безопасность и безопасность (сек), предварительная инициализация (PEI) и среда выполнения привода (DXE). Каждый – мини-операционная система. Поскольку Intel является тем, кто начал EFI, а позже превратил его в UEFI, большая часть дизайна разрабатывается вокруг того, как процессоры Intel загружаются. Другие платформы, как руку, могут воздерживаться от того, чтобы делать много в фазе Sec или Pei.
Процесс загрузки для процессоров X86 немного странно. Они начинаются в реальном режиме (хотя большинство процессоров в эти дни технически нереально), с 20-битным адресном пространством (1 МБ адресуемой памятью) для причин обратной совместимости. Поскольку процессор продолжает загружаться, он переключается на безопасный режим, а затем, наконец, в длительный режим. В многоядерной системе все процессоры гонки, чтобы получить семафор или читать EAX, и один обозначен BSP (процессор Bootstrap). Проигравшие все останавливаются, пока BSP не запускает их через IPI (межпроцессорное прерывание). Обычно существует на борту SPI Flash Chip с прошивкой, сопоставляющей в конце физической 32-битной области памяти. Процессор безопасности (ME) INTEL Management Engine (ME) или AMD Platform (PSP) выполняет большую часть SEC-фазы, такой как промывка кеша и запуска процессоров.
Как только процессоры начинаются, PEI официально начал. На систем Intel нет системной памяти в большинстве PEI. Это потому, что память должна быть обучена, а ссылки инициализируются до того, как процессор может использовать их. Когда-нибудь безжалостный толчок намного больше и гораздо более скорости от оперативной памяти подразумевает, что оперативная операция должна быть проверена, откалибрована и сконфигурирована на каждом ботинке, так как разные палочки оперативных операций имеют другие параметры. Многочисленные системы кэшируют эти параметры для более быстрого времени загрузки, но они, как правило, должны быть недействительными и перегреваются в качестве Arm Sticks Age. PSP обрабатывает тренировку памяти и упаковку UEFI на некоторых системах AMD до того, как главный процессор X86 вытащен из сброса. Для систем Intel они используют трюк, называемый XIP (execute на месте), который превращает различные кеши в краткосрочную оперативную память. Существует только небольшой стек, крошечное количество кучи пространства, а не статические переменные для PEI. Многочисленные платформы Intel Server полагаются на контроллер управления доски (BMC) для тренировки памяти, поскольку обучение больших объемов памяти занимает очень много времени.
После инициализации ОЗУ и передача содержимого краткосрочного кэша, мы переместим до DXE. Фаза DXE предлагает два вида услуг: загрузка и время выполнения. Службы выполнения должны быть использованы ОС, такие услуги, как ненутрительные переменные. Услуги загрузочных служб уничтожаются после вызова EXITBOOTSERVICES (как правило, по загрузчику ОС), но они являются услугами, такими как вход клавиатуры и графические драйверы. BDS (выделение загрузочного устройства) работает в DXE и заключается в том, как система определяет, какой диск для загрузки (жесткий диск, USB и т. Д.).
Это был очень плотный и х86 особый обзор. Многочисленные архитектуры, такие как ARM ESCHEW UEFI для чего-то гораздо больше похожего на Coreboot, Linuxboot, или LK, где он загружается небольшое ядро Linux, которое затем Kexec находится в гораздо более крупном ядре. Однако многочисленные платформы ARM могут также использовать UEFI. Только время скажет, какой путь ходит отрасль.
Как это должно быть
В 2005 году UEFI полностью заменил EFI (расширяемый интерфейс прошивки), обычный Intel выдвинул несколько лет до. EFI одолжил многочисленные вещи из окон того периода, форматы PECOFF Image и UEFI, в свою очередь, заимствованные методы от EFI. До EFI был хороший добрый BIOS (базовая входная вывод системы). Имя возникло из систем CP / M 1975 года. В этот период BIOS был способом для системы загрузки и предлагать несколько единый интерфейс для приложений BY предлагает вызовы прерываний BIOS. Телефонные вызовы позволили программе получить доступ к входу и выводам, таким как последовательные порты, RTC и шина PCI. Phoenix и другие обратные пожертвованные проприетарный интерфейс, который IBM произвел для изготовления IBM-совместимых машин, которые в конечном итоге привели к чему-то близкому к стандарту.
Это лучше, чем BIOS?
Да и нет, в зависимости от вашей точки зрения. Многочисленные поставщики ОС, такие как УЕФИ, потому что они обычно делают свою жизнь проще, поскольку предоставленные услуги позволяют легко дать однородный загрузку опыта. Сообщество Linux, как правило, говоря, в лучшем случае, в лучшем случае и антагонистика в худшем случае к УЕФИ. Интерфейс BIOS выталкивает 45 лет на момент написания письма и считается наследием в любом смысле. Другой момент в углу UEFI состоит в том, что он облегчает выбор различных загрузочных гаджетов и обновляя прошивку на вашем компьютере. UEFI использует таблицу раздела GUID (GPT) над главной загрузкой (MBR) – Shotd A Plus, поскольку MBR несколько негибко. Многочисленные платформы, отправленные сегодня, основаны на проекте EDK2 с открытым исходным кодом из TianoCore, внедрению UEFI, поддерживающей X86, ARM и RISCH.
Самая большая жалоба с UEFI заключается в том, что это закрытый черный ящик с невообразимым доступом к вашему компьютеру и остается локальным после ботинок компьютера. BIOS привлекателен, потому что интерфейс широко известен и обычно не является резидентом. UEFI может быть обновлен проще, но также имеет гораздо более важное потребность в обновлениях. Обновление UEFI может полностью кирпировать вашу систему. Он не загружается, и из-за того, что из-за того, что предохранители влюблены на единицу, практически физически невозможно исправить это даже для производителя. Значительные суммы тестирования попадают в эти обновления, но большинство нерешится, чтобы подтолкнуть многочисленные обновления из-за объема требуемой работы.
Почему вы должны или не должны заботиться
В конце дня вы заботитесь, можете ли вы использовать свой компьютер для вещей, которые необходимы для вас. Будь то играет в игру, пишущую электронную почту или сделать новый компьютер, это не имеет значения, пока компьютер делает то, что вы хотите. и загрузка – это только один забытый шаг в том, что случилось. Если вы заботитесь о том, как понять каждый кусок кода, который работает ваше устройство, вам нужно простираться в течение длительной поездки. Есть такие бизнес, как библиотека, идущая на длительную длину, чтобы убедиться, что сложные проблемы, такие как init Memory init, работают в неприемных каплях. Вы все еще можете изменить UEFI, [Hales], являющийся потрясающим примером настройки BIOS ноутбука старой школы. Инструменты с открытым исходным кодом для проверки и понимания того, что происходит под капотом, становится лучше.
В конечном итоге это так же, как вы заботитесь о процессе загрузки вашего устройства.