Comment le système d'exploitation est-il capable de connaître le niveau de la batterie?


34

Même si nous supprimons le système d'exploitation par défaut et en installons un nouveau, celui-ci peut interagir avec la batterie. Y at-il des pilotes pour cela? Comment ça marche?

Réponses:


33

Le système d'exploitation s'interface avec le micrologiciel d'un contrôleur intégré faisant partie de l' interface ACPI ( Advanced Configuration and Power Interface ).

Wikipedia le définit comme suit:

Sur un ordinateur, l'interface ACPI (Advanced Configuration and Power Interface) constitue un standard ouvert que les systèmes d'exploitation peuvent utiliser pour détecter et configurer les composants matériels de l'ordinateur, effectuer la gestion de l'alimentation en mettant par exemple en veille les composants inutilisés et en contrôlant l'état . Initialement publié en décembre 1996, ACPI vise à remplacer la spécification multiprocesseur et la spécification Plug and Play BIOS (PnP) [Advanced Power Management (APM)]. [1] ACPI place la gestion de l’alimentation sous le contrôle du système d’exploitation, contrairement au système précédent centré sur le BIOS qui reposait sur un micrologiciel spécifique à la plate-forme pour déterminer les stratégies de gestion de l’alimentation et de configuration.

En interne, ACPI publie les composants disponibles et leurs fonctions dans le noyau du système d’exploitation à l’aide de listes d’instructions ("méthodes") fournies par le microprogramme du système (UEFI ou BIOS), que le noyau analyse. ACPI exécute ensuite les opérations souhaitées (telles que l'initialisation des composants matériels) à l'aide d'une machine virtuelle minimale intégrée.

La réponse est alors qu’un circuit ou une micropuce est intégré à la carte mère, qui contient elle-même un micro-système d’exploitation qui met à disposition certains services via le micrologiciel de l’ordinateur - UEFI ou BIOS. Il contrôle de nombreux aspects de la gestion de l'alimentation et des périphériques.

Le système d'exploitation de l'ordinateur dispose d'un pilote système dédié à l'interface avec ACPI. Une fois activé, ACPI prend le contrôle exclusif de tous les aspects de la gestion de l’alimentation et de la configuration des périphériques.

À bien des égards, ACPI est un système d’exploitation derrière votre système d’exploitation, sauf qu’il est fourni avec la carte mère et qu’il n’est pas sous votre contrôle. Des voix l'ont comparé à un cheval de Troie et l'ont qualifié de risque de sécurité. Il peut être désactivé, mais certains ordinateurs risquent de ne pas démarrer sans cela, et la gestion avancée de l'alimentation est alors également désactivée.

Pour plus d'informations sur son utilisation dans Windows, voir l'article Conception matérielle de la batterie et du sous-système d'alimentation .


1
Je me trompe peut-être, mais il semble que la description du dernier paragraphe confonde complètement ACPI avec SMM et / ou le ME / AMT d’Intel . ACPI est principalement une structure de données statique, avec de petites quantités de bytecode que le système d'exploitation lui-même doit interpréter, alors que ME est le système réel.
Grawity

1
@grawity: Ne pense pas. Vous pouvez trouver une discussion similaire dans l'article de Wikipedia sur ACPI.
harrymc

1
Je ne vois pas beaucoup de discussions là-dedans, à part quelques citations d'un article d'un blog de Shuttleworth, et après avoir lu les deux pages, je ne suis pas du tout convaincu - il me semble qu'il ne fait que masquer tout ce qui est fourni avec le système Le nom "ACPI", que ce soit le BIOS ou le processeur Intel ME ou autre. Autant que je sache, parmi toutes les ordures inhérentes à un système moderne, ACPI est probablement le seul élément qui ne fonctionne pas tout seul, et certainement pas sous le système d'exploitation.
grawity

2
@grawity ACPI inclut également une interface d’exécution de code de niveau micrologiciel, c’est ainsi que se déroule une grande partie de l’interaction entre les micrologiciels. Sur certains systèmes, cela utilise même SMM pour l'exécution du code, même si, heureusement, cela devient de moins en moins courant.
Austin Hemmelgarn

@grawity: Oui, ACPI ne fait rien dans la mesure où il ne s'agit que d'un contrôleur. L'UEFI / BIOS gère de la même manière les périphériques et est placé plus haut dans la hiérarchie matérielle. L'un d'eux est l'ACPI. Les fonctions sont externalisées à chaque niveau, de plus en plus généralisées à chaque niveau. Les logiciels tels que les systèmes d'exploitation sont conçus à peu près de la même façon en ce qui concerne les niveaux de généralisation, c'est-à-dire la manière dont les humains s'attaquent à des problèmes complexes.
harrymc

57

En complément de l’autre réponse, comment le logiciel exécuté sur l’ordinateur sait-il quel est le niveau de la batterie? Il demande à la batterie.

La plupart des batteries d'ordinateurs portables sont des batteries intelligentes dotées de leur propre microcontrôleur ou ASIC «jauge à essence», avec lequel l'hôte peut communiquer via SMBus. Les gens ont inversé l'ingénierie quelques exemples.

Le SMBus peut ou non être exposé directement au système d'exploitation de manière à permettre à l'administrateur de l'interroger directement. Il existe divers programmes tels que OpenHardwareMonitor ou Speccy ou lm-sensors qui peuvent interroger le bus pour en savoir plus sur le matériel.


excellente explication pour comprendre le concept de base en général! Bien que je voudrais ajouter des guillemets autour du mot "demande".
Albin

Il n'y a pas de conflit avec ma réponse: SMBus est un composant géré par ACPI pour les ordinateurs mobiles sur lesquels il existe.
harrymc

1
Cette interface de batterie intelligente peut également être exposée via des moyens plus standard, tels que l'USB. Par exemple, de nombreux onduleurs possèdent un port USB qui, lorsqu'il est branché sur l'ordinateur, indique à l'ordinateur la quantité d'énergie restante et l'affiche exactement comme le fait un ordinateur portable.
TheHansinator

2
@TheHansinator Je dirais que SMBus est le moyen standard pour communiquer avec une batterie intelligente. Presque tous les téléphones et ordinateurs portables l'utilisent, ce qui représente beaucoup plus de systèmes que d'onduleurs externes.
Austin Hemmelgarn

@ AustinHemmelgarn True. Peut-être qu'un meilleur mot est "conventionnel", en ce sens que le système est plus ou moins une abstraction de système d'exploitation que des appareils autres que les batteries intégrées peuvent utiliser.
TheHansinator

2

Plus généralement, toutes les puces informatiques ont une documentation qui indique aux concepteurs et aux programmeurs ce qu’elles font et comment les configurer pour le faire. L’accès bas niveau à ces puces peut se faire en lisant et en écrivant directement dans les registres de la puce.

Des puces plus complexes peuvent être livrées avec un logiciel appelé «pilote» qui permet un accès de haut niveau au système d'exploitation ou même à d'autres applications. Votre téléphone intelligent, par exemple, dispose d'une interface de programmation (API) qui permet d'accéder à une grande partie du matériel du téléphone, GPS, accéléromètre, batterie, appareil photo, etc. Lorsque vous écrivez une "application", vous pouvez accéder à ces périphériques à l'aide de l'API. tout comme le système d'exploitation le peut (bien que le système d'exploitation dispose généralement d'un accès plus étendu qu'un programme exécuté dans un "espace utilisateur").

Ces interfaces sont très bien définies pour que, lorsque vous appelez une fonction vers la puce matérielle, celle-ci réponde avec les informations demandées. La puce de contrôleur de batterie n'est qu'un exemple de cette infrastructure générique.

Quiconque écrit le code du système d'exploitation obtient la documentation de la puce et écrit un logiciel pour communiquer avec la puce et récupérer les informations qu'il souhaite.

Ainsi, la prochaine fois que vous chargerez un «pilote» (ou cela se fera automatiquement) pour un disque dur externe, une clé USB ou autre chose, vous comprendrez un peu mieux comment les choses se passent «sous le capot».

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.