Что такое UEFI, и чем он отличается от BIOS? Биос UEFI — что это такое и как работает.

EFI (E xtensible F irmware I nterface) — интерфейс по централизации оборудования в момент включения системы. Регулирует процессы, происходящие между операционной системой и микропрограммами, осуществляющими управление низкоуровневыми функциями оборудования. EFI загружает компьютер, а впоследствии передает управление загрузчику операционной системы. Является логической заменой интерфейса BIOS , традиционно исользующегося IBM PC-совместимыми компьютерами.

Компания Intel разработала первую спецификацию EFI. Позднее, интерфейс поменял название: последняя версия стандарта именуется UEFI (U nified E xtensible F irmware I nterface). На сегодняшний день, стандарт UEFI разрабатывается ассоциацией Unified EFI Forum.

Стандарт EFI имеет поддержку графического меню, а также некоторых дополнительных возможностей (к примеру, Aptio или Great Wall UEFI).

История

Первоначально, стандарт EFI предназначался для использования в первых системах Intel-HP Itanium, появившихся в середине 90-х годов. Те ограниченные возможности, которые демонстрировал PC-BIOS (16-битный код, адресуемая память 1 Мбайт, ограничения аппаратного характера IBM PC/AT и прочее) были неприемлемы для использования в больших серверных платформах, а ведь Itanium планировался именно для таковых.

Примечательно, что EFI изначально носил название Intel Boot Initiative , это уже позже он был переименован.

Спецификации

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

Поздее, 1 декабря 2002 года была представлена версия EFI 1.10, включавшая в себя модель драйвера EFI, а также несколько «косметических» улучшений, в сравнении с версией 1.02.

В 2005 году компания Intel отнесла спецификацию EFI к организации UEFI Forum, которая впоследствии стала отвечать за дальнейшее развитие интерфейса. Тогда же стандарт EFI был переименован в Unified EFI (UEFI), для того, чтобы подчеркнуть произошедшее изменение. Примечательно, что, несмотря на смену названия, в большинстве документов по сей день свободно применяются оба термина.

7 января 2007 года организация UEFI Forum выпустила версию 2.1 UEFI, в которой была внедрена улучшенная криптография, функция установления подлинности сети, а также обновленная архитектура пользовательского интерфейса.

Интерфейс EFI содержит в себе таблицы, в которых включено множество различных данных: информация о платформе, загрузочные и runtime-сервисы, доступные для загрузчика операционной системы и самой операционной системы. Некоторые расширения BIOS (ACPI или SMBIOS) также включены в EFI - в них не обязателен 16-разрядный runtime-интерфейс.

Сервисы

EFI определяет сервисы загрузки, включающие поддержку:

  • текстовой и графической консоли;
  • блоков;
  • файловых сервисов;

также интерфейс определяет runtime-сервисы (дата, время и память).

Драйверы устройств

Стандарт EFI, помимо стандартных, архитектурно-зависимых драйверов, определяет также и независимую от платформы среду драйверов. эта среда носит название EFI Byte Code (EBC). Спецификация UEFI требует от системного программного обеспечения интерпретатор для любых образов EBC, загруженных (фактически или потенциально) в среду.

Так, EBC вполне можно соотнести с независимым от аппаратных средств Open Firmware, используемым в Apple Macintosh и Sun Microsystems SPARC компьютерах.

Часть архитектурно-зависимых типов драйверов EFI может оснащаться интерфейсами для использования операционной системы, что дает возможность самой операционной системе применять EFI в качестве базовой поддержки графики и сети до загрузки драйверов.

Менеджер загрузки

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

Поддержка дисков

Вдобавок к стандартному методу разметки дисков (MBR), EFI обладает поддержкой GUID Partition Table (GPT). Эта схема свободна от каких-либо специфических для MBR ограничений. Стандарт EFI не содержит в себе описание для файловых систем, но реализации EFI, как правило, имеют поддержку файловой системы FAT32 .

Оболочка

Открытая среда оболочки стандарта позволяет пользователю загружать ее в целях произведения определенных операций. Это гораздо удобнее: пользователь избавлен от загрузки непосредственно самой операционной системы. Оболочка является простым приложением EFI, которое может храниться в ПЗУ платформы (либо на отдельном устройстве, драйверы которого расположены в ПЗУ).

Кроме того, пользователь может применять оболочку и для выполнения иных приложений EFI (например, настройка или установка операционной системы, либо же диагностика, конфигурация или обновление прошивки). Также в функции оболочки входит проигрывание CD/DVD-носителей, без загрузки операционной системы. Кроме того, оболочка EFI позволяет командно произвести операции копирования или перемещения файлов и каталогов, при условии, что работа производится в поддерживаемых файловых системах. Можно также осуществлять загрузку/выгрузку драйверов. Ну, и наконец, оболочка может использовать полный TCP/IP стек.

Оболочка EFI имеет поддержку сценариев в виде файлов с расширением .nsh (аналог пакетного файла в DOS).

Названия команд зачастую заимствуются от интерпретаторов командной строки (COMMAND.COM или Unix shell). Оболочка EFI в полной степени может выступать альтернативой и полноценным аналогом интерпретатора командной строки, либо текстового интерфейса BIOS.

Расширения

Расширения EFI загружаются почти с любого энергонезависимого устройства хранения данных, которое подключено к ПК.


Реализация

Intel Platform Innovation Framework

Intel Platform Innovation Framework («инновационный инструментарий Intel») представляет собой набор спецификаций, выпущенных компанией Intel при сотрудничестве с EFI. В данном случае, EFI определяет интерфейс между операционной системой и аппаратно-программным обеспечением, а на инструментарий возлагается определение применяемой для создания встраиваемого программного обеспечения структуры. Это определение производится на более низком уровне, в сравнении с функциями, заложенными в EFI.

К примеру, в инструментарий входят все этапы, которые необходимо преодолеть для корректной инициализации компьютера с момента включения. Такие внутренние возможности интегрированного программного обеспечения не являются частью спецификации EFI, однако они включены в разработанную ассоциацией UEFI спецификацию инициализации платформы (Platform Initialization Specification). Данный инструментарий опробован на платформах XScale, Itanium и IA-32.

Совместимость с операционной системой, в случае с платформой x86, достигается благодаря применению модуля поддержки совместимости (CSM), содержащего в себе 16-битную программу (CSM16), которая реализуется производителем BIOS. Также в нее входит специальный слой, в функции которого входит связь CSM16 с инструментарием.

Компания Intel является автором уникальной реализации для инструментария, имеющей кодовое название «Tiano». Это полная реализация встраиваемого программного обеспечения с поддержкой EFI. В ней отсутствует традиционная 16-битная часть CSM, однако она обеспечивает интерфейсы, которые необходимы для дополнений, реализуемых изготовителями BIOS. Компания Intel не распространяет полную реализацию Tiano среди конечных пользователей. Часть этой реализации была выпущена в виде исходных текстов TianoCore проекта, подобно EFI Developer Kit (EDK). Данная реализация включает EFI и часть кода инициализации аппаратных средств, но вместе с тем, в ней скрыты характерные особенности самого встраиваемого программного обеспечения.

Построенные на стандарте EFI продукты можно приобрести через независимых производителей BIOS (к примеру, American Megatrends (AMI) и Insyde Software). Часть реализаций полностью основана на Tiano, другая часть - соответствует спецификациям, однако не строится на реализации Intel.

Платформы, применяющие EFI; сопутствующий инструментарий

В 2000 году, компания Intel разработала системы, построенные на платформе Itanium. Они имели поддержку EFI 1.02.

В 2002 году, компания Hewlett-Packard выпустила системы, построенные на платформе Itanium 2. Они имели поддержку версии EFI 1.10, и имели возможность загружать операционные системы Windows, Linux, FreeBSD и HP-UX.

Системы Itanium или Itanium 2, выпускаемые вместе с интегрированным EFI-совместимым программным обеспечением, обязаны соответствовать спецификации DIG64.

В ноябре 2003 года, компания Gateway обнародовала систему Gateway 610 Media Center, которая являлась первой x86-системой, построенной на базе Windows. В ней использовалось встраиваемое программное обеспечение, которое было основано на инструментарии, InsydeH2O от Insyde Software. Поддержка BIOS реализовывалась благодаря модулю поддержки совместимости (CSM).

Январь 2006 года, компания Apple представляет свои первые ПК Macintosh, построенные на платформе Intel. Системы применяют EFI и сопутствующий инструментарий, взамен Open Firmware, который применяли на предыдущих системах PowerPC-платформы.

5 апреля 2006 года, компания Apple представляет продукт Boot Camp, являющийся стандартным пакетом, позволяющим создавать диск с драйверами Windows XP. Кроме того, новый пакет содержал в себе инструмент разметки дисков, позволяющий установить Windows XP, оставив при этом работоспособным действующий Mac OS X. Кроме того, вышло обновление встраиваемого программного обеспечения. В нем была добавлена поддержка BIOS для реализации EFI. Последующие линейки моделей компьютеров Macintosh выпускались с обновленным и встраиваемым программным обеспечением. Так, на сегдняшний день, все компьютеры Macintosh имеют возможность загружать BIOS-совместимые операционные системы.

