Respuestas:
El sistema operativo interactúa con el firmware de un controlador integrado que forma parte de la Configuración avanzada y la Interfaz de alimentación (ACPI).
Wikipedia lo define como:
En una computadora, la Interfaz avanzada de configuración y energía (ACPI) proporciona un estándar abierto que los sistemas operativos pueden usar para descubrir y configurar componentes de hardware de la computadora, para realizar la administración de energía (por ejemplo) poniendo los componentes no utilizados en suspensión y para realizar un monitoreo de estado . Lanzado por primera vez en diciembre de 1996, ACPI tiene como objetivo reemplazar la Administración avanzada de energía (APM), la Especificación de multiprocesador y la Especificación de BIOS Plug and Play (PnP). [1] ACPI pone la administración de energía bajo el control del sistema operativo, a diferencia del sistema anterior centrado en BIOS que dependía del firmware específico de la plataforma para determinar la administración de energía y las políticas de configuración.
Internamente, ACPI anuncia los componentes disponibles y sus funciones al núcleo del sistema operativo utilizando listas de instrucciones ("métodos") proporcionadas a través del firmware del sistema (Interfaz de firmware extensible unificada (UEFI) o BIOS), que analiza el núcleo. A continuación, ACPI ejecuta las operaciones deseadas (como la inicialización de los componentes de hardware) utilizando una máquina virtual mínima integrada.
La respuesta es entonces que un circuito o microchip está incrustado en la placa base, que en sí contiene un micro sistema operativo que pone a disposición algunos servicios a través del firmware de la computadora: UEFI o BIOS. Controla muchos aspectos de la administración de energía y dispositivos.
El sistema operativo de la computadora tiene un controlador de sistema dedicado a la interfaz con ACPI. Una vez que se activa ACPI, toma el control exclusivo de todos los aspectos de la administración de energía y la configuración del dispositivo.
En muchos aspectos, ACPI es un sistema operativo detrás de su sistema operativo, excepto que viene con la placa base y no está bajo su control. Ha habido voces que lo comparan con un caballo de Troya y lo llaman un riesgo de seguridad. Puede estar deshabilitado, pero algunas computadoras pueden no arrancar sin él, y la administración avanzada de energía también está deshabilitada en cualquier caso.
Para obtener más información sobre su uso en Windows, consulte el artículo Diseño de hardware del subsistema de batería y energía .
Como complemento a la otra respuesta, ¿cómo sabe el software que se ejecuta en la computadora cuál es el nivel de batería? Pide la batería.
La mayoría de las baterías de las computadoras portátiles son baterías inteligentes que tienen su propio microcontrolador o ASIC de "indicador de combustible", con el cual el host puede comunicarse a través de SMBus. La gente ha realizado ingeniería inversa en algunos ejemplos.
El SMBus puede o no estar expuesto directamente al sistema operativo de una manera que permita al administrador consultarlo directamente. Hay varios programas como OpenHardwareMonitor o Speccy o sensores lm que pueden interrogar al bus para averiguar sobre el hardware.
De manera más general, todos los chips de computadora tienen documentación que les dice a los diseñadores y programadores qué hacen y cómo configurarlos para hacerlo. El acceso de bajo nivel a estos chips se puede hacer leyendo y escribiendo directamente en los registros del chip.
Los chips más complicados pueden venir con un programa de software llamado 'controlador' que permite un acceso de alto nivel al sistema operativo o incluso a otras aplicaciones. Su teléfono inteligente, por ejemplo, tiene una interfaz de programación de aplicaciones (API) que le permite acceder a gran parte del hardware, GPS, acelerómetro, batería, cámara, etc. del teléfono. Cuando escribe una "aplicación", puede acceder a estos dispositivos de hardware utilizando la API tal como puede hacerlo el sistema operativo (aunque el sistema operativo generalmente tiene un acceso más extenso que un programa que se ejecuta en 'espacio de usuario').
Estas interfaces están muy bien definidas para que cuando realice una llamada de función al chip de hardware, responda con la información solicitada. El chip controlador de la batería es solo un ejemplo de esta infraestructura genérica.
Quien escribe el código del sistema operativo obtiene la documentación del chip y escribe el software para comunicarse con el chip y recuperar la información que desea.
Entonces, la próxima vez que cargue un 'controlador' (o se haga automáticamente) para un disco duro externo, unidad de memoria USB o algo más, comprenderá un poco más sobre cómo suceden las cosas 'bajo el capó'.