Basic Input Output System

Un article de Wikipédia, l'encyclopédie libre.

Pour l’article homonyme?, voir BIOS

Tous les ordinateurs, y compris ceux qui existaient bien avant l'invention du PC (par exemple IBM 1130 et 1800), possèdaient par définition un BIOS. Toutefois, depuis 1981, ce mot désigne plus spécifiquement celui de l'IBM PC. Dans ce contexte :

Au sens strict, le Basic Input Output System ou BIOS (système élémentaire d'entrée/sortie) est un ensemble de fonctions, contenu dans la mémoire morte (ROM) de la carte mère servant à effectuer des opérations élémentaires (écrire un caractère à l'écran, lire un secteur sur un disque, etc...). Le terme est souvent utilisé pour décrire l'ensemble du "firmware" ou "microcode" (logiciel embarqué) d'une carte mère. Le BIOS est presque toujours développé par le fabricant de cette carte mère car il contient les routines élémentaires pour effectuer les opérations simples d'entrée/sorties évoquées ci-dessus.

Depuis 1999 la Fondation pour le logiciel libre soutient LinuxBIOS un BIOS sous licence Licence publique générale GNU car on peut maintenant flasher le bios de sa carte mère pour le remplacer par un autre. L'avantage de ce système (machine fonctionnant avec un BIOS) est de ne pas devoir développer un système d'exploitation spécifique pour chaque carte mère.

Peu importe comment le fabricant a développé cette carte mère (quels composants il a choisi, peu importe comment fonctionne le "hardware" de cette carte mère), en utilisant les mêmes fonctions du BIOS sur deux cartes mères différentes, on obtiendra le même résultat. Ce sont ces fonctions que les systèmes d'exploitation utilisent pour faire fonctionner les applications. Le BIOS comprend également le POST (Power-On Self-Test), exécuté au démarrage de l'ordinateur, qui déclare les disques, configure les composants et recherche un système d'exploitation avant de le lancer. Sa tâche principale est de fournir un support de bas niveau pour communiquer avec les périphériques. Habituellement ceci inclut le support du clavier au moins dans un mode (pas forcément l'USB) et d'un mode d'affichage simplifié. Le BIOS est écrit en code machine et a généralement été développé en langage assembleur.

Les deux BIOS historiques du PowerPC se sont nommés successivement PREP et CHRP.

Sommaire

[modifier] Boot BIOS

Depuis l'introduction des PC compatibles IBM en août 1981, le BIOS émet les premières commandes au système durant la phase de démarrage, pour indiquer par exemple sur quel disque et à quel endroit de celui-ci trouver le chargeur d'amorçage (ou Boot loader) du système d'exploitation, en général Windows, Linux, Mac OS ou autre. Dans le cas de Windows, il s'agit du NTLDR, dans le cas d'un système en multiboot (possibilité de démarrer plusieurs systèmes d’exploitation sur un même ordinateur), Lilo dans les cas simples (Windows et Linux), GRUB dans les cas plus sophistiqués (tous systèmes supportés).

Le BIOS contient également des outils de diagnostic pour vérifier sommairement l'intégrité des composants critiques comme la mémoire, le clavier, le disque dur, les ports d'entrée/sortie, etc.

Certains paramètres du BIOS peuvent être réglés par l'utilisateur (ordre des périphériques à scruter pour détecter une zone de boot, type et fréquence du processeur, etc.). L'ensemble de ces paramètres est stocké de manière permanente grâce à une mémoire de taille réduite (quelques centaines d'octets) à faible consommation (type CMOS) alimentée par une pile (généralement au lithium) présente sur la carte mère. Cette mémoire est communément appelée, par abus, "CMOS".

Le code source des premiers PC et AT BIOS était inclus avec le Manuel des Références Techniques IBM. Aujourd'hui, la plupart des cartes mères sont livrées sans le code source du BIOS. L'utilisateur doit télécharger des mises à jour fournies par le constructeur. Ces mises à jour sont parfois nécessaires à la prise en charge de certains périphériques.

Historiquement, en plus des fonctions de diagnostic et de configuration, le BIOS fournit un ensemble de services permettant de faire le plus abstraction possible de la couche matérielle. Ces services sont utilisés par le système d'exploitation et sont accessibles via certaines zones mémoires (40:00 par exemple) ou certaines interruptions logicielles (10h, 11h, 12h et 13h notamment). Cependant, dans la pratique, les systèmes d'exploitation récents utilisent peu ces services. Soit parce qu'ils sont parfois bogués, soit, parce que les systèmes récents s'exécutent en Mode protégé, rendant difficile l'accès aux services du BIOS, proposés généralement uniquement pour le Mode réel.

[modifier] BIOS en tant que firmware

Le BIOS est parfois appelé firmware, car il est proche du hardware. Avant les années 1990, les BIOS étaient stockés sur des puces ROM qui ne pouvaient être modifiées. Au fur et à mesure que leur complexité, et le besoin de mises à jour se faisait sentir, ils furent stockés sur des mémoires EEPROM ou Flash qui pouvaient être modifiées.

Ainsi, il est possible de mettre à jour, de manière logicielle, le BIOS d'un ordinateur. Cette action est appelée « Flasher le BIOS ». Un problème (coupure d'électricité, mauvaise version de ROM, ...) lors de cette opération peut rendre la carte mère definitivement inutilisable. Il est donc conseillé de ne flasher le BIOS que lorsque cette opération est vraiment nécessaire. Certaines cartes mères possèdent deux versions du BIOS : la version actuelle qu'il est possible de modifier logiciellement et une copie de sauvegarde, un Cavalier permettant d'écraser la version actuelle par la version de sauvegarde. Il existe de plus, des mécanismes permettant d'ajouter une deuxième Flash à une carte mère n'en possédant qu'une, à condition que la puce initiale du BIOS soit extractible.

