Kernelthread heeft een informatief artikel geplaatst waarin het verschil tussen en de functies van firmware, BIOS en EFI beschreven zijn. Firmware kan gezien worden als een stukje software dat permanent in een ROM-geheugen in een stuk hardware aanwezig is. Een bijzonder stuk firmware is het BIOS dat we op moederborden tegenkomen. Het BIOS is dus een firmware, maar een firmware is bij lange na geen BIOS. BIOS staat voor Basic Input Output System en dateert nog van de tijd van het CP/M-besturingssysteem uit de jaren zeventig. Naast een stukje lowlevel-software om bepaalde functies uit te voeren, bevat het BIOS ook een stuk highlevel software voor veelgebruikte functies, waaronder het benaderen van een harde schijf, de bekende software interrupt INT13. Vanwege het succes van Microsoft's DOS dat veel BIOS-functies gebruikte, is de basis van elk BIOS op x86-moederborden tot op dit moment gelijk gebleven, met alle nadelen van dien.
Met de komst van de Itanium-processor zag Intel de kans om de huidige opbouw van het BIOS overboord te gooien en een nieuwe standaard voor firmwares op Itanium-moederborden te bedenken die bestaat uit verschillende delen: PAL, SAL en EFI. PAL staat voor Processor Abstraction Layer en zorgt ervoor dat bepaalde functies van verschillende processors op dezelfde manier worden gepresenteerd richting SAL en het besturingssysteem. SAL staat voor System Abstraction Layer en doet hetzelfde voor het platform. In tegenstelling tot PAL, maakt SAL geen deel uit van de IA-64-architectuur. EFI staat voor Extensible Firmware Interface en is een geavanceerde versie van het huidige BIOS. Het is de bedoeling dat EFI in de toekomst ook voor IA-32 moederborden wordt gebruikt:
The Extensible Firmware Interface (EFI) can be traced back to the "Intel Boot Initiative" (IBI) program (1998, but see Innovate[2] later in this document)). The EFI specification, developed and maintained by a consortium of companies (including Intel and Microsoft), defines a set of APIs and data structures to be exported by a system's firmware, and to be used by a variety of clients, such as:In a representative EFI system, a thin Pre-EFI Initialization Layer (PEI) might do most of the POST-related work that is traditionally done by the BIOS POST. This includes things like chipset initialization, memory initialization, bus enumeration, etc. EFI prepares a Driver Execution Environment (DXE) to provide generic platform functions that EFI drivers may use. The drivers themselves provide specific platform capabilities and customizations.
- EFI device drivers
- EFI diagnostics and system utilities
- EFI shell
- Operating system loaders
- Operating systems