Унифицираният разширяем интерфейс за фърмуер (UEFI, произнася се U-E-F-I) e спецификация която създава софтуерен интерфейс между операционната система и платформения фърмуер. UEFI е предназначен да замени интерфейса на BIOS фърмуера, който се намира на всички персонални компютри, съвместими с IBM PC.MS denies secure boot will exclude Linux".

На практика повечето интерфейси на UEFI също поддържат BIOS услуги. UEFI поддържа дистанционна диагностика на грешки и дори решава компютърни проблеми без операционна система.

Оригиналната EFI (Extensible Firmware Interface или Разширяем Фърмуер Интерфейс) спецификация е разработена от Intel. Някои от практиките и форматирането на данни на EFI копират тези на Microsoft Windows. През 2005 UEFI отхвърли EFI 1.10 (последната версия на EFI). Индустрията която управлява UEFI спецификациите е Унифицирания EFI Форум(The Unified EFI Forum). 

История Основната мотивация за създаването на EFI е идва по време на ранните стадии на разработка на първите Intel-HP Itanium системи, през средата на 1990. Ограниченията на BIOS (като 16-битовия режим за процесор, 1 MB адресируемо пространство и PC AT хардуерът) тогава са започнали да стават прекалено ограничителни за по-големи сървърни платформи, които Itanium набелязва. Усилията да се обърне внимание на тези опасения, започват през 1998 и са първоначално наречени Intel Boot Initiative и по късно преименувани на EFI.

През Юли 2005, Intel спират разработката върху EFI спецификация с тогавашна версия 1.10 и я предават на Unified EFI Forum, който доразработва спецификацията до Унифицирания Разширяем Фърмуер Интерфейс (UEFI). Оригиналната EFI спецификация е все още притежавана от Intel, които предоставят лицензи единствено и само за EFI – базирани продукти, докато UEFI спецификацията е притежавана от Unified EFI Forum.

Версия 2.1 на UEFI (Унифицирани Разширяем Интерфейс за Фърмуер) спецификацията, е издаден на 7 януари 2007. В нея биват добавяни криптография, мрежова автентикация и потребителската интерфейсна структура (позната като Human Interface Infrastructure в UEFI). Последната UEFI спецификация, версия 2.8, е одобрена през Март 2019.

Предимства Интерфейсът дефиниран от EFI спецификацията включва таблици с данни които съдържат платформена информация, услуги за стартиране и услуги в реално време, които са достъпни на зареждача на операционната система и на операционната система. UEFI фърмуера предоставя няколко технически предимства пред традиционната BIOS Система: Възможността да зарежда (boot) от по големи твърди дискове (над 2 TB) с GPT (GUID Partition Table) Независима архитектура от централния процесор. Независими драйвери от централния процесор. Гъвкава пред-операционно-системна среда, включваща възможност за мрежови дейности. Модулярен дизайн

Съвместимост Съвместимост на процесори До версия 2.8 се поддържат само процесори от тип „little-endian“. Съществуват процесорни връзки за Itanium, x86, x86-64, ARM (AArch32) и ARM64 (AArch64)

Стандартния PC BIOS е ограничен до 16-битов режим на процесора и 1 MB адресируема памет, поради това, че дизайнът му е базиран на IBM 5150 моделът, който използва 16-битов Intel 8088 процесор. В сравнение, процесорът създаден в UEFI среда може да бъде или 32 битов (x86-32, AArch32) или 64 битов (x86-64, Itanium, and AArch64). 64-битовата UEFI фърмуер имплементация поддържа дълъг режим (long mode), който позволява на приложения в пред-зареждащата изпълнима среда да използват 64-битово адресиране за да имат директен достъп до пълната памет на машината.

UEFI изисква фърмуерът и зареждача на операционната система да имат сходен размер. Например 64 битова UEFI фърмуер имплементация може единствено да зареди 64-битов зареждач за операционна система. След като системата премине от „Boot услуги“ към „Изпълняващи услуги“, работата се прехвърля върху ядрото на операционната система. В този момент, ядрото може да сменя процесорни режими при нужда, но това пречи на изпълняваните услуги. От версия 3.15, ядрото на Linux поддържа стартиране на 64 битови ядрото на 32-битова UEFI фърмуер имплементация, работеща върху x86-64 CPU с UEFI поддръжка от UEFI boot зареждач, според изискването. Превключващият UEFI протокол дублира кода на UEFI инициализацията между кернела и UEFI boot зареждача, оставяйки инициализирането да бъде извършено само от ядрото на Linux – UEFI boot stub.

Съвместимост на дискови устройства В допълнение на стандартното деление на PC дисковете, което използва master boot record (MBR) UEFI работи и с нов модел на делене наречен GUID Partition Table (GPT), който няма много от ограниченията на MBR. По конкретно, MBR ограничава размера и броя на делението на дискове (до 4 главни деления на диск и до 2TiB(2 × 240 байтове) за диск). По точно GPT позволява максимален размер на делене на диска от 8 ZiB (8 × 270 байта)

Linux Поддръжка за GPT в Linux се разрешава чрез включване на настройката CONFIG_EFI_PARTITION по време на конфигурация на кернела. Тази настройка позволява на Linux да разпознае и използва GPT дисковете след като системния фърмуер предаде контрол от системата на Linux.

