Réponses:
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 .
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.
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».