Je me suis toujours demandé si le BIOS (mis à part le POST, le démarrage du chargeur de démarrage et le transfert du contrôle au système d'exploitation après avoir appuyé sur le bouton d'alimentation) avait un objectif ou une fonction pendant le fonctionnement du système d'exploitation?
Le système d'exploitation communique-t-il avec le BIOS lors de l'exécution et, le cas échéant, comment?
Avec les systèmes d’exploitation 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’encombrer les uns les autres, en implémentant 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. Comme 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 s'exécute pas et il incombe finalement au microprogramme de régler le matériel à l'état approprié pour mettre en pause et reprendre la lecture. l'OS. 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 "place la gestion de l’alimentation sous le contrôle du système d’exploitation (OSPM), par opposition au système central BIOS précédent, qui reposait sur un microprogramme propre à la plate-forme politique de gestion 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 (surtout ceux d’Apple) ont remplacé le BIOS (sensu strictu) par UEFI , ce qui bien sûr est appelé pour implémenter ces fonctions. .
Pour plus d'informations sur la diminution progressive du rôle du BIOS, voir Wikipedia .
Le BIOS fournit un certain nombre de services aux systèmes d’exploitation, dont la plupart sont liés à la gestion de l’alimentation:
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 RAM, de sorte que le système d'exploitation a besoin d'une API pour indiquer au BIOS qu'il a l'intention de le reprendre avec le contenu actuel de RAM. Afin de fournir ce service, le BIOS demande au système d'exploitation de laisser intacte une certaine zone 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 de l'une des écritures matérielles déclenche une interruption qui transfère le contrôle au BIOS.
Il existe trois domaines principaux dans lesquels un système d’exploitation utilise le BIOS dans les systèmes modernes, tels que ceux utilisant le standard UEFI. Le premier est une série de services appelés services d’exécution UEFI. Ces services permettent au système d'exploitation de récupérer des informations que seul le BIOS connaît, telles que l'heure d'utilisation du BIOS, l'ordre de démarrage, le profil de sécurité de l'utilisateur actuel, les informations relatives à la carte mère, les modules DIMM, etc.
Le second est le mode de gestion du système, qui est une section de mémoire cachée (SMRAM) à laquelle on accède par une interruption de priorité élevée (SMM). De nombreux BIOS l'utilisent pour implémenter des fonctionnalités OEM de haute sécurité ou des solutions de contournement du matériel.
Le troisième est ACPI. ACPI fournit la configuration, la gestion de l'alimentation, les données matérielles et le code utilisés par le système d'exploitation pour améliorer les informations que les pilotes du système d'exploitation peuvent découvrir à l'aide d'un pilote standard ou d'un pilote de périphérique. Par exemple, existe-t-il un signal spécial permettant de contrôler l’alimentation du disque dur ou existe-t-il un moyen spécial de communiquer avec la batterie qui n’est pas couverte par une norme?.
Tim
Les systèmes d’exploitation modernes utilisent le BIOS principalement pour le chargement, mais il existe encore quelques utilisations, notamment:
En plus de ce qui a été noté ci-dessus, Intel commence à inverser la tendance et à s’intégrer davantage en fournissant un accès hors bande au matériel via la technologie de gestion active intégré au bios et à la carte mère pouvant être contrôlé indépendamment du système d'exploitation. Avec ces conseils, vous pouvez en faire beaucoup. Que vous considériez qu’il s’agisse d’un système d’exploitation intégré ou d’un second système d’exploitation est une autre chose, mais comme il a du matériel embarqué et des composants dans le BIOS, je me tiens au système intégré.