Ответы:
Операционная система взаимодействует с микропрограммой встроенного контроллера, который является частью интерфейса расширенной конфигурации и питания. (ACPI).
Википедия определяет это как:
В компьютере расширенный интерфейс конфигурации и питания (ACPI) предоставляет открытый стандарт, который операционные системы могут использовать для обнаружения и настройки компонентов аппаратного обеспечения компьютера, для управления питанием, например, путем перевода неиспользуемых компонентов в спящий режим и мониторинга состояния. , Впервые выпущенный в декабре 1996 года, ACPI призван заменить Advanced Power Management (APM), спецификацию мультипроцессора и спецификацию Plug and Play BIOS (PnP). [1] ACPI обеспечивает управление питанием под управлением операционной системы, в отличие от предыдущей BIOS-ориентированной системы, которая использовала встроенное ПО для платформы для определения политик управления питанием и конфигурации.
Внутренне ACPI объявляет о доступных компонентах и их функциях ядру операционной системы, используя списки команд («методы»), предоставляемые через встроенное ПО системы (UEFI) или BIOS, которые анализирует ядро. Затем ACPI выполняет нужные операции (например, инициализацию аппаратных компонентов), используя встроенную минимальную виртуальную машину.
Тогда ответ заключается в том, что в материнскую плату встроена микросхема или микросхема, которая сама содержит микро операционную систему, которая делает доступными некоторые сервисы через прошивку компьютера - UEFI или BIOS. Он контролирует многие аспекты управления питанием и устройствами.
Операционная система компьютера имеет системный драйвер, предназначенный для взаимодействия с ACPI. После активации ACPI он получает исключительный контроль над всеми аспектами управления питанием и конфигурации устройства.
Во многих аспектах ACPI - это операционная система, стоящая за вашей операционной системой, за исключением того, что она поставляется с материнской платой и не находится под вашим контролем. Были голоса, сравнивающие его с троянским конем и называющие это угрозой безопасности. Он может быть отключен, но некоторые компьютеры могут не загружаться без него, и тогда в любом случае также будет отключено расширенное управление питанием.
Подробнее о его использовании в Windows см. В статье « Аппаратное обеспечение батареи и питания» .
В дополнение к другому ответу, как программное обеспечение, работающее на компьютере, узнает, каков уровень заряда батареи? Это спрашивает батарею.
Большинство аккумуляторов для ноутбуков представляют собой интеллектуальные аккумуляторы, которые имеют собственный микроконтроллер или ASIC «указатель уровня топлива», с которым хост может связываться через SMBus. Люди разработали несколько примеров.
SMBus может или не может быть выставлен напрямую операционной системе таким образом, чтобы администратор мог запросить его напрямую. Существуют различные программы, такие как OpenHardwareMonitor или Speccy или lm-сенсоры, которые могут опрашивать шину, чтобы узнать об оборудовании.
В целом, все компьютерные чипы имеют документацию, которая сообщает дизайнерам и программистам, что они делают и как их настроить для этого. Низкий уровень доступа к этим чипам может быть сделан путем чтения и записи непосредственно в регистры чипа.
Более сложные чипы могут поставляться с программным обеспечением, называемым «драйвером», которое обеспечивает высокий уровень доступа к операционной системе или даже к другим приложениям. Например, ваш смартфон имеет интерфейс прикладного программирования (API), который обеспечивает доступ ко многим аппаратным средствам телефона, GPS, акселерометру, батарее, камере и т. Д. Когда вы пишете «приложение», вы можете получить доступ к этим аппаратным устройствам с помощью API. так же, как и операционная система (хотя ОС обычно имеет более широкий доступ, чем программа, выполняемая в «пространстве пользователя».)
Эти интерфейсы очень хорошо определены, поэтому, когда вы выполняете вызов функции для аппаратного чипа, он отвечает запрошенной информацией. Микросхема контроллера батареи является лишь одним из примеров этой общей инфраструктуры.
Кто бы ни писал код операционной системы, он получает документацию для чипа и пишет программное обеспечение для связи с чипом и извлечения информации, которую он желает.
Поэтому в следующий раз, когда вы загрузите «драйвер» (или это будет сделано автоматически) для внешнего жесткого диска, флэш-накопителя USB или чего-то еще, вы поймете немного больше о том, как все происходит «под капотом».