Фирменные «интеловские» системные платы производятся, в основном, со встраиваемым программным обеспечением, построенным на основе инструментария (к примеру, DP35DP). Так, в 2005 году было выпущено свыше 1 млн. систем Intel. Производство новых сотовых телефонов, настольных ПК и серверов, работающих на инструментарии, стартовало в 2006 году. Вот, например, все системные платы, построенные на наборе системной логики Intel 945, применяют в своей работе инструментарий. Впрочем, во встраиваемом программном обеспечении, как правило, не включена поддержка EFI, оно ограничивается лишь поддержкой BIOS.

С 2005 года стандарт EFI стали внедрять в не-ПК архитектуры (например, встраиваемые системы, построенные на базе XScale). В EDK включена отдельная цель NT32, допускающая встраиваемое программное оебспечение EFI и его приложения в приложения Windows. В 2007 году компанией Hewlett-Packard был представлен принтер серии 8000. Это был первый принтер, оснащенный встраиваемым программным обеспечением, совместимым с EFI. В 2008 году компанией MSI была представлена линейка системных плат, построенных на чипсете Intel P45, они обладали поддержкой EFI.

Операционные системы

  • С 2000-х годов, операционные системы GNU/Linux нередко применяли EFI для загрузки.
  • С 2002 года, операционные системы HP-UX стали применять EFI в качестве загрузочного механизма в системах, построенных на платформе IA-64. Операционные системы OpenVMS применяли стандарт с начала 2005 года.
  • Компания Apple взяла на вооружение стандарт EFI, выпустив линейку компьютеров, построенных на архитектуре Intel. Mac OS X 10.4 (Tiger) для Intel и Mac OS X 10.5 (Leopard) имели поддержку EFI v1.10 не только в 32-разрядном режиме, но и в 64-разрядных центральных процессорах. Так, посредством загрузчика EFI, установка Microsoft Windows 7 на компьютеры Apple осталась невозможной, поскольку этой операционной системе необходимо наличие UEFI или еще более новой версии.
  • Microsoft Windows имеет поддержку EFI для 64-разрядных архитектур. Компания Microsoft отмечает, что отсутствие поддержки EFI на 32-разрядных центральных процессорах возникла ввиду недостаточного участия со стороны производителей ПК. Миграция Microsoft к 64-разрядным операционным системам не позволяет использовать EFI 1.10, поскольку 64-разрядные расширения не поддерживаются окружением процессора. Поддержка x86-64 включена в UEFI 2.0. Itanium версии Windows 2000 (Advanced Server Limited Edition и Datacenter Server Limited Edition) имеют поддержку EFI 1.1.Windows Server 2003 для IA-64, 64-разрядная версия Windows XP и Windows 2000 Advanced Server Limited Edition, заточенные специально под семейство процессоров Intel Itanium, имеют поддержку EFI, определенную для данной платформы спецификацией DIG64. Разработчики компании Microsoft внедрили поддержку UEFI в 64-разрядных операционных системах Windows начиная с Windows Server 2008 и Windows Vista Service Pack 1.

Недостатки

Стандарт EFI попал под оглушительные шквалы критики за усложнение системы. Многие эксперты отмечали, что EFI не дает операционной системе ключевых преимуществ, но при этом существенно ее усложняет. Кроме того, в пользу EFI произошел отказ от альтернативных реализаций BIOS, обладающих полностью открытыми исходными текстами (OpenBIOS и coreboot).

В сентябре 2011 года компанией Microsoft было объявлено, что условия сертификации совместимых с Microsoft Windows 8 компьютеров могут привести к последующему производству устройств, которые не под каким предлогом не будут поддерживать какую‐либо другую операционную систему. Компания Microsoft пояснила, что поставщиками может быть реализована возможность добавления других подписей. Чуть позднее это было сделано обязательным требованием сертификации. Впрочем, что касается устройств на ARM, то в их случае требование следующее: полностью отключить функцию «безопасной загрузки». В таком случае, установка других операционных систем также перестает быть возможной.

Спецификация UEFI (Unified Extensible Firmware Interface, Унифицированный расширяемый микропрограммный интерфейс, унифицированный расширяемый интерфейс прошивки или расширяемый аппаратный интерфейс), ранее известная как Extensible Firmware Interface (EFI ), определяет интерфейс между операционной системой и микрокодом (микропрограммами), управляющим оборудованием. Другими словами, UEFI это интерфейс, который располагается “поверх” аппаратных компонентов компьютера, которые, в свою очередь, функционируют на собственных прошивках (микрокодах).

В самом названии UEFI определение "расширяемый интерфейс" говорит о том, что это модульная система, которая может функционально легко расширяться и модернизироваться.

Для большего понимания, UEFI по сравнению с BIOS - это, грубо говоря, новый тип или следующее поколение прошивки, и оно уже не ограничено только лишь персональными компьютерами архитектуры x86 (IBM PC), но и претендует на всеплатформенный стандарт. Однако, в отличии от BIOS, UEFI базируется на принципиально новой топологии кода, которая называется "драйверность".

  • Основное назначение EFI - замена устаревающей (теряющей актуальность) технологии BIOS и связанных с ней ограничений.
  • Основная цель разработки UEFI заключается в стандартизации взаимодействия операционной системы с микропрограммами платформы в ходе процесса загрузки. В классическом BIOS основным механизмом взаимодействия с аппаратурой на этапе загрузки были программные прерывания и порты ввода-вывода, однако современные системы в состоянии обеспечить более эффективное выполнение операций ввода-вывода между оборудованием и программным обеспечением.
  • Основная задача EFI - корректно инициализировать оборудование и передать управление загрузчику операционной системы. В этом плане задача не сильно то и отличается от задачи традиционного BIOS, но алгоритмы принципиально другие.

UEFI можно смело назвать самостоятельной миниатюрной операционной системой, которая представляет собой интерфейс между основной пользовательской операционной системой, функционирующей на компьютере и микрокодом оборудования.

Давайте теперь совершим небольшой экскурс в историю персональных компьютеров, с целью понять причины, которые приводили к попыткам замены стандартного BIOS на что-то принципиально новое.

Старый-добрый BIOS

Основные принципы функционирования BIOS (базовой системы ввода-вывода) для персональных компьютеров были определены еще в конце 70х годов прошлого века. На протяжении довольно большого промежутка времени, прошедшего с той поры, компьютерная отрасль интенсивно развивалась, это приводило к тому, что на определенных этапах возможностей BIOS было недостаточно, поскольку выпускаемые производителями устройства имели на борту новые технологии, часто не совместимые с текущими версиями BIOS. Что бы уйти от подобных проблем, разработчикам приходилось порой довольно существенно модифицировать код BIOS, однако целый ряд ограничений так и остался неизменным до настоящего времени. И, если первоначально архитектура BIOS была достаточно простой, то по прошествии времени, она усложнялась, адаптируясь под все новые и новые технологии, поэтому, к определенному моменту она стала напоминать нагромождение различного рода устаревшего и плохо взаимодействующего между собой кода. Ограничения, которые и по сей день можно встретить в коде BIOS, объясняются необходимостью сохранять совместимость с базовыми функциями, необходимыми для функционирования старого ПО. Всё это привело к тому, что BIOS, по сути, стал самым устаревшим компонентом современных ПК. На данный момент BIOS мало удовлетворяет требованиям новейшего оборудования и имеет следующие недостатки:

  1. 16-битный код, реальный режим. BIOS написан на языке ассемблера и функционирует на 16-битном коде в реальном режиме (real mode) процессора со свойственными ему ограничениями, самое существенное из которых - ограничение адресного пространства памяти объемом 1 Мегабайт.
  2. Отсутствие доступа к 64-битному железу. BIOS не способна напрямую взаимодействовать с 64-битным оборудованием, доминирующим на рынке в настоящее время.
  3. Отсутствие единого стандарта. Для BIOS отсутствует единая спецификация - каждый производитель предлагает собственный вариации реализации.
  4. Сложность разработки. Проблема заключается в том, что практически для каждой очередной модели системной платы производителем разрабатывается собственная версия BIOS, в которой реализуются уникальные технические особенности данного устройства: взаимодействие с модулями чипсета, периферийного оборудования и прч. Разработку BIOS можно разделить на два этапа. На первом этапе создается базовая версия микропрограммы, в которой реализуются те функции, которые не зависят от специфики оборудования. Разработчики подобного кода хорошо известны, это такие компании как American Megatrends (AMIBIOS), Phoenix Technologies (+ приобретенная ею легендарная Award Software (AwardBIOS)) и некоторые другие. На втором этапе к разработке BIOS подключаются программисты производителя материнской платы. Тут уже базовая сборка модифицируется под специфику каждой конкретной модели платы, учитываются ее особенности. После выхода системной платы на рынок, работа над прошивкой продолжается, регулярно выпускаются обновления, в которых исправляются ошибки, добавляется поддержка нового оборудования (например, процессоров) и, иногда даже расширяются функциональные возможности прошивки.

Все эти, а так же некоторые другие, недостатки традиционной модели BIOS и привели к тому, что коалиция производителей аппаратуры и ПО начала работать над созданием спецификации UEFI. Начиная, по собственным наблюдениям, где-то с 2010 года, спецификация UEFI начала массово внедряться во все вновь выпускаемые материнские платы ведущих производителей, поэтому на данный момент найти новый компьютер с традиционным BIOS практически невозможно. Однако, сильно огорчаться из-за этого не стоит, поскольку многие производители в своих системных платах сохраняют совместимость с функционалом традиционных BIOS. К примеру, очень важным моментом является поддержка традиционного режима загрузки при помощи MBR. С этой целью был разработан UEFI-модуль режима эмуляции BIOS, который носит название Compatibility Support Module (CSM). Правда, я так полагаю, со временем все меньше и меньше производителей будут поддерживать в своих прошивках данный режим.

