L’UEFI : futur succès ou flop ?
Sommaire
- 1. Introduction
- 2. Du BIOS à UEFI
- 3. Structure de l’UEFI
- 4. Développer une image UEFI
L’UEFI a fait la une des journaux récemment, à la suite des déclarations de Mark Doran et Brian Richardson qui ont affirmé à la BBC que les cartes mères UEFI commenceraient à dominer le marché en 2011.
Nous vous avons rapporté ces propos (cf. « L'UEFI aurait déjà (presque) remplacé le BIOS ») et nous sommes ensuite demandé, avec la rigueur et le recul qui s’imposaient, dans quel univers parallèle ces deux individus vivaient. À part pour les machines en provenance d’Apple, l’UEFI est quasiment absent des PC et ceux qui l’utilisent ont un système parfois bancal, souvent affligé de bugs et limitations.
La naissance de l'UEFI
Petit retour en arrière. Le BIOS nous vient d’IBM et des années 1980. Selon les responsables de l’UEFI, Big Blue ne pensait pas que son Basic Input Output System dépasserait les 250 000 machines. C’est clairement chose faite, mais 30 ans après ses limites technologiques l’ont finalement rattrapé.
La réponse à l’anachronisme du BIOS commence dans les laboratoires d’Intel qui se retrouva face à une impasse lors de la conception de son architecture Itanium (IA64). Le fondeur a renoncé à toute rétrocompatibilité avec les architectures 32 bits, ce qui signifiait que le BIOS, avec son bloc de 512 octets destiné à l’amorçage, était tout simplement trop étriqué et incompatible avec la nouvelle puce.
Intel a donc apporté sa réponse en publiant l’Intel Boot Initiative, installé sur les machines HP-Itanium dans le milieu des années 90. Il a ensuite renommé son projet EFI (Extensible Firmware Interface) en 2000 avec la sortie de l’EFI 1.02 qui fut retiré quasi immédiatement pour des raisons juridiques. Deux ans plus tard, la firme revint sur le devant de la scène avec la version 1.10, compatible avec les processeurs x86 32 bits. C’est le premier pas de l’EFI vers une autre architecture que l’IA64.
Le fondeur se retrouve néanmoins devant un problème : il n’est pas le seul au monde à fabriquer des processeurs et cartes mères et les limitations qu’il a rencontré avec les BIOS existent aussi pour ses concurrents. Il court donc le grand risque de voir fleurir des solutions annexes à son EFI et incompatibles avec son système.
C’est pour éviter le chaos qu’en 2005, il a décidé d’ouvrir son projet en créant le Forum UEFI (Unified Extensible Firmware Interface), un consortium en charge de définir les standards, développer les mises à jour et promouvoir son installation. Regroupant AMD, American Megatrends (AMI), Apple, Dell, HP, IBM, Insyde Software, Intel, Lenovo, Microsoft, et Phoenix Technologies, ce consortium a marqué les premiers pas de l’UEFI 1.0 qui était en fait la version 1.10 de l’EFI. Cette étape marque la fin du monopole d’Intel sur son projet. Il savait que la démocratisation de sa technologie devait passer par une organisation regroupant aussi ses concurrents.
Depuis 2008, l’UEFI 2.0 a apporté la gestion des architectures x86-64 AMD et Intel qui ont la grande particularité d’être rétrocompatible x86-32 bits contrairement à l’IA64. On notera aussi qu’ARM a rejoint les rangs de l’UEFI. Nous en sommes aujourd’hui à la version 2.3 qui a été approuvée en mai 2009.
L'échec
Or, depuis 2005, force est de constater que la révolution UEFI tant annoncée n’a pas eu lieu et nous sommes en droit de nous demander pourquoi. À vrai dire, cette interface est tellement absente qu’elle a mérité d’être en haut de notre classement des flops de 2009. Les technologies utilisées par l’UEFI sont-elles mauvaises ? Y a-t-il des problèmes inhérents qui empêchent les fabricants de cartes mères de faire le pas ? Pourquoi le BIOS, si souvent décrié, reste-t-il le maître incontesté du marché ? Autant de questions que nous allons tenter d’aborder afin de mieux saisir cette situation complexe.
Avant de poursuivre, nous tenons néanmoins à préciser qu’au regard de la nature de cet article, nous emploierons simultanément les termes EFI et UEFI pour désigner l’interface actuelle définie par le forum, sans distinction entre les diverses étapes historiques que ces appellations représentent.

En fait, le problème n'est pas l'UEFI en lui même mais plutôt les développeurs qui glandent rien et qui ne développent donc rien permettant d'exploiter l'UEFI plus qu'on exploite le BIOS ?!?
>>>Le problème est ailleurs et réside dans le fait qu’aujourd’hui, il n’apporte pas suffisamment de fonctionnalités pour se distinguer du BIOS classique.
Mais nom d'un chien on ne veut PAS de fonctionnalités supplémentaires ! Un bootloader doit juste lancer le système d'exploitation et c'est tout. Pas besoin de bourrer le truc de fonctions en plus. C'est justement le sens de la critique de Linus. Keep it simple !
Le bios est obsolète et limité, l'UEFI est une évolution et nécessité que les gens et développeurs vont devoir accepter.
C'est vrai que plus simple il est/sera mieux ce sera. Toutes fois les fonction d'accès au "BIOS" des cartes RAID et consorts (exemple LAMES:IBM) sont vraiment très pratique. Pas de reboot a faire pour passer sur toutes les cartes pour le configurer. C'est un vrai gains de temps. Après UEFI coté "professionnel" est sur les rails. Coté grand publique, je pense que c'est au constructeur de faire ce qu'il faut point bar.
Je rajouterais que vous n'avez pas compris à quoi sert un UEFI Extended Firmware interface. Interface Micro-code étendu, ne veut pas dire faire tous et n'importe quoi (Genre chargé un OS pour surfer...)! L'argument du changement est inutile une fois configurer on y touche plus, a part quelques "geek" du tuning et de l'overclock. L'interface est a l’appréciation de chacun et on s'adapte en général. Mes récente expérience dans le monde pro sur EFI (HP/IBM) Montre tous le puissant de ce concept. Le problème ici ce ne sont pas les clients mais les constructeur grand public qui ne veullent pas investir sur le sujet. Le BIOS de 30ans fonctionne toujours ? Oui, ba pourquoi payer pour faire un produit mieux ? Il feront toujours plus de marge.
C'est sur, quand on voit que Linux peut se charger comme un grand sans BIOS ni EFI (je pense à Coreboot)...
Bonjour,
Je peux me tromper, mais ne serait-ce pas du point de vue des constructeur et de la modification des bios pour en limiter les options pour les utilisateurs lamda sur les machines du commerce.
Du point de vue de l'UEFI, c'est peut être plus compliqué de le faire pour les PC grand public.
Au final, même si UEFI sera adopté, on continuera de l'appeler BIOS car celà est dans les moeurs depuis trop d'années...
Un peu comme on dit MSN alors qu'on utilise Windows Live Messenger... et MSN à l'origine signigie uniquement Microsoft Network...
Quand on dit "les gens" vont l'adopter, j'imagine que l'on pense aux constructeurs de matériel. Car à part quelques Geeks, cela n'intéresse personne. Pour ma part, je dirai simplement que l'UEFI est trop complexe et ne devrait pas apporter de fonctionnalités du tout, si ce n'est donner le relai le plus rapidement possible à l'OS et se faire oublier définitivement.
il y a pas mal de choses que je n'ai pas comprises dans l'article (trop technique pour moi), mais un truc que je ne vois pas : qu'est ce qui limite le BIOS à ce qu'il est maintenant ?
je résonne sur un exemple : avant il y avait de l'AGP pour brancher des cartes filles, ensuite il y a eu le PCI-E : les BIOS ont été rendu compatible. pourquoi ne peut on faire pareil pour passer du MBR au GPT ?
vous dites que le bios est limité "au 16 bits et à 1 Mo d’espace adressable" (d'où la limite au MBR ?), pourquoi ca ? pour moi le bios n'est qu'un pont réalisé par un constructeur pour rendre utilisable son materiel par un OS standard, qu'est ce qui empêche un constructeur de créer un pont sans ces limites ?
Vous dites en plus que l'EFI a besoin d'un bios et qu'il est modulaire, donc l'EFI c'est juste un petit OS ? à part pour l'histoire de booter sur plus de 2 tio (ce qui n'est pas près de m'arriver), ca me sert à quoi un EFI à moi : particulier surfeur, joueur et un peu overclockeur ?
Qu'en est-il de la gestion des DRM intégrée à l'EFI ? J'avais lu quelque part que de nombreuses entreprises (Microsoft, Intel, IBM et autres) vont inclure un module de "Trusted Computing" pour contrôler les accès en écriture et bloquer les "attaques" (comprenez: vous essayant de copier votre musique etc). Cela pourrait aussi interdire, par exemple, d'installer Linux.
Je ne sais pas vraiment de quoi je parle, mais je n'aime pas trop les DRM. Donc si quelqu'un peut m'éclairer...
Quelques liens :
http://www.gnu.org/philosophy/can-you-trust.html
http://www.cl.cam.ac.uk/~rja14/tcpa-faq.html
http://www.coreboot.org/Welcome_to_coreboot
@you62 : On parle de limite technique et mathématique. Mais en gros cela indique que tu ne verrais pas tes correctement 8Go de RAM sur ton nouveau PC par exemple.

L'architecture du BIOS a 30 Ans. Les normes on évoluait. Il faut parfois changer, plus que modifier pour adapter à ces nouvelles normes.
Et l'EFI n'est pas un BIOS (si j'ai bien lu) c'est un module émulant le BIOS qui à été rajouté pour être rétro compatible.
L'EFI ne te servira qu'a démarrer ton PC (comme un BIOS) Par contre il pourrais permettre d'accélérer le démarrage de Windows (via des modules créer pour).
On peut même imaginer que des modules spéciales overclokeur pourront êtres ajoutés pour te simplifier l'overclock avec des bouton et des schéma pour avoir un visuelle des modifications en directe sur le matériel.
Et pour ta gouverne le 2Tio n'est pas si loin chez les particuliers que tu imagines.
@blackdragon5040 : Pour les DRM, je n'ai pas d'info. Par contre se serait pour tous constructeurs stupide de ce fermer au système Linux. Donc pas d'inquiétude la dessus. Tous les grands constructeurs travaillant avec un ou deux Distribution Linux.
Le terme "Trusted Computing" pour IBM signifie surtout la protection des données sur ton disques dur. Afin d'éviter un corruption de fichiers important (winnt.exe par exemple) par un virus ou autres. Ce mécanisme te protège il ne te "flic" pas
En fait, le problème n'est pas l'UEFI en lui même mais plutôt les développeurs qui glandent rien et qui ne développent donc rien permettant d'exploiter l'UEFI plus qu'on exploite le BIOS ?!?
Bah vas y fais toi plaisir on te regarde
Les développeurs ont à mon avis d'autres priorités dans la vie
Mon exclamation était aussi interrogative, faut lire (y compris la ponctuation).
depuis le temps que j'en entend parler, je n'en ai jamais vu en vrai ... ça commence mal
J'en ai marre, dans tous les articles parlant de l'UEFI disant, à juste titre, que le principal intérêt de cette norme est le GPT on oublie quand même un point extrêmement important :
LE BIOS EST COMPATIBLE GPT !!!!!!!!
J'en ai marre, dans tous les articles parlant de l'UEFI disant, à juste titre, que le principal intérêt de cette norme est le GPT on oublie quand même un point extrêmement important :
LE BIOS EST COMPATIBLE GPT !!!!!!!!
T'aurais pu te retenir !!
Mon exclamation était aussi interrogative, faut lire (y compris la ponctuation).
Au temps pour moi c'est facile de mettre un ? et un !
Squallmat -> c'est vrai, mais c'est trop compliqué. Il n'y a aucune version de Windows qui boot sur une partition GPT avec un BIOS. L'EFI est obligatoire. Après, c'est différent pour Linux et FreeBSD, mais pour Mac OS X, il faut un bootloader hackintosh, donc au finale, j'ai pris un racourci... si ca te tiens à coeur, je peux le rajouter
"Le premier est plus facilement portable, car écrit en C, contrairement au dernier qui repose toujours sur l'assembleur."
Euh... Le langage C est compilé en assembleur... Personne ne fait d'assembleur directement.
Bien sûr qu'on peut faire de l'assembleur directement. Avant que le premier compilateur C ait été écrit (en assembleur), c'était le seul moyen.
L'inconvénient, c'est que l'assembleur est lié à un certain type de processeur (x86, amd64, arm, itanium, ...). La compilation du C vers le bon assembleur est gérée par le compilateur.
Bien sûr qu'on peut faire de l'assembleur directement. Avant que le premier compilateur C ait été écrit (en assembleur), c'était le seul moyen.L'inconvénient, c'est que l'assembleur est lié à un certain type de processeur (x86, amd64, arm, itanium, ...). La compilation du C vers le bon assembleur est gérée par le compilateur.
Précision : d'autres langages sont venus avant le C, qui n'est arrivé qu'en 1972.
"Le premier est plus facilement portable, car écrit en C, contrairement au dernier qui repose toujours sur l'assembleur."
Euh... Le langage C est compilé en assembleur... Personne ne fait d'assembleur directement.
Pardon? Et les gens qui bossent dans l'embarqué, le temps réel, tu penses qu'ils développent en quoi? en java? Et les microcontrôleurs, ça se programme en Pascal peut-être?
bon, pour revenir sur l'EFI: ce qui me dérange bien plus que toutes les considérations "moderne/pas moderne" du BIOS (qui est effectivement une antiquité), c'est avant tout de se dire qu'un bazar rendu dix fois trop complexe pour l'usage prévu squattera à terme nos machines, qu'il sera potentiellement la cible de malveillants, et qu'au surplus on aura fait tout un foin démesuré pour un truc qui ne fera que montrer un écran de boot, puis hop se fera de toute façon tout petit dans son coin à l'usage.
Pourquoi je parle de malveillants? parce que j'applique l'adage suivant:
"Multipliez les portes d'accès, vous multiplierez le nombre de tentatives pour les ouvrir à tort et à travers". Un EFI trop riche, ce sont des failles potentielles, donc des machines pouvant devenir des machines fantômes pour des réseaux de pirates... et ce au sein même de la machine!
A quand les AVG intégrés à l'EFI?
Pas rassurant je trouve!
Les micro-controleurs sont programmés en C. C'est plus lisible que de l'assembleur, et le code produit est le même.
Ainsi, une boucle en C prend la forme:
for (i=0;i
Le message ne s'est pas affiché. Sans doute une protection.
Un peu la flemme de tout retaper. Qu'importe. Un de mes amis, concepteur pro sur PICs programme bel et bien en C parce que ca reste la meilleure méthode pour... "faire de l'assembleur".
magellan: dans ce cas c'est pire, le bios n'as aucune protection, ont peu accédé directement à la mémoire, cramé des cartes, bios -> efi c'est comme dos -> windows 7, en dos pas de gestion des droits, aucun controle, accés aux matos à l'arache.
Presonnelement je suis avec un bios, booter via grub sur une partition GPT en raid 6...
Avantage: boot rapide si correctement coder (comparaison du début du lancement du noyau sur un bios avec linux et un efi avec mac, sur un mac le noyau est presque directement lancer, pas sur un pac)
Le code assembleur devrai être théoriquement être le même qu'il soit écrit à la main ou en C, hors ce n'est pas le cas, donc vaut mieux à mon avis écrire en C et optimisé les compilateurs que perdre sont temps en code assembleur.
Mais actuellement il compilateur ne sont pas si mal, le noyau linux par exemple peu tenir en mois d'un mega, avec des sources énorme, pour dire que c'est comme si il été écrit en assembleur.
L'EFI résout 2 point pour moi: Il est enfin sécurisé contrairement au bios (ont peu pas écrire n'importe quoi dans la rom des cartes réseaux pour les cramés), il ajoute du modernisme dans le codage, lève les limitations de 1980.
Mais c'est comme tout (je pense à ie), si tout le monde fait du bon travail tout sera rapide et sécurisé (http, ie vs firefox vs chrome). Une norme reste une norme, l'implémentation est fait par le logiciel d'une maniére + ou - professionnel.