Enfin avoir un bios "flashable" signifie qu'un virus peut facilement s'y copier s'il a les droits du Super Utilisateur, d'où la nécessité de ne pas utiliser le compte "Administrateur" (au moins sous Windows) pour les taches courantes.

[modifier] Le firmware sur les cartes d'extension

Un ordinateur peut héberger plusieurs puces BIOS. En plus du BIOS de boot, qui contient les fonctions pour accéder au matériel important, comme le clavier, des cartes d'extension comme les cartes SCSI ou les cartes vidéo peuvent embarquer leur propre BIOS, améliorant ou remplaçant les fonctions du BIOS de boot.

[modifier] Le signal power good, qui déclenche le BIOS

Quand le processeur reçoit un signal power good, il démarre l'exécution du firmware BIOS.

Ce signal power good est envoyé soit par le bloc d'alimentation (c'est-à-dire quand l'utilisateur allume son ordinateur) ou lorsque l'utilisateur appuie sur le bouton reset.

Voir POST (Power-on self-test)

[modifier] Futur : Extensible Firmware Interface

Extensible Firmware Interface (EFI), devenu UEFI (Unified EFI) est une interface logicielle moderne appelée à être le successeur du BIOS.

L'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.

Alors que le BIOS est écrit en assembleur, l'EFI est entièrement développé en C, ce qui lui confère une certaine souplesse pour ses évolutions futures. Développé de manière à offrir une plus grande indépendance entre le système d'exploitation et la plateforme matérielle sur laquelle il tourne, l'EFI est disponible sur les plateformes variées tel qu'Itanium (IA-64), x86 (32bits et 64bits).

AMD, American Megatrends, Dell, HP, Intel, IBM, Insyde, Microsoft et Phoenix Technologies constituent aujourd'hui au sein de l'UEFI Forum des acteurs majeurs autour de cette technologie. Ces firmes travaillent actuellement sur les spécifications de l'UEFI et ont publié les spécifications officielles de l'UEFI 2.0 (Unified EFI Specifications – spécifications de l'Unified EFI (interface micrologicielle extensible et unifiée)) au début de 2006.

Les ordinateurs Apple à base de processeurs Intel utilisent cette technologie.

La première version de Windows Vista ne contient pas la gestion de l'UEFI, celle-ci a été annoncée pour le « service pack 1 » pour les plateformes x64 uniquement. La première version du système d'exploitation pour serveurs « Windows Server 2008 » (ex-Longhorn) contient elle aussi la gestion d'UEFI pour les processeurs 64-bit. Les versions postérieures à ces systèmes devraient également adopter la même stratégie.

[modifier] Gestion d'un disque

[modifier] Version actuelle

Les blocs de données d'un disque sont numérotés linéairement et contiennent une quantité donnée de secteurs.

[modifier] Ancienne version : problème des 1024 cylindres

Icône de détail Article connexe : Cylindre/Tête/Secteur.

Un bloc de données était repéré par un triplet de chiffres : cylindre, tête et secteurs. Au maximum, les anciens BIOS étaient conçus pour 1024 cylindres, 256 têtes et 63 secteurs ; par conséquent, si le chargeur d'amorçage se trouvait au-delà du 1024ème cylindre, le BIOS ne pouvait pas l'atteindre

[modifier] Voir aussi

[modifier] Lien interne

[modifier] Bibliographie

[modifier] Liens externes

[modifier] Développeur de BIOS