Преимущества UEFI

Тут я хотел бы определить достоинства интерфейса UEFI:

  1. Поддержка носителей информации (дисков) большого объема. Поддержкой больших дисков UEFI обязан новому стандарту таблиц разделов под названием GPT (GUID Partition Table). Традиционный способ загрузки в BIOS использовал загрузочный сектор Master Boot Record (MBR), содержащий в себе таблицу разделов, которая описывала размещение разделов (партиций) диска. У записей таблицы разделов в MBR имеется один существенный недостаток: номер первого сектора начала раздела в формате LBA (смещение 08h от начала записи о разделе), имеет разрядность всего-лишь 4 байта (32 бита), соответственно, адресовать возможно только 4 миллиарда секторов. А это, при "классическом" размере сектора в 512 байт, всего-лишь ~2 терабайта дискового пространства. UEFI же, при помощи GPT, дает возможность адресовать диски объемом до 18 экзабайт.
  2. Прямая поддержка файловых систем и таблиц разделов. UEFI имеет модули поддержки файловых систем и таблиц разделов, то есть умеет работать как с таблицами разделов, так и с файловыми системами напрямую. Спецификация подразумевает обеспечение поддержки таблицы разделов GPT, файловых системам FAT12 , FAT16 , FAT32 на жестких дисках и файловой системы ISO9660 на CD/DVD дисках. Это избавляет нас от необходимости писать код начальной загрузки (по аналогии с MBR), который будет по цепочке грузить загрузчики различных стадий.
  3. Отсутствие других традиционных ограничений MBR. Например больше не требуется втискивать код начальной загрузки в миниатюрный сектор размером в 512 байт. Можно сосредоточиться на написании единого модуля загрузки, который будет совмещать в себе все необходимые стадии.
  4. Независимые от платформы драйвера оборудования. UEFI имеет доступ к аппаратному обеспечению компьютера посредством платформо-независимых драйверов. Производителю устройства достаточно написать всего-лишь одну версию драйвера для всех платформ (x86, ARM, Itanium, Alpha), а это значительно упрощает разработку и ускоряет процесс выявления ошибок. Спецификация UEFI описывает взаимодействие драйверов UEFI с операционной системой, таким образом, в случае, когда в ОС отсутствует драйвер, к примеру, видеокарты, а в UEFI он присутствует, загружен и функционирует, то ОС имеет возможность выводить данные на монитор посредством стандартных интерфейсов UEFI.
  5. Поддержка стека протоколов TCP: IPv4/IPv6. Позволяет использовать богатые сетевые возможности непосредственно из интерфейса UEFI. Теперь можно разрабатывать различные загрузки по http/ftp протоколам, тут же на ум приходит загрузка с указанием URL, по которому лежит обычный EFI-модуль, либо полноценный ISO-образ. Стало возможным обойти уже успевшую стать единственно-возможным вариантом, загрузку по сети с использованием PXE/TFTP. Некоторые, особенно продвинутые реализации, могут реализовать поддержку PXE через IPv6.
  6. Поддержка традиционной модели BIOS. UEFI не нужен классический BIOS, однако многие производители встраивают код эмуляции BIOS с целью поддержки работоспособности старых операционных систем. Называется этот модуль - модулем поддержки совместимости Compatibility Support Module (CSM). CSM включает 16-битный модуль (CSM16), реализуемый изготовителем BIOS, и слой, связывающий CSM16 с инструментарием (интерфейсом и оборудованием). Совместимость подразумевает поддержку загрузки посредством MBR и поддержку на уровне кода программных прерываний (int 10h - видеосервис, int 13h - сервис работы с диском, int 15h - сервисные функции, int 16h - сервис клавиатуры, int 18h - ROM-BASIC сервис, int 19h - сервис начальной загрузки (bootstrap loader)). Поэтому те ОС и ПО, которым для работы как воздух необходим был старый-добрый BIOS, свободно могут работать и на машинах с UEFI.
  7. Интуитивно-понятный интерфейс UEFI. Так называемая “простота управления”. Достаточно спорный момент, невозможно однозначно отнести его к плюсу или минусу. Утверждается, что управление BIOS было не интуитивно, представляя собой плохо документированный, аскетичный текстовый интерфейс, разобраться в котором мог только подкованный в компьютерных технологиях пользователь. В противовес этому, во многих оболочках UEFI поддерживаются графический интерфейс, манипулятор “мышь”, которые в большинстве BIOS просто не реализованы. Однако, если мне не изменяет память, я еще в 90х годах наблюдал попытки реализации поддержки мыши в BIOS от (кажется) Phoenix. Сам интерфейс может быть графическим, по мнению некоторых - более дружелюбным и интуитивным для большинства, но может быть и традиционным, то есть схожим с классическим текстовым, тут все зависит от предпочтений разработчика и позиционирования оборудования. Имеется возможность поддержки нескольких языков.
  8. Скорость работы UEFI. Утверждается, что код UEFI выполняется быстрее кода традиционного BIOS (хотя и написан на C), за счет того, что целиком написан “с нуля”, без необходимости "волочить" за собой обоз устаревшего кода поддержки различного нестандартного железа и разнообразных логических анахронизмов.
  9. Скорость загрузки ОС. Утверждается, что с UEFI загрузка происходит существенно быстрее. Достигается это за счет распараллеливания инициализации устройств, в противоположность BIOS, который инициализировал оборудование последовательно, а так же уменьшения времени запуска по причине отсутствия необходимости искать загрузчик методом перебора всех устройств (загрузчик указывается в UEFI и вызывается непосредственно). Склонен поверить, поскольку подтвердить либо опровергнуть на данный момент не могу. Однако, если измерить сколько времени уходит на моей старой машинке на Celeron 450/GA-G31M-ES2L с SSD с момента включения и до появления окна авторизации оптимизированной Windows XP, то получится всего 23 секунды. Вероятно, для определенных категорий устройств этого будет недостаточно.
  10. UEFI - мини ОС. Можно, конечно же, обозвать UEFI миниатюрной операционной системой, и это, от части, будет справедливо, но корректнее считать её виртуальной платформой, которая предоставляет интерфейсы к оборудованию. Можно работать только в консоли, а можно написать и полноценный графический интерфейс. UEFI, при наличии модулей необходимого функционала, может, к примеру, помочь разобраться в проблемах загрузки основной ОС, или выполнить другие сервисные функции.
  11. Дополнительные программные модули. Непосредственно до загрузки операционной системы с носителя UEFI позволяет запускать собственные UEFI-модули и драйвера широкого назначения: по работе с сетью, диском (архивация/бэкап/антивирус), конфигурацией параметров, тестированию оборудования. Очевидно, что с популяризацией стандарта список UEFI-приложений будет только расширяться. Уже сейчас можно даже написать полноценную игру, разработать собственную консоль для сервисных нужд в виде отдельного UEFI-модуля (пример: shell.efi), интернет-браузер, обеспечить работу с медиаданными (просмотр фильмов, прослушивание музыки), организовать резервное копирование дисков.
  12. UEFI содержит встроенный менеджер загрузок. То есть, реализует собственный загрузчик кода ОС, который очень функционален и может выступать аналогом знакомых нам по не столь далекому прошлому мультизагрузчиков нескольких операционных систем.
  13. Размер блока ввода-вывода. В UEFI при чтении используется особый размер блока EFI ввода-вывода, позволяющий читать по 1Мб данных (в BIOS ограничение – 64Кб).
  14. Безопасность. Якобы UEFI защищена от вредоносного кода этапа загрузки. Утверждается, что вредоносный код не может загрузить себя до загрузки операционной системы, перехватив тем самым управление. Это достигается и за счет подписывания всего подряд в самой прошивке, так и за счет существования безопасной процедуры загрузки под названием “Secure Boot”.
  15. Простота масштабирования функционала. Прошивка UEFI может легко расширяться - достаточно вставить поддерживаемый накопитель (к примеру USB-флешку). После этого с внешнего устройства можно подключить дополнительные драйверы, приложения UEFI. Если подумать, тем самым открываются прекрасные возможности расширения функционала, которые нельзя было получить с помощью традиционного BIOS, поскольку он был ограничен исключительно зашитым в ROM кодом. В UEFI же можно "подсунуть" драйвер новой железки непосредственно еще на стадии работы UEFI, то есть до начала загрузки операционной системы, и получить доступ к функционалу этого устройства.
  16. Код UEFI функционирует в 32-/64-битном режиме. Со всеми вытекающими.. преимуществами. Если быть уж совсем честным, то всё же UEFI использует реальный режим в самом начале для выполнения некоторых задач инициализации платформы, однако очень быстро уходит в защищенный/длинный режим.
  17. Поддержка альтернативных средств ввода. UEFI обеспечивает поддержку альтернативных средств ввода данных, таких как виртуальные клавиатуры и сенсорные дисплеи. Это достаточно актуально в нашу эпоху различных мобильных гаджетов.

Недостатки UEFI

