Como o sistema operacional é capaz de saber o nível da bateria?

34

Mesmo se removermos o sistema operacional padrão e instalarmos um novo, ele poderá interagir com a bateria. Existem alguns drivers para isso? Como isso funciona?

    
por green 05.10.2018 / 11:44

3 respostas

33

O sistema operacional faz interface com o firmware de um controlador embarcado que faz parte do Configuração avançada e interface de energia (ACPI).

A Wikipedia define como:

In a computer, the Advanced Configuration and Power Interface (ACPI) provides an open standard that operating systems can use to discover and configure computer hardware components, to perform power management by (for example) putting unused components to sleep, and to perform status monitoring. First released in December 1996, ACPI aims to replace Advanced Power Management (APM), the MultiProcessor Specification, and the Plug and Play BIOS (PnP) Specification.[1] ACPI brings the power management under the control of the operating system, as opposed to the previous BIOS-centric system that relied on platform-specific firmware to determine power management and configuration policies.

Internally, ACPI advertises the available components and their functions to the operating system kernel using instruction lists ("methods") provided through the system firmware (Unified Extensible Firmware Interface (UEFI) or BIOS), which the kernel parses. ACPI then executes the desired operations (such as the initialization of hardware components) using an embedded minimal virtual machine.

A resposta é que um circuito ou micro-chip está embutido na placa-mãe, que em si contém um micro sistema operacional que disponibiliza alguns serviços através do firmware do computador - UEFI ou BIOS. Controla muitos aspectos de gerenciamento de energia e dispositivos.

O sistema operacional do computador possui um driver de sistema dedicado à interface com ACPI. Uma vez que a ACPI é ativada, ela assume o controle exclusivo de todos os aspectos gerenciamento de energia e configuração de dispositivos.

Em muitos aspectos, o ACPI é um sistema operacional por trás do seu sistema operacional, exceto que ele vem com a placa-mãe e não está sob seu controle. Houve vozes comparando-o a um cavalo de Tróia e chamando-o um risco de segurança. Pode ser desativado, mas alguns computadores podem não inicializar sem ele, e o gerenciamento avançado de energia é, em qualquer caso, desativado também.

Para mais informações sobre seu uso no Windows, consulte o artigo Projeto de hardware do subsistema de energia e bateria .

    
por 05.10.2018 / 12:18
57

Como complemento da outra resposta, como o software executado no computador sabe qual é o nível da bateria? Ele pede a bateria.

A maioria das baterias de laptop são baterias inteligentes que possuem seu próprio microcontrolador ou ASIC de "medidor de combustível", que o host pode comunicar com mais de SMBus. As pessoas têm engenharia reversa de alguns exemplos.

O SMBus pode ou não ser exposto diretamente ao sistema operacional de uma forma que permita ao administrador consultá-lo diretamente. Existem vários programas como o OpenHardwareMonitor ou o Speccy ou lm-sensors que podem interrogar o barramento para descobrir o hardware.

    
por 05.10.2018 / 12:57
2

Em geral, todos os chips de computador têm documentação que informa aos designers e programadores o que eles fazem e como configurá-los para isso. O acesso de baixo nível a esses chips pode ser feito lendo e gravando diretamente nos registros do chip.

Os chips mais complicados podem vir com um programa chamado "driver" que permite acesso de alto nível ao sistema operacional ou até mesmo a outros aplicativos. Seu smartphone, por exemplo, possui uma interface de programação de aplicativos (API) que permite acesso a grande parte do hardware, GPS, acelerômetro, bateria, câmera do telefone etc. Quando você escreve um "App", pode acessar esses dispositivos usando a API assim como o sistema operacional pode (embora o sistema operacional geralmente tenha acesso mais extensivo do que um programa em execução no 'espaço do usuário').

Essas interfaces são muito bem definidas para que, quando você faz uma chamada de função ao chip de hardware, ele responda com as informações solicitadas. O chip do controlador da bateria é apenas um exemplo dessa infraestrutura genérica.

Quem escreve o código do sistema operacional obtém a documentação do chip e grava o software para se comunicar com o chip e recuperar as informações desejadas.

Então, da próxima vez que você carregar um 'driver' (ou ele é feito automaticamente) para um disco rígido externo, pendrive USB ou qualquer outra coisa, você entenderá um pouco mais sobre como as coisas acontecem 'sob o capô' .

    
por 06.10.2018 / 01:47