Jawaban:
Sistem operasi berinteraksi dengan firmware pengontrol tertanam yang merupakan bagian dari Konfigurasi Lanjut dan Antarmuka Daya (ACPI).
Wikipedia mendefinisikannya sebagai:
Di komputer, Konfigurasi Lanjut dan Antarmuka Daya (ACPI) memberikan standar terbuka yang dapat digunakan sistem operasi untuk menemukan dan mengkonfigurasi komponen perangkat keras komputer, untuk melakukan manajemen daya dengan (misalnya) meletakkan komponen yang tidak digunakan ke mode tidur, dan untuk melakukan pemantauan status . Pertama kali dirilis pada Desember 1996, ACPI bertujuan untuk menggantikan Advanced Power Management (APM), Spesifikasi MultiProcessor, dan Spesifikasi Plug and Play BIOS (PnP). [1] ACPI membawa manajemen daya di bawah kendali sistem operasi, berbeda dengan sistem sentris-BIOS sebelumnya yang mengandalkan firmware khusus platform untuk menentukan manajemen daya dan kebijakan konfigurasi.
Secara internal, ACPI mengiklankan komponen yang tersedia dan fungsinya ke kernel sistem operasi menggunakan daftar instruksi ("metode") yang disediakan melalui firmware sistem (Unified Extensible Firmware Interface (UEFI) atau BIOS), yang diurai oleh kernel. ACPI kemudian menjalankan operasi yang diinginkan (seperti inisialisasi komponen perangkat keras) menggunakan mesin virtual minimal tertanam.
Jawabannya adalah kemudian bahwa sirkuit atau chip mikro tertanam di motherboard, yang berisi sistem operasi mikro yang menyediakan beberapa layanan melalui firmware komputer - UEFI atau BIOS. Ini mengontrol banyak aspek manajemen daya dan perangkat.
Sistem operasi komputer memiliki driver sistem yang didedikasikan untuk berinteraksi dengan ACPI. Setelah ACPI diaktifkan, diperlukan kontrol eksklusif dari semua aspek manajemen daya dan konfigurasi perangkat.
Dalam banyak aspek ACPI adalah sistem operasi di belakang sistem operasi Anda, kecuali bahwa ia datang dengan motherboard dan tidak di bawah kendali Anda. Ada suara-suara yang menyamakannya dengan kuda Trojan dan menyebutnya risiko keamanan. Mungkin dinonaktifkan, tetapi beberapa komputer mungkin tidak bisa boot tanpa itu, dan kemudian manajemen daya lanjutan dalam keadaan apa pun juga dinonaktifkan.
Untuk informasi lebih lanjut tentang penggunaannya di Windows, lihat artikel Baterai dan desain perangkat keras subsistem daya .
Sebagai pelengkap jawaban yang lain, bagaimana perangkat lunak yang berjalan di komputer mengetahui tingkat baterai? Ia meminta baterai.
Sebagian besar baterai laptop adalah baterai pintar yang memiliki mikrokontroler mereka sendiri atau "pengukur bahan bakar" ASIC, yang tuan rumah dapat berkomunikasi dengan melalui SMBus. Orang-orang telah merekayasa balik beberapa contoh.
SMBus mungkin atau mungkin tidak terpapar langsung ke sistem operasi dengan cara yang memungkinkan administrator untuk menanyakannya secara langsung. Ada berbagai program seperti OpenHardwareMonitor atau Speccy atau lm-sensor yang dapat menginterogasi bus untuk mencari tahu tentang perangkat keras.
Secara umum, semua chip komputer memiliki dokumentasi yang memberi tahu perancang dan programmer apa yang mereka lakukan dan cara mengkonfigurasinya untuk melakukannya. Akses tingkat rendah ke chip ini dapat dilakukan dengan membaca dan menulis langsung ke register chip.
Chip yang lebih rumit dapat datang dengan program perangkat lunak yang disebut 'driver' yang memungkinkan akses tingkat tinggi ke sistem operasi atau bahkan aplikasi lain. Ponsel pintar Anda, misalnya, memiliki Application Programming Interface (API) yang memungkinkan akses ke banyak perangkat keras ponsel, GPS, akselerometer, baterai, kamera, dll. Saat Anda menulis "App", Anda dapat mengakses perangkat perangkat keras ini menggunakan API. sama seperti sistem operasi dapat (meskipun OS biasanya memiliki akses lebih luas daripada program yang berjalan di 'ruang pengguna'.)
Antarmuka ini didefinisikan dengan sangat baik sehingga ketika Anda membuat panggilan fungsi ke chip perangkat keras, ia akan merespons dengan informasi yang diminta. Chip pengontrol baterai hanyalah salah satu contoh dari infrastruktur generik ini.
Siapa pun yang menulis kode sistem operasi mendapatkan dokumentasi untuk chip tersebut dan menulis perangkat lunak untuk berkomunikasi dengan chip tersebut dan mengambil informasi yang diinginkannya.
Jadi pada saat Anda memuat 'driver' (atau dilakukan secara otomatis) untuk hard drive eksternal, USB thumb drive, atau yang lainnya, Anda akan memahami sedikit lebih banyak tentang bagaimana hal-hal terjadi 'di bawah tenda'.