А теперь хотелось бы осветить недостатки технологии UEFI:

  1. Усложнение архитектуры. Все преимущества EFI не являются настолько уж значимыми перед основным её недостатком - усложнением структуры кода. Значительное увеличение объема кода, его логическое усложнение никак не способствуют облегчению разработки, скорее даже наоборот. А ведь до и параллельно с UEFI, альтернативой устаревшей модели BIOS были открытые реализации, к примеру OpenBIOS, которые были отвергнуты.
  2. Secure Boot. Тут разработчики операционных систем решили сразу несколько проблем: частично проблему пиратства, исключив обход активации путем внедрения активаторов в этапы загрузки, проблему вредоносного кода (вирусов) стадии загрузки и проблему сохраняющих популярность устаревших операционных систем, с которых ну никак не хотят уходить пользователи:) В действительности вышло так, что в отдельных особенно умных устройствах, из-за наличия не отключаемой опции "Secure Boot", зачастую невозможно установить никаких ОС кроме систем линейки Windows версии 8+, поскольку сертифицированные загрузчики на данный момент имеют лишь последние. Согласитесь, смахивает на довольно топорный способ борьбы со скупыми пользователями и конкурентами, хотя сама Microsoft всячески отрицает подобную ситуацию. Одним словом, технология способна доставить массу неудобств, хорошо хоть у большинства вендоров эта опция (пока еще) отключается в настройках.
  3. Невозможность установки старых ОС (в некоторых случаях). Невозможно установить старые системы при отсутствии режима совместимости (CSM).
  4. Отступление от стандарта. Каждый производитель аппаратных компонентов по своему усмотрению модифицирует UEFI, тем самым создавая для пользователя дополнительные трудности, фактически возвращая нас в хаос BIOS? Например, на различных устройствах менеджер загрузки может быть реализован по-разному, при этом иметь достаточно существенные отступления от рекомендаций спецификации UEFI. На практике, иногда попадались забагованные UEFI, которые игнорировали параметры списка загрузки NVRAM и просто грузили код из \EFI\Microsoft\Boot\bootmgfw.efi или EFI/BOOT/bootx64.efi . Или менеджер загрузки в одних реализациях может содержать комбинированный список из MBR и GPT устройств, в других же разные списки загрузки, что вводит некоторую сумятицу.
  5. Внедрение средств контроля контента. Стандарт UEFI предусматривает наличие неких драйверов, которые будут перехватывать вызовы операционной системы, таким образом можно реализовать DRM (Digital Restrictions Management, технические средства защиты авторских прав). Суть алгоритма следующая: человеку, у которого все работает, предлагается за его же счет установить такое программное обеспечение или оборудование, чтобы часть функций в его работающих системах воспроизведения цифрового контента (компьютеры, мультимедиа-плееры и др.) более не работала привычным образом. Существуют небезосновательные опасения, что создание UEFI - это завуалированный способ введения в ПК нежелательных для конечного пользователя функций.
  6. Возможность внедрения нежелательных модулей. Невозможно гарантировать, что операционная система на 100% контролирует компьютер, если она загружается с помощью UEFI!

Алгоритм работы UEFI

