En 2001, Intel a en effet lancé une nouvelle architecture de processeur, l’Itanium (IA-64). Destiné dans un premier temps uniquement aux serveurs, il devait à terme remplacer petit à petit les processeurs x86 dans les PC de monsieur tout le monde.
Pour accompagner le lancement de l’Itanium, Intel a développé une nouvelle génération de firmware, baptisée EFI (pour Extensible Firmware Interface). Bien plus évolué que le BIOS, conçu 20 ans plus tôt, et développé en langage C, pour permettre une implémentation plus facile de fonctionnalités avancées (les BIOS étaient pour la plupart codés directement en assembleur, le langage le plus proche des instructions CPU), l’EFI fait office de véritable mini-système d’exploitation embarqué dans la ROM de la carte mère. Outre les fonctions basiques d’initialisation du matériel et de chargement du système d’exploitation, la spécification EFI offre ainsi la possibilité de réaliser des applications EFI, que le firmware pourra aller charger à partir de différents supports de stockage, à la demande de l’utilisateur et via un interpréteur de commandes. On trouve par exemple sous forme d’applications EFI des gestionnaires d’amorçage (pour permettre de choisir entre plusieurs systèmes d’exploitation installés sur la machine) ou encore des outils de gestion des disques durs.
Intel ayant finalement renoncé à décliner l’Itanium en version grand public, il s’est associé avec d’autres constructeurs (et en particulier, AMD et les fabricants de BIOS) pour créer l’UEFI Forum, un groupe de travail en charge de la définition d’une nouvelle spécification Unified EFI. Cette dernière serait cette fois compatible avec l'ensemble des processeurs x86 32 et 64 bits (puis plus tard, avec les processeurs ARM). Arrivées en 2006, les premières spécifications UEFI ont toutefois peiné à séduire les constructeurs de PC, et seul Apple l’a adopté rapidement, lorsque les Mac sont passés à des CPU Intel. En effet, l’intérêt de l’UEFI à ses débuts était faible, pour ne pas dire inexistant. Les systèmes d’exploitation pour PC ne supportant pas nativement l’UEFI, il fallait émuler un BIOS via une application UEFI pour pouvoir installer un système PC. un comble ! Et Windows n’a par exemple supporté nativement l’UEFI qu’à partir du Service Pack 1 de Vista en 64 bits, et seulement à partir de Windows 8 en 32 bits. Parmi les premiers ordinateurs UEFI, certains ne fonctionnaient d’ailleurs qu’avec cette couche d’émulation, non désactivable par l’utilisateur.
À partir de la fin des années 2000, les UEFI ont tout de même commencé à se généraliser, notamment car on approchait dangereusement d’une limitation des BIOS : un BIOS ne peut pas gérer correctement un disque dur de grande capacité. Pour être utilisé par un BIOS, un disque dur doit être au format MBR (Master Boot Record). Dans ce format, le premier secteur (bloc de 512 octets) du disque contient le code de démarrage du système d’exploitation, un identifiant MBR et une table de partitions pouvant lister quatre partitions, définies par leur adresse de début et leur adresse de fin. Ces adresses sont codées sur 32 bits, ce qui limite le nombre de secteurs adressables à 2^32, soit une capacité de 2 Tio. Les firmware UEFI passent outre cette limitation grâce à un nouveau format de disque, baptisé GPT (GUID Partition Table), qui permet de gérer jusqu’à 128 partitions sur un disque d’une capacité maximale de 2^64 secteurs (soit 8 milliards de Tio avec secteurs de 512 octets… il y a de quoi voir venir !).
En plus du support de disques de grandes capacités, l’UEFI apporte de nombreuses autres améliorations, dont des routines pour piloter directement un affichage graphique ou une interface réseau et une « machine virtuelle » permettant d’intégrer dans l’UEFI des pilotes de périphériques compilés dans un format indépendant du processeur (EBC, EFI Byte Code). Ainsi, un même driver peut fonctionner sur une machine x86 ou sur une machine IA-64 ou ARM, tandis qu’il est possible de réaliser un système d’exploitation avec interface graphique et accès au réseau pouvant fonctionner sur n’importe quelle machine UEFI sans le moindre driver spécifique, ce qui n’était pas possible avec un BIOS, et ce d’autant plus que les appels BIOS sont lents et s’exécutent en mode 16 bits (raison pour laquelle tous les systèmes ont cessé depuis un moment de passer par les appels BIOS pour l’accès au disque dur, qui bascule sur un driver spécifique lors des premières étapes du démarrage).
Pour l’utilisateur lambda, ces nouvelles possibilités permises par l’UEFI se traduisent par des utilitaires de configuration aux graphismes beaucoup plus évolués, souvent utilisables à la souris et disposant de fonctionnalités avancées d’aide à la configuration, même si globalement les paramètres modifiables sont à peu de choses près les mêmes qu’avec un BIOS. L’UEFI a également mené à une quasi généralisation des outils embarqués pour la mise à jour du firmware, qui évitent ainsi de devoir créer un support de stockage bootable pour procéder aux mises à jour.
C’est aussi la spécification UEFI qui définit le très décrié Secure Boot, une procédure permettant d’empêcher une machine de démarrer un système d’exploitation qui n’a pas été signé avec la clé contenue dans le firmware. Le Secure Boot est un gros pas en avant pour la sécurité, puisqu’il peut empêcher l’exécution de malwares s’intégrant à un très bas niveau dans le système, mais il lui est reproché de rendre plus compliquée l’utilisation de systèmes d’exploitation alternatif, en particulier lorsqu’il n’est pas désactivable par l’utilisateur.
Désormais présent sur quasiment tous les ordinateurs neufs, l’UEFI a mis un terme à 30 ans de règne du BIOS, éliminant une bonne fois pour toute cet élément archaïque, même si en pratique, cette évolution n’est pas toujours flagrante pour l’utilisateur, par exemple parce que certains firmware UEFI ont conservé un utilitaire de configuration blanc sur bleu, dans le plus pur style des premiers BIOS. Il est difficile de prédire combien de temps l’UEFI sera la norme, mais on peut s’attendre à ce qu’il soit là pour un bon moment : si le bon vieux BIOS, propriétaire et pas du tout pensé pour durer a tenu 30 ans, l’UEFI, standard ouvert conçu pour lever un maximum de limitation devrait pouvoir tenir aussi longtemps. La seule alternative crédible pour l’instant est le projet Coreboot, un firmware au code source libre promu par la Free Software Foundation et notamment utilisé par Google dans ses Chromebooks. Mais sans le soutien de Microsoft, il a peu de chance de prendre le pas sur l’UEFI.