EFI et PC EFI

( 5 Votes )

 

L'EFI en général : Extensible Firmware Interface


La définition de Wikipedia est tellement claire qu'il serait vain de vouloir la refaire :

« L' Extensible Firmware Interface (EFI), aujourd'hui remplacé par l'UEFI (Unified EFI) est un logiciel intermédiaire entre le micro logiciel (firmware) et le système d'exploitation (OS) d'un ordinateur, et est néanmoins un véritable petit système d'exploitation. Cette interface est appelée à être le successeur du BIOSL'EFI offre de multiples avantages par rapport au BIOS, il est ainsi capable de prendre en charge beaucoup de fonctionnalités réseaux intégrées en standard ; il peut aussi proposer une véritable interface graphique haute résolution et offre une gestion intégrée des installations multiples de systèmes d'exploitation. »

Lire la suite ici



L'EFI selon Apple


L'EFI d'Apple est exactement celui décrit plus haut, à cette différence qu'il est conçu de sorte à supporter Windows (via BootCamp), à prendre les commandes de boot par simple enfoncement d'une touche (exemple : T fera booter la machine en mode cible Firewire, C fera booter sur le CD/DVD etc.). De plus son intérêt par rapport à un BIOS classique est l'intercommunication entre le système et l'EFI. Le système peut ainsi commander à l'EFI une action a exécuter au prochain démarrage, comme le démarrage sur une partition différente (via le menu Préférences Système > Démarrage), pour autant que celle-ci soit bootable.

L'EFI d'Apple est ainsi le précurseur d'un nouvelle génération de BIOS qui verra très prochainement le jour sur les PC (UEFI), en somme, comme souvent Cupertino a une longueur d'avance.

Le PC EFI ou l'EFI émulée


PC EFI, dans toutes ses versions (pc_efi ; chameleon, EFI-X) n'est pas l'équivalent d'un BIOS. C'est simplement une émulation logicielle de l'EFI qui permet le chargement de certaines extensions de mac OSX sans modification de celles-ci (Vanilla) mais surtout du kernel (noyau du système) original. Nous devons sa création au développeur David Elliot.
Le pcEFI de Netkas fut le premier pas vers un système entièrement vanilla et permit les mise à jours du kernel sans problème. Il supporte les processeurs Intel comme AMD (ces derniers nécessitent toujours un kernel patché).

Voici un schéma résumant la procédure de boot sur un système osx86 :



PC EFI permet donc :

De Booter un noyeau d'origine (Vanilla Kernel)
De faire reconnaitre via GFX Strings une partie de son matériel (cf GFX Strings)
D'être installé sur une Table de partion MBR comme GUID.

PC EFI existe désormais en version 9, il est basé sur le code source de Chameleon.
Selon le blog de Netkas cette version y apporte les supports suivants :

dsdt overwrite (patch par mackerintel : nécessite DSTD.aml dans /)
Sortie d'hibernation (aka deep sleep)
Chargement du 64-bit kernel (-x64 boot option / SnowLeopard)
Le dossier /Extra (où placer ses Extensions modifiés) par DFE
Extensions.mkext générés par l'utilisateur à la places des kexts modifiés.
Emplacement Extensions.mkext pour SnowLeopard



Les limites de PC EFI


PC EFI est une émulation. Aussi, il ne lui est possible de communiquer que vers l'avant dans la séquence de boot. Il ne peut donc pas contrôler le BIOS.
Ceci constitue sa majeure limitation et empêche :

  • Le reboot direct sur une autre partition via "Préférences Système > Démarrage"
  • Le boot en mode Target (via Firewire)
  • Le boot du système en réseau (et install réseau via l'utilitaire d'installation à distance).
  • Toute modification de la pomme de démarrage
  • BootCamp (qui franchement est inutile quand on possède un PC...).
  • Le son d'information de bonne santé du système ("tung").

A part ça, il ne tient qu'aux développeurs d'améliorer l'EFi dans d'autres domaines :

  • AppleTalk
  • Vanilla kernel sur AMD
  • Support étendu du matériel via GFX-Strings
  • Automatisation de la mise à jour de PC EFI
et que sais-je d'autre encore...