В процессе разработки UEFI, разработчика, с самого начала, были установлены жесткие рамки для каждого процесса, участвующего в ходе выполнения. Первые три фазы (SEC, PEI, DXE) подготавливают платформу для загрузчика ОС, четвертая фаза (BDS) непосредственно производит загрузку загрузчика ОС. Давайте попробуем разобрать алгоритм работы UEFI и подробнее рассмотреть все его фазы.

  • Фаза SEC. (Security, Безопасность). Фаза безопасности. Все должно быть подписано и проверено иначе не будет запущено!
    • Очистка CPU кэша.
    • Запуск главной процедуры инициализации в ROM.
    • Переход в защищенный режим работы процессора.
    • Инициализируются MTRR (диапазонные регистры типа памяти) для BSP.
    • Запуск патчей микрокода для всех установленных процессоров.
    • Начальная работа с BSP/AP. BSP = Board Support Package. AP = Application Processor. Каждое ядро может быть представлено как BSP + AP. Всем AP рассылается IIPI (Init Inter-processor Interrupt), затем SIPI (Start-up Inter-processor Interrupt).
    • Передача данных и управления в фазу PEI.
  • Фаза PEI. (Pre-EFI Initialization, Пред-EFI Инициализация). Подготовка платформы (памяти и обнаруженных устройств) для главной процедуры инициализации системы в фазе DXE.
    • Перенос данных из ROM в кеш.
    • Инициализация CRTM (Core Root for Trust of Measurement). Это набор инструкций, который запускается платформой в ходе выполнения RTM-операций.
    • Загружается диспетчер PEI. Диспетчер загружает серию модулей (PEIM), которые варьируются в зависимости от платформы. Эти модули завершают оставшиеся задачи PEI. Стадия завершается, когда все модули загружены.
    • PEIM: Загружаются и запускаются модули инициализации процессоров. (пример: модуль кеша процессора, модуль выбора частоты процессора). Инициализируются процессоры.
    • PEIM: Встроенные интерфейсы платформы инициализируются (SMBus). Инициализируются MCH (Memory Controller Hub), ICH (I/O Controller Hub).
    • PEIM: инициализация памяти. Инициализация основной памяти и перенос в нее данных из кэша.
    • Проверка режима S3. Нет - передача управления в фазу DXE. Да - восстановление исходного состояния процессора и всех устройств и переход к ОС.
  • Фаза DXE. (Driver eXecution Environment, Среда загрузки драйверов). Загрузка компонентов этой фазы базируется на ресурсах, которые были инициализированы в фазе PEI. Фаза окончательной инициализации всех устройств. Запуск служб UEFI: Boot Services, Runtime Services и DXE Services.
    • Загружается ядро DXE. Создается инфраструктура DXE: создаются необходимые структуры данных, база данных хендлов. Включает основные интерфейсы DXE. Запускает ряд сервисов: сервисы этапа загрузки (Boot Services), сервисы этапа выпонения (Runtime Services), сервисы фазы DXE (DXE Services).
    • Запуск диспетчера DXE. Посредством переданного из PEI списка Hand-off Block структур (HOB list) определяет доступные Firmware Volume (FV, структурированная база данных исполняемых модулей DXE: драйверов и приложений) и ищет в них драйвера, запускает их, соблюдая зависимости. В этот момент производится активация остальных компонентов, причем одновременно нескольких. Диспетчер грузит все доступные драйвера со всех доступных носителей.
    • Загрузка драйвера SMM Init. Инициирует подфазу. SMM (System management mode) - один из привилегированных режимов исполнения кода x86-процессора, в котором процессор переключается на независимое адресное пространство, сохраняет контекст текущей задачи, затем выполняет необходимый код, затем возвращается в основной режим. Зачем нам SMM? А потому что в этом режиме можно сделать с системой все что угодно и не зависимо от ОС. Код SMM может исполняться и после окончания фазы DXE.
    • Запускается UEFI Boot Manager. Это происходит после запуска всех драйверов. Управление передается в фазу BDS.
  • Фаза BDS. (Boot Device Selection, Выбор устройства загрузки). Реализует политику загрузки платформы. Основная задача - подключить устройства, необходимые для загрузки, выбрать (вручную или автоматически) устройство загрузки и загрузиться с него. Зачастую выполняет рекурсивный поиск по всем доступным FV и пытается найти доступный для загрузки контент.
    • Инициализируются консольные устройства, описываемые переменными окружения ConOut (ConsoleOutHandle), ConIn (ConsoleInHandle), StdErr (StandardErrorHandle).
    • Загружаются UEFI-драйвера устройств, перечисленные в переменной окружения DriverOrder (содержащей опций Driver#### в порядке загрузки).
    • Загружается UEFI-приложение с устройства загрузки Boot#### . Списки устройств содержатся в переменной окружения BootOrder в порядке очередности загрузки.
    • Если не смогли выполнить что-либо из вышеперечисленного, то вызываем диспетчер DXE для проверки обеспечения зависимостей дополнительных драйверов с момента последнего вызова диспетчера. После чего управление опять возвращается в фазу BDS.

Алгоритм работы UEFI Boot Manager

Концепция загрузки UEFI существенно отличается от аналогичной в BIOS. Если вспомнить BIOS, то за загрузку там отвечал код начального загрузчика int 19h (bootstrap loader), задача которого состояла лишь в том, чтобы загрузить главную загрузочную запись (MBR) с устройства загрузки в память и передать ей управление. В UEFI всё несколько интереснее, она содержит свой собственный полноценный встроенный загрузчик, который носит название UEFI Boot Manager (Менеджер загрузки UEFI или просто Boot Manager), имеющий куда более богатый функционал.

UEFI Boot Manager - стандартный типовой модуль UEFI.

Boot Manager реализует довольно широкий набор функций, в число которых входит загрузка таких UEFI-образов, как: UEFI-загрузчиков ОС первой стадии, UEFI-драйверов, UEFI-приложений. Загрузка может производиться из любого UEFI-образа, размещенного на любой поддерживаемой UEFI файловой системе, располагающейся на любом поддерживаемом платформой физическом носителе информации. UEFI Boot Manager имеет свою собственную конфигурацию, параметры которой в виде ряда переменных располагаются в общей NVRAM (Non-volatile RAM).

EFI NVRAM - общая область памяти, предназначенная для хранения параметров конфигурации UEFI, доступная для использования разработчикам прошивки, производителям оборудования, разработчикам операционных систем и пользователям.

Параметры UEFI хранятся в NVRAM в виде переменных, которые классически представлены парой "название параметра" = "значение". Эти переменные содержат большое количество параметров, которые относятся к разным функциональным частям UEFI, то есть, помимо параметров UEFI Boot Manager"а, NVRAM хранит и многие другие параметры UEFI. Однако, в контексте данной главы нас интересуют лишь переменные, относящиеся к UEFI Boot Manager. Это, в первую очередь, переменная BootOrder , которая указывает на переменные дескрипторов загрузки с именами Boot#### . Каждый элемент Boot#### представляет собой указатель на физическое устройство и (опционально) может описывать даже файл, представляющий собой образ UEFI, который должен с этого физического устройства грузиться.

Все загрузочные устройства описываются в виде полного пути, то есть содержат читаемое имя загрузочного файла, поэтому могут добавляться в меню загрузки.

Вот так, примерно, я представляю себе алгоритм перебора носителей в процессе работы UEFI:

Как мы видим, UEFI Boot Manager парсит BootOrder , то есть загружает путь устройства каждого элемента Boot#### в порядке, заданном в переменной BootOrder и пытается выполнить загрузку с указанного устройства. В случае ошибки менеджер загрузки переходит к следующему элементу. Кроме этого, формируется так называемый список загрузки. Этот список актуален для интерфейса настроек UEFI и выглядит как привычное стандартное меню загрузки (Boot Menu). UEFI Boot List формируется на основе переменной BootOrder и используется для внесения пользователем изменений в очередность и конфигурацию устройств загрузки.
А как же формируется сам BootOrder ? А очень просто, например в процессе установки операционной системы Windows, инсталлятор создает раздел ESP (в случае его отсутствия) на установочном диске, форматирует данный раздел в файловую систему FAT, затем помещает свой загрузчик (для Windows 7+ это файл bootmgfw.efi ) и некоторые другие файлы по пути \EFI\Microsoft\Boot\ . По окончании установки ОС, инсталлятор Windows создает переменную в EFI NVRAM с именем Boot#### (где #### - шестнадцатеричный номер), ссылающуюся на менеджер загрузки Windows с именем bootmgfw.efi . Затем, правит переменную BootOrder ?

Требования к загрузочным носителям UEFI

Спецификация UEFI, наряду с прочим, описывает и определенные требования к правилам размещения разделов и загрузчиков на носителях. И для различных классов устройств, как мы увидим далее, они существенно отличаются.

Требования для жестких дисков

Каждый загрузочный жесткий диск должен содержать специальный раздел EFI System Partition (ESP). В разделе ESP должна соблюдаться предопределенная стандартом иерархия директорий (структура): в корне раздела ESP должна размещаться директория /EFI . В папке /EFI , в свою очередь, должны располагаться подкаталоги вендоров операционных систем, производителей оборудования, общего инструментария и драйверов:

\EFI \<директория вендора ОС 1> <файл-загрузчик-ОС1>.efi \<директория вендора ОС 2> <файл-загрузчик-ОС2>.efi . . . \<директория вендора ОС N> <файл-загрузчик-ОСN>.efi \<директория производителя оборудования (OEM)> .efi \<директория BIOS вендора> <приложение-BIOS-вендора>.efi \<директория вендора стороннего ПО> <стороннее-приложение>.efi \BOOT BOOT{тип_архитектуры}.efi

\<директория вендора ОС 1>

<файл-загрузчик-ОС1>.efi

\<директория вендора ОС 2>

Реестре поддиректорий .

Вендоры, директории которых не описаны в поддиректории вендоров и которые не имеют собственных поддиректорий в папке /EFI , зачастую размещают свой загрузчик как "загрузчик по-умолчанию". К примеру, для x64 систем по пути: /EFI/Boot/bootx64.efi .

Файл загрузчика (boot loader) является типовым UEFI-приложением, имеет формат PE32+ и содержит код начальной стадии загрузки операционной системы, то есть начинает процесс загрузки ОС. Его цель - подготовить структуры данных, загрузить ядро ОС в память и передать ему управление.
В спецификации описана поддиректория /EFI/Boot . Данная поддиректория используется как расположение "по умолчанию", то есть в ситуации, когда по каким-либо причинам в NVRAM сбивается (не настроен) какой-либо загрузчик. Для подобного случая в данной директории располагается так называемый "загрузчик по-умолчанию" (fallback boot loader), который имеет стандартизованное наименование BOOT{тип_архитектуры}.efi

Некоторые старые реализации UEFI были "забагованы", они попросту игнорировали список загрузки в NVRAM и грузили напрямую модули либо /EFI/BOOT/bootx64.efi . Другие же, не менее "прямые" варианты UEFI не поддерживали меню загрузки и тоже всегда загружали /EFI/Boot/bootx64.efi либо /EFI/Microsoft/Boot/bootmgfw.efi в зависимости от своих таинственных предпочтений.

Загрузка в Legacy-режиме

UEFI не запускает никакого кода из классического MBR, вне зависимости от того, присутствует сектор на установленных в системе носителях или нет. Исключение составляют версии UEFI с реализацией поддержки "режима совместимости". В следствии этого, для традиционной (legacy) загрузки операционных систем, совместимых со стандартом разметки MBR, в UEFI предусмотрены специальные модули, которые могут быть (по усмотрению вендора) включены в прошивку. Узнать поддерживает ли конкретно Ваша UEFI-прошивка "режим совместимости" можно поискав в интерфейсе UEFI такие параметры как Legacy , Legacy CSM , Launch CSM , CSM Boot , CSM OS , Запуск CSM или CSM Support . Надо отметить что в подавляющем большинстве прошивок данный режим присутствует, что сильно упрощает жизнь пользователей, купивших новые ноутбуки или материнские платы, но так и не изменивших своих привычек в использовании "старых" операционных системам от MS:)
Логично предположить, что в случае наличие CSM модуля, код прошивки при загрузке в традиционном режиме должен максимально приближаться к аналогичным функциональным особенностям традиционных BIOS, попросту эмулируя ключевые технологии. Давайте посмотрим, какие действия производит модуль поддержки совместимости (CSM) UEFI при загрузке в традиционном режиме.
Приведу здесь пока лишь абстрактно-условный алгоритм загрузки в режиме Legacy/Compatibility Support Module (CSM):

  1. Требуется ли загрузка в традиционном (legacy) режиме? Если нет, то уходим на обычную цепочку UEFI Boot.
  2. Загружаем модуль Legacy Driver.
  3. Загружаем модуль Legacy BIOS.
  4. Требуется ли поддержка традиционных функций видео-BIOS (реализация функций прерывания int 10h)? Да - загружаем.
  5. Требуется ли поддержка остальных традиционных расширений BIOS (int 13h..)? Да - загружаем.
  6. Загружаем традиционную (legacy) ОС? Нет - уходим на нормальную загрузку UEFI.
  7. Формируем SMBIOS структуры.
  8. Формируем структуры Legacy Device.
  9. Формируем структуру прерывания int 15h, структуру BBS (BIOS Boot Specification) API.
  10. Формируем ACPI RSD PTR.
  11. Загружаем совместимый SMM код.
  12. Загружаем код из MBR и передаем ему управление.

Мультизагрузка в UEFI

С самого начала массового распространения персональных компьютеров, время от времени вставала задача развертывания нескольких операционных систем на одном ПК, в котором мог размещаться один или несколько физических носителей. Не так давно ситуацию существенно изменило открытие технологии виртуализации, но полностью проблему это не сняло. В классическом своём понимании, применительно к станциям, загружающимся по традиционному способу PC/AT BIOS с использованием классической разметки MBR, мультизагрузка представляла собой сторонний код в главном загрузочном секторе (MBR), который загружает так называемый менеджер загрузки (мультизагрузчик), хранящий настройки для каждой установленной на компьютере операционной системы и предоставляющий меню выбора загрузки той или иной ОС. Если говорить про наше время, то есть про мультизагрузку применительно к носителя, разбитым уже при помощи GPT разметки, то теперь многое изменилось. Как мы уже отмечали, UEFI напрямую умеет работать с GPT-дисками, поэтому задача по установке нескольких операционных систем существенно упрощается. Теперь все функции мультизагрузчика берет на себя встроенный UEFI Boot Manager, принципы функционирования которого мы описали выше. Инсталлятору ОС достаточно лишь сделать то, с чем он и так прекрасно справляется: разместить загрузчик на специальный раздел ESP в "свою" иерархию директорий, после чего этот загрузчик становится "видимым" в настройках UEFI. Помимо установщика ОС, теперь и сам пользователь при помощи настроек (графического/текстового интерфейса UEFI) может вручную добавить загрузчик, находящийся на любом подключенном и видимом системой физическом носителе. Все эти добавленные различными способами загрузчики становятся доступными через Меню загрузки, которое пользователь может настраивать/вызывать непосредственно во время работы UEFI, то есть на начальной стадии загрузки ПК. Другими словами, мультизагрузка в UEFI просто вопрос запуска UEFI-приложений (загрузчиков конкретных ОС), размещающихся на подключенных носителях на специальном разделе ESP в иерархии директорий с корнем в /EFI .

