Secure Boot, une fonctionnalité source de divergences
Basic Input Output System: le BIOS
Historique
Le terme de BIOS est l'acronyme de Basic Input Output System apparût pour la première fois dans les années 70. Celui-ci est utilisé par Gary Kidall afin de décrire le système chargé d'assurer l'interfaçage système/matériel, et tout particulièrement la séquence de boot du système d'exploitation CP/M développé par ses soins.
Concrètement, il s'agit du premier code lancé lors de la mise sous tension d'un PC. Il fournit une abstraction très primitive au matériel, est en charge de la vérification des différents composants de l'ordinateur sur lequel il s'exécute ainsi que de l'amorçage du système d'exploitation utilisé.
Indépendant du système d'exploitation utilisé, un tel système, implémenté par les constructeurs est néanmoins indispensable au fonctionnement des machines.
Stocké d'une part en ROM (mémoire morte non modifiable) et de l'autre en EEPROM (mémoire modifiable et programmable) il offre la possibilité aux utilisateurs avertis de repousser certaines limites fixées par les constructeurs (overclocking). Au-delà de l'aspect performance, le BIOS dispose d'une interface homme/machine minimaliste, permettant aux utilisateurs de configurer certaines fonctionnalités telles que l'ordre des périphériques d'amorçage du système, ou encore la mise en place d'un mot de passe gérant son démarrage.
Développé en assembleur, le BIOS se veut vieillissant. Depuis 2010, il est amené progressivement à être remplacé par l'UEFI.
Séquence de boot
La séquence de boot (ou d'amorçage) du BIOS est stratégique pour le système. En effet c'est durant cette phase que les différents matériels composant l'ordinateur sont vérifiés et initialisés afin que le système d'exploitation puisse être lancé.
Cette séquence est composée d'étapes successives, indissociable l'une de l'autre, "garante" de la stabilité des différents composants communiquant avec la carte mère.
Ces étapes ou routines correspondent au Power-on self-test (POST) et peuvent être décrite de la façon suivante:

Les limites du système
Le BIOS fournit une abstraction primitive au matériel, cependant le langage dans lequel il est codé à tendance à en limité l'accès.
De plus, avec l'évolution matériel et surtout celle des technologies et tailles des disques durs sont apparues certaines limites.
Bien qu'il soit possible de démarrer à partir du réseau, d'un CD ou encore à partir d'une clé USB, l'utilisation du mode 16 bits du BIOS ne permet pas d'adresser toute la mémoire. Aujourd'hui, il n'est cependant pas capable de gérer des partitions dont la taille est supérieure à 2 To. Cela se justifie par la structure du Master Boot Record (MBR) implémenté dans les disques durs et sur lequel s'appuie le BIOS. En effet, cette zone du disque contient la liste des partitions ainsi qu'un nombre codé sur 32 bits correspondant au nombre de secteurs de 512 octets d'une partition. On peut donc, au plus disposer d'une partition de 232 * 512 soit 2199 Go.
Cette limite nécessite donc que le système du MBR soit revu, d'où l'apparition d'un nouveau schéma de partitionnement appelé GUID Partition Table (GPT). GPT a été moteur sur la fédération de projet de plus grande envergure chez INTEL donnant naissance à un "nouveau" BIOS: l'Extensible Firmware Interface (EFI). En juillet 2005, la version 1.10 de l'EFI dédiée aux microprocesseurs d'architecture INTEL marque un tournant puisque désormais on ne parle plus d'EFI mais d'UEFI (Unified Extensible Firmware Interface) qui correspond à sa version multiplateforme.
Parallèlement à cette restriction concernant la taille des partitions des disques, il n'existe pas de réel système garantissant l'intégrité du matériel lors de la phase de boot précédant le lancement du système d'exploitation. Bien sûr certains BIOS bénéficient d'une option permettant d'activer un "antivirus"; cependant, ce dernier est assez basique et ne peut être mis à jour que par une mise à jour du BIOS lui même.
Cette notion d'intégrité est prévue par l'UEFI au travers d'un service appelé Secure Boot.