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

78

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?

JohnnyFromBF
la source

Réponses:

72

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 comme 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 souples (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 oeuvre 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 définir 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 la politique de gestion et de configuration de la gestion de l’alimentation" .

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 implémenter ces fonctions.

Pour plus d'informations sur la diminution progressive du rôle du BIOS, voir Wikipedia .

Escargot mécanique
la source
15
Il y a une interaction minimale via l'horloge système (heure de la journée).
MSalters
7
Êtes-vous vraiment sûr de ça? Qu'en est-il des commandes de ventilateur, du mode de gestion système déjà mentionné, de l'ensemble de l'ACPI, qui contrôle par exemple la vitesse du processeur?
Alexander
32
Je pourrais essayer et souder la puce BIOS pendant que la machine est en marche.
JohnnyFromBF
5
@ Ian pourquoi rendre les choses difficiles pour vous. Trouvez une carte plus ancienne avec un bios à la base et tirez simplement la puce. Par ailleurs, certaines cartes overclocker récentes de l'IIRC ont toujours un commutateur matériel pour vous permettre de permuter entre deux BIOS. Faites pivoter un flash de l'image B, démarrez sur A, passez à B lors de l'exécution.
Dan Neely
17
@ Ian j'ai fait ça. J'ai perdu le courant 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 vissée et flashé. Les deux puces BOIS ont parfaitement fonctionné par la suite. Certes, c’était DOS, fonctionnant sous Flash. Encore impressionnant je pense. (Les cartes étaient de marque Gigabyte, compatibles Pentium 4 pour autant que je m'en souvienne)
Ekin Koc
32

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 celui-ci 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 avec 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.

Simon Richter
la source
17

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, la séquence d'amorçage, le profil de sécurité actuel de l'utilisateur, les informations relatives à la carte mère, les modules DIMM, etc.

Le second est le mode de gestion du système, qui est une partie 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 hautement sécurisées ou pour contourner des problèmes de 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

Tim Lewis
la source
9

Les systèmes d’exploitation modernes utilisent le BIOS principalement pour le chargement, mais il existe encore quelques utilisations, notamment:

  • Réaction au bouton d'alimentation (arrêtez le PC après 4 secondes
    incluses).
  • Modification des paramètres de luminosité de l'écran sur les ordinateurs portables
  • Événements de batterie sur les ordinateurs portables
  • Suspension
Bluehallu
la source
Je pensais que la luminosité était obtenue en modifiant les valeurs de couleur juste avant de dessiner.
Cole Johnson
3
@ColeJohnson: Non: Sur les Thinkpads au moins, cela change réellement la luminosité du rétroéclairage.
Escargot mécanique
1
La luminosité est un signal modulé en largeur d'impulsion contrôlé par matériel, allumant et éteignant la DEL blanche brillante à haute fréquence. Cette lumière est l’un des principaux consommateurs de batterie
1

En plus de ce qui a été noté ci-dessus, Intel commence à basculer dans la direction opposée en fournissant un accès hors bande au matériel via la technologie de gestion active intégrée au bios et à la carte mère, qui peut être contrôlée 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é.

intels marketing guff

Mat
la source