Многие из современных брендов-производителей аппаратных компонентов для ПК, а также «софта» стремятся обеспечить поддержку своими продуктами интерфейса UEFI. Данное программное решение призвано стать альтернативой привычной многим любителям компьютерной техники системе ввода-вывода — BIOS. Какова специфика рассматриваемого ПО? Какие нюансы характерны для пользования его возможностями?

Что такое UEFI

Рассмотрим основные сведения об UEFI. Что это за разработка? UEFI - это особый интерфейс, который устанавливается между ОС, инсталлированной на компьютере и программным обеспечением, отвечающим за низкоуровневые функции аппаратных компонентов ПК.

Иногда именуется как БИОС UEFI. В этом названии, с одной стороны, есть некоторая ошибка, поскольку BIOS - это программное решение, функционирующее по иным принципам. UEFI разработан компанией Intel, BIOS - это ПО, существующее в нескольких версиях, поддерживаемых разными брендами.

С другой стороны, назначение BIOS и UEFI - практически одно и то же. БИОС UEFI - формально, не вполне корректное словосочетание, но не противоречащее логике программно-аппаратных алгоритмов управления ПК.

Отличия BIOS от UEFI

Но первое, чему мы уделим внимание — это нахождение различий между «чистым» BIOS и «классическим» UEFI. Дело в том, что рассматриваемое нами программное решение позиционируется как более совершенная альтернатива БИОС. Многие производители современных материнских плат для компьютеров стараются обеспечить поддержку соответствующего типа ПО от Intel. Таким образом, различия между UEFI и BIOS мы можем проследить, изучив, прежде всего, недостатки второй системы.

Первый недостаток BIOS - в том, что данная система не может обеспечивать полноценное задействование дискового пространства на очень больших «винчестерах» - тех, которые превышают в объеме 2 терабайта. Действительно, еще несколько лет тому назад такие величины, характеризующие вместительность жестких дисков, казались фантастическими, и потому, производители ПК особо не акцентировали внимание на соответствующем недостатке BIOS. Но сегодня «винчестером» объемом более 2ТБ никого не удивишь. Производители ПК начали чувствовать, что пора переходить на UEFI, что это объективная необходимость, исходя из современных технологических трендов.

Еще одна особенность BIOS - в том, что она поддерживает ограниченное количество первичных разделов на жестком диске. В свою очередь, UEFI работает с 128. В структуре нового программного решения от Intel реализована новая таблица разделов — GPT, которая, собственно, позволяет задействовать отмеченное технологическое преимущество UEFI.

При всех отмеченных различиях новой программной среды, разработанной Intel, и традиционной системы ввода-вывода BIOS, основные функции соответствующих решений, в целом совпадают. Если не считать принципиально нового алгоритма обеспечения безопасности в UEFI, фактических различий между системами не слишком много. Некоторые специалисты полагают, что новая программная платформа позволяет быстрее загружаться операционным системам, другие отмечают, что это актуально только для Windows 8. Рассмотрим, собственно, систему безопасности, реализованную в UEFI, подробнее.

Новая технология безопасности

В чем опережает новая система UEFI BIOS - это уровень безопасности. Дело в том, что существуют вирусы, которые способны внедряться в микросхему, где прописаны алгоритмы BIOS. После чего — становится возможной загрузка ОС с расширенными правами пользователя, что открывает самые широкие возможности для хакера. В свою очередь, в новом решении от Intel реализована безопасная загрузка — UEFI предусматривает соответствующий алгоритм, который называется Secure Boot.

Он базируется на использовании особых ключей, которые должны быть сертифицированы крупнейшими брендами IT-рынка. Однако, как отмечают специалисты, на практике таких компаний пока не слишком много. В частности, что касается поддержки соответствующей опции производителями операционных систем, то в полной мере ее обеспечивает только Microsoft и только в ОС Windows 8. Есть также сведения о том, что совместимость с новой системой безопасности реализована в некоторых дистрибутивах Linux.

Преимущества UEFI

Очевидно, что отмеченные недостатки BIOS - это, одновременно, преимущества нового программного решения. Вместе с тем UEFI характеризуется рядом иных важнейших преимуществ. Рассмотрим их.

Прежде всего, это удобный, интуитивно понятный и функциональный интерфейс. Как правило, в нем реализована поддержка мыши — что не характерно для BIOS. Также многие версии UEFI (BIOS данная опция также не свойственна) предусматривают русифицированный интерфейс.

Алгоритмы, предусмотренные новым программным решением, позволяют осуществлять загрузку операционных систем в большинстве случаев ощутимо быстрее, чем при использовании BIOS. Например, ОС Windows 8, установленная на компьютере с поддержкой UEFI, может загружаться — при условии адекватной производительности процессора и иных ключевых аппаратных компонентов — буквально за 10 секунд.

В числе иных значимых преимуществ рассматриваемого программного решения, которые выделяют многие IT-специалисты — более простой, в сравнении с механизмами BIOS, алгоритм обновления. Другая полезная опция UEFI - наличие в данной системе собственного который можно задействовать, если на ПК установлено несколько ОС.

Итак, технологические преимущества нового программного интерфейса управления ПК, который разработан Intel, нам понятны. Крупнейшие бренды-производители аппаратных компонентов для ПК обеспечивают совместимость соответствующего «железа» с UEFI - Gigabyte, ASUS, SONY. Переход на новую систему, как полагают многие IT-эксперты, может превратиться в устойчивый технологический тренд. Те возможности, которые предлагает мировому IT-сообществу компания Intel, разработавшая UEFI, вполне могут оказаться привлекательными для ведущих производителей ПО и аппаратных компонентов для ПК. Тем более что соответствующие технологические опции UEFI поддерживаются крупнейшим брендом на рынке операционных систем.

Факты о Secure Boot

Рассмотрим подробнее преимущества технологии Secure Boot, поддерживаемой UEFI. Что это за концепция? безопасной загрузки компьютера, который призван защищать систему, как мы отметили выше, от проникновения вирусов. Правда, для его полноценного задействования ключи, которые используются данным протоколом, должны быть сертифицированы. На данный момент этому критерию удовлетворяет совсем немного брендов-производителей ПО. В числе таковых — компания Microsoft, реализовавшая поддержку соответствующих алгоритмов в ОС Windows 8.

Можно отметить, что данное обстоятельство в ряде случаев может осложнять инсталляцию на ПК, который работает под управлением UEFI, иных операционных систем. Если предстоит установка Windows - UEFI еще может проявлять некую лояльность к этому — но при условии, что версия ОС будет максимально приближена к той, которая инсталлирована производителем компьютера. Можно отметить также, что некоторые дистрибутивы Linux также совместимы с опцией Secure Boot.

Но даже в случае, если в силу рассматриваемой функции загрузка новой ОС будет запрещена системой, в структуре интерфейса UEFI предусмотрена возможность отключения алгоритмов Secure Boot. Понятно, что в этом случае загрузка ОС будет не столь безопасной, однако, соответствующую опцию можно в любой момент активировать вновь и начать работать с Windows 8.

Какие ОС полностью совместимы с UEFI?

В очень редких случаях у отдельных IT-специалистов получается инсталляция на ПК с поддержкой Secure Boot альтернативных ОС. Например, известно, что теоретически можно поставить Windows 7 на некоторые ноутбуки с поддержкой UEFI BIOS. ASUS - в числе производителей таких ПК. Но это, скорее, исключение из правил. В общем случае невысока вероятность удачной установки даже иных редакций Windows 8. Вместе с тем, как мы отметили выше, некоторые дистрибутивы Linux также совместимы с опциями UEFI.

Особенности настройки UEFI

Рассмотрим некоторые нюансы настройки рассматриваемого программного решения от Intel. Интересная опция — эмуляция BIOS средствами UEFI. Что это за возможность? Действительно, в некоторых версиях UEFI реализованы алгоритмы, по которым управление ПК организуется в соответствии с теми механизмами, которые задействует система ввода-вывода, являющаяся исторической предшественницей UEFI.

В зависимости от конкретного ПК, данный режим может именоваться по-разному. Чаще всего это Legacy или Launch CSM. При этом нет никаких сложностей с тем, как установить UEFI в стандартном режиме загрузки.

Нюансы доступа к UEFI

Другой примечательный факт, которые полезно отметить — есть большое количество версий UEFI. Они могут существенно различаться в ПК, выпущенных разными брендами. При этом, уровень доступности тех или иных функций на разных компьютерах также может существенно различаться. Часто бывает, например, что при загрузке компьютера не выводится меню, с помощью которого можно войти в настройки UEFI. Но на этот случай в ОС Windows, как правило, предусмотрена альтернативная возможность загрузки нужных опций. Нужно войти в «Параметры» и активизировать опцию «Особые варианты загрузки».

После этого можно перезагрузиться — и на экране появится несколько вариантов загрузки ПК. Есть альтернативный способ обеспечить доступ к соответствующим опциям UEFI. На многих ПК он работает. Нужно в самом начале загрузки компьютера нажать Esc. После этого меню, о котором идет речь, должно открыться.

Специфика работы в разных режимах

