Відповіді:
Операційна система взаємодіє з вбудованим програмним забезпеченням вбудованого контролера, який є частиною розширеного інтерфейсу конфігурації та живлення (ACPI).
Вікіпедія визначає це як:
На комп'ютері інтерфейс розширеної конфігурації та живлення (ACPI) забезпечує відкритий стандарт, який операційні системи можуть використовувати для виявлення та налаштування компонентів комп'ютерних апаратних засобів, для керування живленням (наприклад, ввімкнення невикористаних компонентів у режим сну та здійснення моніторингу стану . Вперше випущений у грудні 1996 року, ACPI має на меті замінити розширене управління живленням (APM), специфікацію мультипроцесора та специфікацію BIOS (PnP) Plug and Play. [1] ACPI приносить управління живленням під управління операційною системою, на відміну від попередньої системи, орієнтованої на BIOS, яка для визначення політики управління та налаштування енергії спиралася на певну платформу.
Внутрішньо ACPI рекламує наявні компоненти та їх функції в ядрі операційної системи, використовуючи списки інструкцій ("методи"), що надаються через програмне забезпечення системи (Unified Extensible Firmware Interface (UEFI) або BIOS), яке ядро розбирає. Потім ACPI виконує потрібні операції (такі як ініціалізація апаратних компонентів) за допомогою вбудованої мінімальної віртуальної машини.
Потім відповідь полягає в тому, що схема або мікросхема вбудована в материнську плату, яка сама містить мікроопераційну систему, яка робить доступними деякі сервіси через програмне забезпечення комп'ютера - UEFI або BIOS. Він контролює багато аспектів управління живленням та пристроями.
Операційна система комп'ютера має системний драйвер, який призначений для взаємодії з ACPI. Після активації ACPI він приймає виключний контроль над усіма аспектами управління живленням та конфігурацією пристрою.
У багатьох аспектах ACPI - це операційна система, що стоїть за вашою операційною системою, за винятком того, що вона постачається з материнською платою і не знаходиться під вашим контролем. Були голоси, що пов'язують його з троянським конем і називають це ризиком для безпеки. Він може бути відключений, але деякі комп'ютери можуть не завантажуватися без нього, і тоді розширене управління живленням у будь-якому випадку вимкнено.
Більш детальну інформацію про його використання в Windows див. У статті Проектування апаратури підсистеми акумулятора та живлення .
Як доповнення до іншої відповіді, як програмне забезпечення, що працює на комп’ютері, знає, який рівень заряду акумулятора? Він запитує батарею.
Більшість батарей для ноутбуків - це розумні батареї, які мають власний мікроконтролер або «паливний датчик» ASIC, з яким хост може спілкуватися через SMBus. Люди реверсували кілька прикладів.
SMBus може або не може бути безпосередньо підданий дії операційної системи таким чином, що дозволяє адміністратору безпосередньо запитувати його. Існують різні програми, такі як OpenHardwareMonitor або Speccy або lm-датчики, які можуть допитати шину, щоб дізнатися про обладнання.
Більш загально, всі комп'ютерні мікросхеми мають документацію, яка повідомляє дизайнерам та програмістам, що вони роблять, і як їх налаштувати для цього. Доступ до цих чіпів на низькому рівні можна зробити, читаючи та записуючи безпосередньо в регістри чіпа.
Більш складні мікросхеми можуть поставлятися з програмною програмою, яка називається "драйвер", яка дозволяє доступ високого рівня до операційної системи або навіть інших програм. Наприклад, ваш смартфон має інтерфейс прикладного програмування (API), який дозволяє отримати доступ до більшої частини апаратури телефону, GPS, акселерометра, акумулятора, камери тощо. Коли ви пишете "Додаток", ви можете отримати доступ до цих апаратних пристроїв за допомогою API так само, як може операційна система (хоча ОС зазвичай має більш широкий доступ, ніж програма, що працює в "просторі користувача".)
Ці інтерфейси дуже чітко визначені, тому коли ви здійснюєте виклик функції на апаратний чіп, він буде відповідати запитуваною інформацією. Мікросхема контролера акумулятора - лише один із прикладів такої загальної інфраструктури.
Хто пише, код операційної системи отримує документацію для мікросхеми і записує програмне забезпечення для зв'язку з мікросхемою та отримання потрібної інформації.
Тож наступного разу, коли ви завантажите "драйвер" (або це робиться автоматично) для зовнішнього жорсткого диска, USB-накопичувача чи чогось іншого, ви зрозумієте трохи більше про те, як все відбувається "під капотом".