La séance de questions et réponses d’aujourd’hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses animé par la communauté.
La question
Le lecteur de SuperUser Indrek pose cette question liée au BIOS:
I always wondered whether the BIOS (apart from conducting POST, starting the bootloader and passing control to the OS after one presses the power button) has any purpose or function while the operating system is running?
Does the operating system communicate with the BIOS while running and if so, how?
Effectivement? Quelle est la fonction du BIOS en dehors de son rôle critique dans le démarrage de l'ordinateur?
Les réponses
Mechanical Snail, contributeur à SuperUser, donne un aperçu de la façon dont le rôle du BIOS a changé au fil du temps et de ce qu'il fait et ne fait pas aujourd'hui:
Le rôle du BIOS
Avec les OS modernes, pratiquement aucun. Linus Torvalds aurait déclaré que sa tâche était de "charger simplement le système d'exploitation et de se sortir de là".
Les systèmes d'exploitation plus anciens tels que MS-DOS s'appuyaient sur le BIOS pour de nombreuses tâches (accès au disque, par exemple) en appelant des interruptions.
Avec les systèmes d'exploitation modernes, le chargeur de démarrage bascule rapidement en mode 32 ou 64 bits et exécute le noyau du système d'exploitation. Le noyau peut enregistrer ses propres gestionnaires d'interruptions, qui peuvent être appelés par les applications de l'espace utilisateur. Les routines du noyau peuvent être plus portables (puisqu'elles ne dépendent pas du matériel spécifique), plus flexibles (les fournisseurs de systèmes d'exploitation peuvent les modifier à la demande plutôt que d'utiliser tout le matériel fourni avec le matériel), plus sophistiquées (elles peuvent exécuter des tâches arbitrairement complexes). plus sûr (car le système d’exploitation peut contrôler l’accès aux ressources partagées et empêcher les programmes de s’embrasser, mettant en œuvre ses propres systèmes de permissions arbitraires).
Pour interagir avec un matériel spécifique, les systèmes d’exploitation peuvent charger et utiliser leurs propres pilotes de périphérique. Il n’est donc pas nécessaire que le système d’exploitation ou les applications appellent la plupart des routines du BIOS. En fait, pour des raisons de sécurité, les interruptions du BIOS sont même désactivées. Étant donné que le BIOS vit en mode réel 16 bits, il est plus difficile de faire appel aux systèmes d’exploitation modernes.
Bien que l'utilisation du BIOS soit très limitée pendant que le système d'exploitation fonctionne, ses fonctions sont toujours utilisées de manière périphérique. Par exemple, lorsqu'un ordinateur est en veille, le système d'exploitation ne fonctionne pas et il incombe en dernier ressort au micrologiciel de configurer le matériel à l'état approprié pour mettre en pause et reprendre le système d'exploitation. Ces utilisations sont généralement limitées aux appels ACPI plutôt qu'aux appels à l'interface complète du BIOS. ACPI est une extension du BIOS qui «met la gestion de l’énergie sous le contrôle du système d’exploitation (OSPM), par opposition au système central BIOS précédent, qui reposait sur un micrologiciel spécifique à la plate-forme pour déterminer les règles de gestion de l’alimentation et de configuration».
Notez qu'officiellement «BIOS» fait référence à une interface de micrologiciel particulière, mais le terme est couramment utilisé pour désigner le micrologiciel de l'ordinateur en général. Certains ordinateurs récents (notamment ceux d’Apple) ont remplacé le BIOS (sensu strictu) par UEFI, qui est bien entendu ce qui est appelé pour mettre en oeuvre ces fonctions.
Pour plus d'informations sur la diminution progressive du rôle du BIOS, voir Wikipedia.
Un autre contributeur de SuperUser, Simon Richter, nous donne un aperçu de ce que le BIOS fait encore:
Le BIOS et la gestion de l'alimentation
Le BIOS fournit un certain nombre de services aux systèmes d’exploitation, dont la plupart sont liés à la gestion de l’alimentation:
- modifier les horloges de la CPU et du bus
- activation / désactivation des périphériques de la carte mère
- contrôle de l'alimentation du port d'extension
- suspension sur disque et suspension sur RAM
- reprendre les paramètres de l'événement
La suspension sur disque est la plupart du temps implémentée dans le système d'exploitation car ce dernier peut restaurer son état plus rapidement (seul l'état du noyau est rechargé et l'état du programme est échangé si nécessaire, ce qui est nettement plus rapide que le rechargement de la totalité de la RAM). la fonctionnalité reste dans la spécification.
Suspend-to-RAM ne peut pas être implémenté par le système d'exploitation, car il repose sur le BIOS ignorant l'initialisation et le test de la RAM. Par conséquent, le système d'exploitation a besoin d'une API pour indiquer au BIOS qu'il a l'intention de reprendre le contenu actuel de la RAM. Afin de fournir ce service, le BIOS demande au système d'exploitation de laisser intacte une certaine zone de RAM.
L’interface du système d’exploitation pour tous les services du BIOS est un élément de code de machine virtuelle qui doit être exécuté sur un émulateur et qui génère les opérations d’E / S nécessaires dans le matériel. Pour suspendre, ceci est généralement implémenté de sorte que l'exécution d'une des écritures matérielles déclenche une interruption qui transfère le contrôle au BIOS.
Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.