Следует обратить внимание, что при изменении обычного режима работы UEFI на Legacy, желательно, задействовав необходимые программы, которые требуют отключения Secure Boot или работы при эмуляции BIOS, вновь включать при первой возможности интерфейс UEFI со всеми соответствующими опциями. Иначе Windows 8, как отмечают некоторые IT-специалисты может не запуститься. Вместе с тем на многих ПК подобной проблемы нет. Некоторые бренды-производители внедряют в структуру управления ПК алгоритмы, которые позволяют активизировать режим UEFI автоматически. В некоторых моделях ПК реализован гибридный режим, при котором система UEFI загружается с любых носителей, и в случае необходимости может запускаться модуляция BIOS. Различия в версиях UEFI также могут предполагать, что отключение Secure Boot в режиме штатной работы программного решения от Intel невозможно. Для этого придется в любом случае активировать функцию эмуляции BIOS.

UEFI и загрузочные флешки

В ряде случаев у пользователей возникает необходимость загрузки операционной системы с флешки. Основная сложность в том, что имеющая формат, отличный от FAT32, загрузочная флешка UEFI не распознается. Но эту проблему можно успешно разрешить. Каким образом?

Итак, по умолчанию загрузочные флешки для Windows форматируются в которую UEFI не распознает. Поэтому главная задача — обеспечить, чтобы соответствующий аппаратный компонент был отформатирован в более универсальной файловой системе - FAT32. Самое интересное, что многими IT-специалистами она считается устаревшей. Но на примере одного из самых современных программных решений, каким является, безусловно, UEFI, мы можем проследить актуальность соответствующего стандарта.

Флешка для загрузки в режиме UEFI: компоненты

Что нам понадобится для того, чтобы загрузочная флешка UEFI распознавалась без проблем? Прежде всего, это, собственно, сам по себе USB-носитель. Желательно, чтобы его емкость была не менее 4 ГБ. Желательно также, чтобы ценных файлов на нем не размещалось, так как нам предстоит полностью форматировать флешку. Следующий необходимый нам компонент — дистрибутив ОС Windows. Пусть это будет 64-разрядная версия Windows 7. Еще одна особенность UEFI, о которой следует сказать — 32-разрядные ОС от Microsoft данная система не поддерживает.

Подготовка флешки

Если у нас отмеченные компоненты есть, то можно начинать работу. Сначала вставляем флешку Затем — открываем командную строку в интерфейсе Windows. Необходимо, при этом, чтобы у пользователя были права администратора. Через нужно запустить программу DISKPART - просто введя это слово. После этого необходимо ввести команду list disk, которая позволит отобразить перечень дисков, присутствующих в системе. В нем необходимо найти USB-флешку. Если она находится в перечне под 2 номером, то нужно ввести команду seleck disk 2.

Форматирование флешки

Далее нужно отформатировать носитель. Для этого нужно ввести команду clean. После этого необходимо создать первичный раздел на диске. Это можно сделать с помощью команды create partition primary. После этого созданный раздел следует сделать активным. Для этого вводим команду active. После этого можно вывести на экран перечень разделов. Для этого вводим в командную строку list volume. Находим тот раздел, который создан нами. Если он указан под номером 3, то вводим команду select volume 3. После этого нужно отформатировать его в системе FAT32. Для этого нужно ввести команду format fs=fat32. Базовый загрузочный носитель, таким образом — готов. Но это еще не все. Необходимо назначить флешке букву диска. Это можно сделать с помощью команды assign. После этого вводим exit и выходим из командной строки.

Запись дистрибутива на флешку

После всех вышеописанных действий необходимо скопировать дистрибутив Windows 7 на флешку. Это можно также сделать с помощью командной строки. Каким образом? Для этого предусмотрена особая команда — xcopy. Нужно ввести ее, далее — указать адрес диска с дистрибутивом, вставить символ *, указать букву, которой соответствует предназначенная для загрузки в UEFI флешка, после чего ввести дополнить команду символами /s /e. Затем необходимо зайти через командную строку на флешку. Там нужно попасть в каталог efi\microsoft\boot. Его нужно скопировать в папку efi\boot. После этого нужно скопировать файл, который называется bootmgfw.efi в папку efi\boot, после чего переименовать его — в файл bootx64.efi.

Работа с флешкой завершена. UEFI диск с файловой системой FAT32, в котором мы только что сможет распознать без проблем. Соответственно, с него же можно инсталлировать на ПК Windows 7. Разумеется, при условии, что в опциях UEFI отключен алгоритм Secure Boot, который запрещает устанавливать на компьютер ОС, которые отличаются от Windows 8.

BIOS – хорошо известный термин в рядах владельцев компьютеров, который используется уже на протяжении многих лет. Осенью 2017 года Intel сообщила о своих планах полностью отказаться от BIOS на всех своих платформах до 2020 года. Вместо BIOS теперь будет использоваться только UEFI, что может навести многих на логичный вопрос: чем UEFI лучше BIOS и какая вообще между ними разница?

Чип BIOS на материнской плате Gigabyte.

UEFI и BIOS относятся к разряду так называемого «низкоуровневого» программного обеспечения, которое стартует еще до того, как компьютер начнет загружать операционную систему. UEFI - это более современное решение и оно поддерживает большое количество удобных функций, полезных на современных компьютерах. Часто бывает так, что производители называют UEFI на своих компьютерах традиционным словом “BIOS”, чтобы не заплутать пользователя. Все же между UEFI и BIOS большая разница, а современные компьютеры в основном комплектуются именно UEFI.

Что такое BIOS

BIOS – это сокращенно “Basic Input -Out System ” или "базовая система ввода-вывода" . Она живет на специальном чипе внутри материнской платы (на фото выше) и не зависит от того, установлен ли в компьютер жесткий диск. При включении компьютера первым делом включается BIOS. Эта система ответственна за «пробуждение» хардверных компонентов вашего компьютера, проверку их нормального функционирования, активацию загрузчика и дальнейшего старта операционной системы.

Старый как мир BIOS.

Пользователь может настроить большое количество различных параметров внутри BIOS. Конфигурация компонентов, системное время, порядок загрузки и так далее. Зайти в BIOS можно при помощи специальной клавиши во время включения ПК. У разных компьютеров она может быть разной. К примеру, Esc, F2, F10 или Delete. Производитель сам решает, какую выбирать. После изменения настроек все параметры записываются в саму материнскую плату .

BIOS также отвечает за процесс под названием POST – “Power -On Self -Test или "проверка при включении" . POST проверяет пригодность конфигурации компьютера и исправность хардверных компонентов. Если что-то идет не так, на экране отображается соответствующая ошибка или же компьютер начинает издавать ряд определенных звуков (также существует понятие POST-кодов и в некоторых материнских платах даже установлен соответствующий дисплей для их отображения). Интенсивность этих звуков зависит от типа ошибки, и чтобы их расшифровать, надо обратиться на сайт производителя или к руководству пользователя.

После завершения POST BIOS ищет Master Boot Record (MBR) или "главную загрузочную запись", которая сохранена на носителе компьютера. Затем инициализируется загрузчик (бутлоадер) и стартует операционная система. В BIOS также часто используется термин CMOS, что расшифровывается как «Complementary Metal -Oxide Semiconductor » или "вспомогательный металл-оксидный полупроводник ". Это обозначение специальной памяти, которая питается от встроенной в материнскую плату батарейки. Память хранит в себе различные настройки BIOS и часто для сброса параметров БИОС советуют извлечь батарейку из материнской платы. В современных компьютерах на смену CMOS пришла флеш-память (EEPROM).

Почему BIOS устарел

BIOS – это очень старая система, которая существовала еще в 1980 году (а разработана была и того раньше), на момент запуска MS-DOS. Конечно, со временем BIOS развивалась и улучшалась, но концепция и основные принципы работы остались прежними. Развитие BIOS фактически нулевое, если сравнивать его с развитием компьютеров и технологий в целом.

Традиционный BIOS имеет много серьезных ограничений. К примеру, он может запустить систему только из раздела объемом не больше 2.1 Тб (максимум 4 раздела) или меньше. В современных реалиях пользователи покупают очень емкие накопители, объем которых часто превышает 4 и даже 8 Тб. BIOS не сможет работать с таковыми носителями. Это обусловлено тем, как работает MBR (главная загрузочная запись использует 32-битные элементы). Кроме того, BIOS работает в 16-битном режиме (так как был разработано еще в 70-х годах) и имеет всего лишь 1 Мб адресуемого пространства для операции. У BIOS также проблемы с инициализацией большого количества компонентов за раз, что приводит к замедленному старту компьютера.

BIOS нуждается в замене уже на протяжении большого периода времени. Intel начала разработку EFI (Extensible Firmware Interface) еще в 1998 году и Apple перешла на использование EFI в 2006 году, когда состоялся переход на архитектуру Intel. В 2007 году Intel, AMD, Microsoft и различные производители компьютеров одобрили спецификацию UEFI – "Unified Extensible Firmware Interface " или "объединенный расширяемый интерфейс встроенного программного обеспечения ". Windows получила поддержку UEFI в Windows Vista SP1 и Windows 7. Сегодня почти все компьютеры используют UEFI вместо BIOS.

Чем UEFI лучше БИОС

UEFI устанавливается вместо BIOS на различных ПК, которые вы можете найти в магазинах электроники. Сразу же надо отметить, что пользователь не может перейти с BIOS на UEFI на существующем железе. Для этого надо приобретать новое железо, которое поддерживает UEFI. Подавляющее большинство UEFI-компьютеров включают в себя BIOS-эмуляцию (зачастую это называется Legacy BIOS) , чтобы пользователь мог установить и загрузить старую операционную систему, для работы которой нужен BIOS. Иными словами, UEFI обратно совместима.