За обратна съвместимост Linux може да използва GPT дискове в BIOS – базирани системи за съхранение на данни и boot-ване, тъй като и двете системи, GRUB 2 и Linux, разпознават GPT. Такава процедура обикновено се нарича BIOS-GPT. Когато GPT внедри защитния MBR, BIOS-базиран компютър може да се зареди от GPT диск, като използва GPT-съвместим boot зареждач, съхранен в кодовата част на фърмуера на MBR. GRUB конфигурацията изисква BIOS Boot дял, за да може GRUB да внедри вторичния си код, поради липса на следваща-MBR дупка в GPT разделен диск. Често с размер от 1 MiB, GUID-a(Globally Unique Identifier) на схемата на дяла в GPT е 21686148-6449-6E6F-744E-656564454649 и е използвана от GRUB само в BIOS-GPT настройки. От перспективата на GRUB, такъв дял не съществува в случай на MBR подялба. Този дял не е нужен, ако системата е UEFI – базирана, защото няма нужда от внедряване на вторичния код.

UEFI системите могат да използват GPT дискове и да се зареди направо от тях, което позволява на Linux да използва UEFI зареждащи методи. Зареждането на Linux от GPT дискове включва създаването на дял от EFI системата (EFI system partition – ESP), която съдържа приложения от типа на boot – зареждачи, ядра на операционни системи и софтуер за удобство. Такива настройки обикновено биват наричани UEFI-GPT, но ESP-то е препоръчително да бъде поне 512 MiB и форматирано с FAT32 файлова система за максимална съвместимост.

За обратна съвместимост повечето UEFI реализации също поддържат зареждане от MBR-разделени дискове, през "модул за поддръжка на съвместимостта" (Compatibility Support Module), която осигурява съвместимост със стария BIOS. В такъв случай, зареждането на Linux на UEFI системи е същото, както на системи базирани на стария BIOS.

Microsoft Windows 64-битовите версии на Microsoft Windows Vista и по-нови, 32-битовите версии на Windows 8 и по-нови и Itanium версиите на Windows XP и Server 2003 могат да се зареждат от дискове с дял по-по голям от 2 TB.

Особености Услуги EFI дефинира два вида услуги: зареждащи и услуги в реално време. Зареждащите услуги са достъпни само когато платформата принадлежи на фърмуера (преди да се получи ExitBootServices – команда) и включват текстови и графични конзоли на различни устройства, като и шини, блокови и файлови услуги. Услугите в реално време са достъпни и когато се изпълнява операционната система. Включени са услуги като дата, време и достъп до NVRAM.

В допълнение, "графичен изходящ протокол" (Graphics Output Protocol, GOP) предоставя ограничена поддръжка на услуги в реално време. Операционната система може да прави промени директно върху кадровия буфер (framebuffer) предоставен от GOP (графичен изходящ протокол) в реално време. Способността да сменя видео режими се губи след смяната на режима на услуги в реално време, докато графичния драйвер на операционната система не се зареди. Услуги за променливи UEFI променливите предоставят начин за запис на данни, в непроменливи данни, които са споделени между платформения фърмуер и операционните ситеми или UEFI приложения. Променливите именни пространства се идентифицират чрез GUID-ове и променливи които имат двойка от тип ключ/стойност. За пример, променливите могат да бъдат използвани за съхранение на съобщения за срив в NVRAM, след срив на операционната система и могат да се получат след презареждане на системата.

Времеви услуги UEFI предоставя услуги за време, които са независими от устройството. Услугите за време включват поддръжка за времевата зона, която позволява хардуерния часовник в реално време да бъде настроен на локално време или UTC. В Машини използващи PC-AT часовник за реално време, часовникът също трябва да бъде нагласен за съвместимост с локално време на BIOS-базиран Windows.

Приложения Независимо от зареждането на операционната система, UEFI има способността да зарежда самостоятелни UEFI приложения, които могат да бъдат разработени и инсталирани независимо от производителя на системата. UEFI приложенията пребивават като файлове на ESP и може да се стартират директно от стартиращия мениджър на фърмуера, или чрез други приложения UEFI. Един клас от UEFI приложенията са зареждащите операционната система, като rEFInd, Gummiboot и Windows Boot Manager; те стартират конкретна операционна система и евентуално предоставят потребителски интерфейс за избор на стариране друго приложение UEFI. Utilities, също като UEFI shell, представляват UEFI приложения.

Протоколи EFI дефинира протоколи като набор от софтуерни интерфейси, използвани за комуникация между два двоични модула. Всички EFI драйвъри трябва да предоставят услуги на другите чрез протоколи.

Драйвери за устройства В допълнение към стандартната специфична архитектура на драйвери за устройства, EFI спецификацията предоставя драйвер за устройство независимо от средата на процесора, наречена EFI байт код или EBC. Системен фърмуер се изисква от спецификацията на UEFI за извършване на интерпретации за всякакви EBC изображения, които се намират в или са заредени в средата. В този смисъл, EBC е аналогичен на Open Firmware, на хардуерно независим фърмуеър, използван в PowerPC базирани Apple Macintosh и Sun Microsystems SPARC компютри.

Някои архитектурно-специфични (не-EBC) EFI устройства могат да имат интерфейс за използване от операционната система. Това позволява на операционната система да разчита на EFI за основни графични и мрежови функции, докато специфични за операционната система драйвери са заредени.

Графични особености EFI спецификацията определя UGA (Универсален Графичен Адаптер) протокол като начин за подкрепа на независими от устройства графики. UEFI не включва UGA и го заменя с GOP (Графично Производствен Протокол), с цел премахване VGA хардуерни зависимости. Двете са подобни.

UEFI 2.1 определя „Човешка интерфейс инфраструктура“ (HII) за управление на потребителските въвеждания, локализирани низове, шрифтове и форми (във връзка с HTML). Това дава възможност за производители на оригинално оборудване (OEM) или независими доставчици на BIOS (IBVs) да проектират графични интерфейси за конфигурация на предварително зареждане; Самото UEFI не дефинира потребителски интерфейс.

Най-ранните UEFI фърмуер реализации са базирани на конзолна основа, но още преди 2007 година някои реализации включват графичен потребителски интерфейс. 

EFI Системен дял