Un peu plus sur EFI...
Comme l'Extensible Firmware Interface sera un acteur incontournable de nos prochains macs, nous avons décidé de vous en dire un peu plus sur celui-ci.
EFI a été créé pour répondre à un besoin d'Intel pour sa plateforme Itanium. Les BIOS actuels sont figés et ne répondent plus aux nouveaux besoins. D'autre part, ceux-ci sont en général payants et sous licence. Les dépendances entre les systèmes d'exploitation, le matériel et les BIOS sont trop fortes et ne permettent pas une migration matérielle rapide. On comprend donc que les BIOS sont un véritable frein à l'innovation et aux changements.
EFI est une couche supplémentaire ajoutée par dessus le BIOS ou le firmware du matériel. Il se présente sous forme de couche d'abstraction pour l'OS. Ce dernier n'est pas obligé de l'utiliser pour accéder au matériel mais peut directement faire appel au BIOS/firmware. Grâce à EFI, les BIOS peuvent être réduits au minimum. Sa conception est modulaire et extensible. Il est écrit en langage C. Il est donc facile à maintenir et les fabricants peuvent l'enrichir à volonté par des modules tout en respectant des spécifications claires disponibles sur le site d'Intel. Ses caractéristiques sont assez proches de ce qu'offre OpenFirmware, bien qu'il soit beaucoup plus complet. Il se présente d'ailleurs de la même manière : sous la forme d'un shell.
Pour booter Windows XP et antérieur sur plateforme IA32, un BIOS est nécessaire. Or il est probable qu'Apple n'ait pas considéré utile d'en fournir un compatible avec son matériel. Il faudra donc que Microsoft en distribue un. Celui-ci pourrait soit remplacer celui d'Apple (très peu probable) soit être directement exécuté par EFI.
Les fonctionnalités offertes par EFI sont nombreuses. Il y a tout d'abord l'initialisation des chipsets, des bus, ... qui est en général effectuée en début de séquence de boot. Comme OpenFirmware, EFI permet de localiser les bootloaders et de les exécuter en leur offrant des primitives. Mais il offre en plus des routines à l'OS pour accéder au matériel. Il peut même gérer le gestionnaire mémoire et le réseau.
Puisqu'EFI est une couche d'abstraction, les drivers au niveau de l'OS seront plus facilement écrits et en particulier pour nous sur Mac ! En effet, un driver devra être écrit au niveau d'EFI lui-même. Celui-ci pourra être utilisé aussi bien sur Linux que sur Mac ou Windows. Il offrira à l'OS et à ses drivers une interface qui permettra d'"utiliser" le matériel. C'est un véritable progrès pour les développeurs et ce sera un grand avantage pour nous, car une fois le matériel compatible EFI, le développement de drivers pour MacOSX devrait être rapide.
Comme OpenFirmware, il est possible d'accéder au réseau sans exécuter un OS. Il sera donc possible d'updater les différents éléments sans passer par un autre système. EFI répond en outre à un trou de sécurité présent lors du boot sur un disque réseau. Avec un BIOS, seule l'addresse MAC peut être contrôlée lors du boot, or celle-ci est facilement modifiable.
Les potentialités de ce firmware extensible permettent à Apple de faire bien plus que ce qui a pu être créé avec OpenFirmware. Il n'est donc pas surprenant que le mode target, le choix du disque de boot et les autres fonctions d'OpenFirmware aient pu être réimplantés.