Куда более современный и дружелюбный к пользователю интерфейс UEFI.

Новый стандарт избавился от неприятных ограничений BIOS. Компьютер с UEFI может загружаться с накопителей объемом больше 2.2 Тб. Теоретически, максимальный объем носителя для UEFI составляет 9.4 Зтб (9.4 триллиона гигабайт). Это очень много. Вся суть в том, что UEFI использует схему GPT с 64-битными элементами..

UEFI запускается в 32 и 64-битном режимах, а также имеет больше памяти для работы. Это в свою очередь конвертируется в ускоренную загрузку процессора, и удобство использования. UEFI-системы зачастую имеют красивые интерфейсы с поддержкой ввода с мыши (на скриншоте выше). Есть также и ряд других преимуществ. К примеру, UEFI поддерживает Secure Boot. Это специальная процедура, которая проверяет загружаемую операционную систему и убеждается в том, что во время ее загрузки вредоносное или просто сторонеее программное обеспечение не будет вмешиваться. Также в UEFI есть поддержка различных сетевых функций, что полезно при решении технических проблем с компьютером. В традиционном BIOS пользователь должен иметь физический доступ к компьютеру, тогда как в UEFI есть возможность удаленного доступа для конфигурации.

В целом UEFI – это такая маленькая операционная система. Она может храниться на флеш-памяти материнской платы или же ее можно загрузить из жесткого / сетевого диска. Разные компьютеры с разными UEFI имеют не менее разные интерфейсы и возможности. Все зависит от предпочтений производителя вашего компьютера.

UEFI стало большим обновлением для современных компьютеров, но подавляющее большинство пользователей вряд ли заметит какую-то существенную разницу. Да и многих этот вопрос не интересует вообще. Все же надо понимать, что приход UEFI вместо BIOS стал исключительно положительным эволюционным изменением в мире современных компьютеров, пусть даже все его прелести и новшества остаются спрятанными глубоко в материнской плате компьютера. Сейчас индустрия все еще находится в переходном состоянии от BIOS к UEFI, поэтому все прелести нового стандарта раскроются в ближайшем будущем. Чтобы ускорить этот процесс, Intel решила полностью отказаться от BIOS до 2020 года и это хорошо.

UEFI BIOS – программное решение, представляющее собой альтернативу системы BIOS, к которой давно привыкло большинство пользователей компьютеров. Нельзя сказать, что это совсем свежая разработка. Работы по созданию интерфейса между ОС и микропрограммами, ответственными за низкоуровневые функции «железа», начались во второй половине 90-х годов. Первоначально этот интерфейс носил название Intel Boot Initiative. Чуть позже название было изменено на EFI.

Первая спецификация этого интерфейса, выпущенная компанией Intel в 2000-ом году, продемонстрировала его явные преимущества перед классическим BIOS . Поэтому его поддержка есть в большинстве современных материнских плат. Сегодня мы поговорим об особенностях и преимуществах UEFI . Но для этого нужно сначала разобраться, что такое BIOS .

Что собой представляет BIOS ?

Это программное решение, встроенное в микросхему на материнской плате. Эта микропрограмма обеспечивает обмен данными между комплектующими элементами компьютера и операционной системой. То есть, за счет BIOS Windows имеет возможность работать с оперативной памятью, материнской платой, процессором, видеокартой и другими компонентами.

BIOS инициализируется намного раньше загрузки Windows . На микропрограмму возлагается задача по проверке всех систем компьютера, которые мы перечислили выше. Кроме того, BIOS задает им нужные параметры функционирования.

В том случае, если во время процедуры POST выявляется неисправный компонент компьютера, то BIOS передаст через маленький динамик кодовую последовательность звуковых сигналов, по которой пользователь может определить, какая именно деталь неисправна.

Почему разработчики ПО и железа решили отказаться от BIOS в пользу UEFI ?

Тому есть несколько причин:

По этим причинам ведущие бренды обеспечивают поддержку UEFI в современных материнских платах.

Основные преимущества UEFI

UEFI в отличие от BIOS является не микропрограммой, а миниатюрной операционной системой , но при этом она очень многое взяла от своей предшественницы. Задачи UEFI точно такие же, как у БИОС – взаимосвязь программного обеспечения и «железа» компьютера. Новый интерфейс точно так же проверяет оборудование перед запуском загрузчика Windows .

К основным преимуществам UEF I можно отнести:

Новый интерфейс поддерживает управление мышкой.

Он интуитивно понятен и поддерживает множество языков. Его настройка не вызывает никаких проблем.

  1. UEFI в отличие от БИОС прекрасно работает с жесткими дисками, имеющими GPT .
  2. БИОС UEFI обеспечивает возможность работы с жесткими дисками объемом более 2-х ТБ.
  3. Жесткие диски с таблицей GUID работают с новой адресацией LBA .
  4. Windows в UEFI стартует намного быстрее.
  5. У UEFI имеется собственный загрузчик, позволяющий использовать на одном компьютере сразу несколько операционных систем без применения специальных загрузчиков.
  6. БИОС UEFI очень легко и безопасно обновляется.

Что касается “ Secure Boot ”, то эта процедура до сих пор считается сомнительным преимуществом. Как уже говорилось выше, если не отключить ее, то установка каких-либо операционных систем, кроме Windows 8 и 10, будет невозможна.

Есть мнение, что Microsoft активно продвигает процедуру “ Secure Boot ” в целях борьбы с конкурентами , ведь на новые компьютеры нельзя установить не только старые операционные системы Windows , но и ОС сторонних разработчиков. Кто-то скажет, что для решения проблемы достаточно отключить эту процедуру, но тогда пользователь будет лишен всех преимущества работы с жесткими дисками, имеющими GUID.

На все обвинения Microsoft отвечает однотипно – протокол был разработан для безопасности пользователей. И парировать эти слова нечем, ведь “ Secure Boot ” действительно обеспечивает высокий уровень защиты.

Сегодня пользователь можно столкнуться с разными версиями UEFI . Дело в том, что разработкой интерфейса занимаются производители персональных компьютеров. Поэтому UEFI от разных брендов отличается по внешнему виду и функционалу. Например, во время запуска компьютера пользователь может не увидеть меню для доступа к настройкам интерфейса. Как правило, доступ к ним пользователь позднее может получить непосредственно из ОС Windows . При этом пользователь может исправить ситуацию, выбрав во вкладке «Параметры» режим «Особые варианты загрузки». После перезагрузки при старте будет появляться меню доступных режимов загрузки.

Альтернативный вариант для доступа к настройкам UEFI – нажатие клавиши ESC на клавиатуре при старте компьютера.

UEFI может работать в двух режимах :

  1. Обычный. Предусматривает полный доступ к опциям интерфейса.
  2. Legacy . Не рекомендуется устанавливать этот режим совместимости с БИОС в том случае, если объем жесткого диска превышает 2 ТБ. Операционная система может перестать загружаться. Более того, если в системе присутствует диск объемом более 2-х ТБ, то UEFI автоматически активирует обычный режим с его “ Secure Boot ”. Если при этом на диске стояла версия Windows, отличная от 8 и 10, то она не запустится.

Существует третий режим работы UEFI – гибридный, но он пока реализован на малом числе моделей компьютеров.

Еще одна важная особенность UEFI – она не распознает файловую систему NTFS . То есть, нельзя устанавливать ОС с флешек, форматированных в NTFS . Некоторые компьютерные специалисты считают это недостатком нового интерфейса.

Что нужно сделать для установки Windows UEFI ?

Устанавливать Windows через UEFI немного сложнее, чем через БИОС. Сначала пользователю нужно создать загрузочную флешку.

Если пользователь намерен устанавливать Windows 10, то для создания и настройки флешки можно использовать официальную утилиту от Microsoft Media Сreation Tool. Использовать ее очень просто: нужно вставить флешку разъем компьютера запустить утилиту, которая определит все съемные носители в системе и предложит выбрать необходимый вариант. Далее, пользователю нужно будет провести примитивную настройку: выбрать разрядность операционной системы и язык.

Загрузочную флешку можно также сделать с помощью сторонних утилит. Это ненамного сложнее.

Следующий шаг – настройка UEFI БИОС к установке. Для доступа к настройкам интерфейса нужно при запуске компьютера нажать F 2 или Delete . После запуска меню нужно выбрать подраздел «Дополнительно». Во вкладке « boot » нужно выбрать режим поддержки USB с полной инициализацией. На вкладке “ Secure Boot ” не забудьте выбрать режим “ Windows UEFI mode ”. В завершении настройки нужно установить приоритет использования загрузочных устройств. Из имеющегося списка следует выбрать флешку с дистрибутивом ОС.

После этого можно устанавливать Windows .

Если во время установки Windows 8 или 10 появляется сообщение о неправильной настройке secure boot , то, вероятнее всего, пользователь забыл включить процедуру “ Secure Boot ” в UEFI БИОС. Для исправления ошибки достаточно включить режим защищенной загрузки.

Что делать установки Windows 7 через UEFI BIOS ?

При установке Windows 7 через UEFI БИОС пользователь может столкнуться с 2-мя проблемами:

После предварительной настройки UEFI включения и отключения необходимых функций можно приступать к установке ОС с флешки, CD или DVD .