Question Quelles sont les fonctions du BIOS pendant que le système d'exploitation est en cours d'exécution?


Je me suis toujours demandé si le BIOS (mis à part le test POST, le démarrage du chargeur de démarrage et le contrôle du système d'exploitation après une pression sur le bouton d'alimentation) avait un but ou une fonction pendant le fonctionnement du système d'exploitation.

Le système d'exploitation communique-t-il avec le BIOS en cours d'exécution et si oui, comment?


76
2017-08-16 09:10


origine


En relation: Pourquoi un ordinateur doit-il avoir un BIOS? - Breakthrough


Réponses:


Avec les systèmes d'exploitation modernes, pratiquement aucun. Linus Torvalds aurait déclaré que sa tâche était de "simplement charger le système d’exploitation et le faire disparaître".

Les systèmes d'exploitation plus anciens tels que MS-DOS reposaient sur le BIOS pour de nombreuses tâches (par exemple, l'accès au disque), en appelant des interruptions.

Avec les systèmes d'exploitation modernes, le chargeur de démarrage passe 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'interruption, qui peuvent être appelés par des applications d'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ème d'exploitation peuvent les modifier à la demande plutôt que d'utiliser le matériel fourni), plus sophistiqués (ils peuvent exécuter des tâches complexes). code plutôt que ce qui a été programmé dans le BIOS), et plus sécurisé (puisque le système d’exploitation peut contrôler l’accès aux ressources partagées et empêcher les programmes de se noyer, en implémentant ses propres systèmes d’autorisations 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 d'appeler des systèmes d'exploitation modernes.

Bien que l'utilisation du BIOS soit très limitée pendant que le système d'exploitation s'exécute, ses fonctions sont encore utilisées de manière périphérique. Par exemple, lorsqu'un ordinateur dort, le système d'exploitation ne fonctionne pas et il incombe au micrologiciel de définir l'état du matériel pour qu'il soit mis en pause et qu'il reprenne le système d'exploitation. Ces utilisations sont généralement limitées à ACPI appels plutôt que des appels à l’interface complète du BIOS. ACPI est une extension du BIOS qui "met la gestion de l'alimentation sous le contrôle du système d'exploitation (OSPM), par opposition au système BIOS-central précédent, qui reposait sur un microprogramme spécifique à la plate-forme pour déterminer les règles de configuration et de gestion de l'alimentation".

Notez que officiellement, "BIOS" fait référence à une interface de micrologiciel particulière, mais le terme est généralement utilisé pour désigner le micrologiciel de l'ordinateur en général. Certains ordinateurs récents (notamment Apple) ont remplacé le BIOS (sensu strictu) par UEFI, ce qui est bien sûr ce qui est appelé pour mettre en œuvre ces fonctions.

Pour plus d'informations sur la réduction du rôle du BIOS au fil du temps, voir Wikipédia.


71
2017-08-16 09:23



Il y a une interaction minimale via l'horloge système (heure du jour). - MSalters
Êtes-vous vraiment sûr de cela? Qu'en est-il des commandes du ventilateur, du mode de gestion du système déjà mentionné, de l'ensemble de l'ACPI, qui contrôle par exemple la vitesse du processeur? - Alexander
Je pourrais essayer et souder la puce du BIOS pendant que la machine tourne. - JohnnyFromBF
@Ian pourquoi le rendre difficile pour vous-même. Trouvez une planche plus ancienne avec un bios avec sockets et lancez simplement la puce. Alternativement, IIRC certaines cartes overclocker récentes ont toujours un commutateur matériel pour vous permettre de permuter entre deux BIOS. Flashez un flash de l'image B, démarrez sur A, passez à B en cours d'exécution. - Dan Neely
@Ian j'ai fait ça. J'ai perdu de la puissance en faisant clignoter un BIOS, il n'a pas démarré après cela. Nous avions 20 machines avec exactement le même matériel et elles vieillissaient. J'ai donc démarré une, enlevé la puce BOIS, branché la puce et flashé. Les deux puces BOIS fonctionnaient parfaitement bien après cela. Certes, il s'agissait de DOS, fonctionnant pour les logiciels flash. Toujours impressionnant je pense. (Les cartes portaient la marque Gigabyte, compatible Pentium 4 pour autant que je m'en souvienne) - Ekin Koc


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 du processeur et du bus
  • activer / désactiver les périphériques de la carte mère
  • contrôle de puissance du port d'extension
  • suspension sur disque et suspension sur RAM
  • reprendre les paramètres de l'événement

Suspend-to-disk est implémenté dans le système d'exploitation la plupart du temps, car le système d'exploitation peut restaurer son état plus rapidement (seul l'état du noyau est rechargé et l'état du programme interverti si nécessaire, ce qui est nettement plus rapide que de recharger l'intégralité 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 le BIOS ignore l'initialisation et le test de la RAM. Le système d'exploitation a donc besoin d'une API pour indiquer au BIOS qu'il doit reprendre le contenu de la RAM actuelle. Afin de fournir ce service, le BIOS demande au système d'exploitation de laisser une certaine zone de mémoire vive intacte.

L'interface du système d'exploitation pour tous les services BIOS est un morceau 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 alors une interruption, qui transfère le contrôle au BIOS.


31
2017-08-16 15:03





Il existe trois principaux domaines dans lesquels un système d'exploitation utilise le BIOS dans des systèmes modernes, tels que ceux utilisant la norme 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 la durée d'utilisation du BIOS, la séquence d'amorçage, le profil de sécurité utilisateur actuel, les informations sur la carte mère, les modules DIMM, etc.

Le second est le mode de gestion du système, qui est une section cachée de la mémoire (SMRAM) accessible par une interruption de haute priorité (SMM). De nombreux BIOS l'utilisent pour implémenter des fonctionnalités OEM de haute sécurité ou pour mettre en œuvre des solutions de contournement du matériel.

Le troisième est ACPI. L'ACPI fournit les données et le code de configuration, de gestion de l'alimentation et du matériel utilisés par le système d'exploitation pour compléter les informations que les pilotes du système d'exploitation peuvent obtenir à l'aide d'un pilote standard ou de périphérique. Par exemple, existe-t-il un signal spécial pour 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


16
2017-08-16 16:10





Les systèmes d'exploitation modernes utilisent principalement le BIOS pour le chargement uniquement, mais il y a encore quelques utilisations, notamment:

  • Réaction au bouton d'alimentation (Arrêtez le PC après 4 secondes
    inclus).
  • Modification des paramètres de luminosité de l'écran sur les ordinateurs portables
  • Événements de batterie sur les ordinateurs portables
  • Suspension

9
2017-08-16 15:04



J'ai pensé que la luminosité était obtenue en modifiant les valeurs de couleur juste avant le dessin. - Cole Johnson
@ColeJohnson: Non: sur les Thinkpads, au moins, cela change la luminosité du rétro-éclairage. - Mechanical snail
La luminosité est un signal modulé en largeur d'impulsion, contrôlé par le matériel, qui allume et éteint la LED blanche et brillante à haute fréquence. Cette lumière est l'un des principaux consommateurs de batteries


En plus de ce qui a été noté ci-dessus, Intel commence à se tourner vers l’autre et à développer davantage en fournissant un accès hors bande au matériel via Technologie de gestion active intégré dans le bios et la carte mère qui peuvent être contrôlés indépendamment du système d'exploitation. Avec ces cartes, vous pouvez réellement faire un peu. Que vous le considériez comme intégré ou comme un second système d'exploitation, c'est une autre chose, mais comme il a du matériel embarqué et des composants dans le bios, je m'en tiens au fait.

intels marketing guff


1
2017-08-17 16:16