操作系统如何知道电池电量?

gre*_*een 37 battery operating-systems

即使我们删除默认操作系统并安装新操作系统,它也可以与电池交互。是否有一些驱动程序?它是如何工作的?

pjc*_*c50 59

作为另一个答案的补充,计算机上运行的软件如何知道电池电量是多少?它询问电池。

大多数笔记本电脑电池都是智能电池,它们有自己的微控制器或“电量计”ASIC,主机可以通过 SMBus 与它们进行通信。人们对一些例子进行了逆向工程。

SMBus 可能会或可能不会以允许管理员直接查询的方式直接暴露给操作系统。有各种程序,如 OpenHardwareMonitor 或 Speccy 或 lm-sensors,可以询问总线以了解硬件。

  • @TheHansinator 我认为 SMBus _is_ 是与智能电池通信的标准方式。几乎所有手机和笔记本电脑都使用它,这比使用外部 UPS 设备的系统要多得多。 (2认同)

har*_*ymc 33

操作系统与作为高级配置和电源接口(ACPI)一部分的嵌入式控制器的固件连接 。

维基百科将其定义为:

在计算机中,高级配置和电源接口 (ACPI) 提供了一个开放标准,操作系统可以使用该标准来发现和配置计算机硬件组件、通过(例如)将未使用的组件置于睡眠状态来执行电源管理以及执行状态监视. ACPI 于 1996 年 12 月首次发布,旨在取代高级电源管理 (APM)、多处理器规范和即插即用 BIOS (PnP) 规范。 [1] ACPI 将电源管理置于操作系统的控制之下,这与之前的以 BIOS 为中心的系统相反,后者依赖于特定于平台的固件来确定电源管理和配置策略。

在内部,ACPI 使用通过内核解析的系统固件(统一可扩展固件接口 (UEFI) 或 BIOS)提供的指令列表(“方法”)向操作系统内核通告可用组件及其功能。然后 ACPI 使用嵌入式最小虚拟机执行所需的操作(例如硬件组件的初始化)。

答案是电路或微芯片嵌入在主板中,它本身包含一个微型操作系统,该操作系统通过计算机固件(UEFI 或 BIOS)提供一些服务。它控制电源和设备管理的许多方面。

计算机操作系统有一个专用于与 ACPI 接口的系统驱动程序。一旦 ACPI 被激活,它就会对电源管理和设备配置的所有方面进行独占控制。

在许多方面,ACPI 是操作系统背后的操作系统,只是它随主板一起提供,不受您的控制。有人将其比作特洛伊木马,并称其为安全风险。它可能被禁用,但有些计算机可能无法在没有它的情况下启动,并且在任何情况下高级电源管理也会被禁用。

有关其在 Windows 中使用的更多信息,请参阅文章 电池和电源子系统硬件设计

  • 不过,@grawity ACPI 也包含固件级代码执行接口,这就是涉及它的大量固件交互实际发生的方式。在某些系统上,这甚至使用 SMM 进行实际的代码执行,但幸运的是,这种情况越来越少见。 (2认同)