운영 체제는 배터리 수준을 어떻게 알 수 있습니까?


34

기본 OS를 제거하고 새 OS를 설치하더라도 배터리와 상호 작용할 수 있습니다. 그것에 대한 몇 가지 드라이버가 있습니까? 어떻게 작동합니까?

답변:


33

운영 체제는 ACPI ( Advanced Configuration and Power Interface )의 일부인 내장 컨트롤러의 펌웨어 와 인터페이스 합니다.

Wikipedia는이를 다음과 같이 정의합니다.

컴퓨터에서 ACPI (Advanced Configuration and Power Interface)는 운영 체제가 컴퓨터 하드웨어 구성 요소를 검색 및 구성하고, 예를 들어 사용하지 않는 구성 요소를 절전 모드로 설정하고, 상태 모니터링을 수행하여 전원 관리를 수행하는 데 사용할 수있는 개방형 표준을 제공합니다. . 1996 년 12 월 처음 출시 된 ACPI는 APM (Advanced Power Management), 멀티 프로세서 사양 및 PnP (Plug and Play BIOS) 사양을 대체하는 것을 목표로합니다. [1] ACPI는 전원 관리 및 구성 정책을 결정하기 위해 플랫폼 별 펌웨어에 의존했던 이전 BIOS 중심 시스템과 달리 운영 체제의 제어하에 전원 관리를 제공합니다.

내부적으로 ACPI는 커널이 구문 분석하는 시스템 펌웨어 (UEFI (Unified Extensible Firmware Interface) 또는 BIOS)를 통해 제공되는 명령 목록 ( "메소드")을 사용하여 사용 가능한 구성 요소와 해당 기능을 운영 체제 커널에 알립니다. 그런 다음 ACPI는 내장 된 최소 가상 시스템을 사용하여 원하는 작업 (예 : 하드웨어 구성 요소 초기화)을 실행합니다.

대답은 회로 또는 마이크로 칩이 마더 보드에 내장되어 있으며, 그 자체에는 컴퓨터 펌웨어 (UEFI 또는 BIOS)를 통해 일부 서비스를 제공하는 마이크로 운영 체제가 포함되어 있습니다. 전원 및 장치 관리의 여러 측면을 제어합니다.

컴퓨터 운영 체제에는 ACPI와의 인터페이스 전용 시스템 드라이버가 있습니다. ACPI가 활성화되면 전원 관리 및 장치 구성의 모든 측면을 독점적으로 제어합니다.

많은 측면에서 ACPI는 운영 체제 뒤의 운영 체제입니다. 단, 마더 보드와 함께 제공되며 사용자가 제어 할 수는 없습니다. 트로이 목마를 좋아하고 보안 위험이라고 부르는 목소리가 있습니다. 비활성화되어있을 수 있지만 일부 컴퓨터는 부팅하지 않으면 고급 전원 관리가 비활성화됩니다.

Windows에서의 사용에 대한 자세한 정보는 배터리 및 전원 서브 시스템 하드웨어 설계 기사를 참조하십시오 .


1
내가 잘못했을 수도 있지만 마지막 단락의 설명이 ACPI를 SMM 및 / 또는 Intel의 ME / AMT 와 완전히 혼동하는 것처럼 들립니다 . ACPI는 대부분 정적 데이터 구조이며, OS 자체가 해석해야하는 적은 양의 바이트 코드가 있고 ME는 실제 시스템입니다.
grawity

1
@grawity : 그렇게 생각하지 마십시오. Wikipedia ACPI 기사에서 비슷한 토론을 찾을 수 있습니다.
harrymc

1
그는 단지 덩어리 것을 그것은 나에게 보인다 - 나는 하나 개의 셔틀 워스의 한 블로그 게시물에서, 나는 조금의 확신 아니에요 두 페이지를 읽은 후 몇 따옴표를 넘어 거기에 많은 토론이 표시되지 않는 모든 언더 시스템과 함께 제공 "ACPI"이름, BIOS 또는 Intel ME 등 내가 아는 한, 현대 시스템과 함께 제공되는 모든 쓰레기 중에서 ACPI는 아마도 자체적으로 실행 되지 않고 OS 에서 확실히 실행 되지 않는 유일한 부분 일 것입니다 .
grawity

2
@grawity ACPI에는 펌웨어 레벨 코드 실행 인터페이스도 포함되어 있습니다. 실제로 이와 관련된 많은 펌웨어 상호 작용이 발생합니다. 특정 시스템에서는 실제 코드 실행에 SMM을 사용하기도하지만 점점 더 많이 사용되지는 않습니다.
Austin Hemmelgarn

@grawity : 그렇습니다. ACPI는 단지 컨트롤러라는 의미에서 아무 것도하지 않습니다. UEFI / BIOS도 마찬가지로 장치를 관리하고 하드웨어 계층 구조에서 상위에 배치되며 그 중 하나가 ACPI입니다. 기능은 각 레벨에서 외부화되며 각 레벨에 따라 점점 일반화됩니다. 운영 체제와 같은 소프트웨어는 일반화 수준과 거의 동일한 방식으로 설계되어 인간이 복잡한 문제를 공격하는 방식입니다.
harrymc

57

다른 답변을 보완하기 위해 컴퓨터에서 실행되는 소프트웨어는 배터리 잔량을 어떻게 알 수 있습니까? 배터리를 묻습니다.

대부분의 랩탑 배터리는 호스트가 SMBus를 통해 통신 할 수있는 자체 마이크로 컨트롤러 또는 "연료 게이지"ASIC 이있는 스마트 배터리 입니다. 사람들은 몇 가지 예를 리버스 엔지니어링했습니다.

SMBus는 관리자가 직접 쿼리 할 수있는 방식으로 운영 체제에 직접 노출되거나 노출되지 않을 수 있습니다. OpenHardwareMonitor 또는 Speccy와 같은 다양한 프로그램이나 버스를 조사하여 하드웨어에 대해 알아볼 수있는 lm 센서가 있습니다.


기본 개념을 이해하기위한 훌륭한 설명! "asks"라는 단어 주위에 광고 인용 부호를 사용하지만
Albin

내 대답과 충돌이 없습니다. SMBus는 ACPI가있는 모바일 컴퓨터의 ACPI에서 관리하는 구성 요소입니다.
harrymc

1
이 스마트 배터리 인터페이스는 USB와 같은보다 표준적인 수단을 통해 노출 될 수도 있습니다. 예를 들어, 많은 UPS에는 USB 포트가있어 컴퓨터에 연결하면 컴퓨터에 남아있는 전력량을 알려주고 랩탑처럼 표시합니다.
TheHansinator

2
@TheHansinator SMBus 스마트 배터리와 통신하는 표준 수단 이라고 주장합니다 . 거의 모든 전화 및 랩톱에서 외부 UPS 장치를 사용하는 것보다 훨씬 더 많은 시스템 인이 장치를 사용합니다.
Austin Hemmelgarn

@AustinHemmelgarn 맞습니다. 시스템이 내장 배터리 이외의 장치가 사용할 수있는 OS 추상화라는 점에서 더 나은 단어는 "종래"입니다.
TheHansinator

2

보다 일반적으로 모든 컴퓨터 칩에는 설계자와 프로그래머에게 자신이하는 일과이를 구성하는 방법을 알려주는 설명서가 있습니다. 칩의 레지스터에 직접 읽고 쓰면 이러한 칩에 대한 저수준 액세스가 가능합니다.

더 복잡한 칩에는 운영 체제 또는 다른 응용 프로그램에 대한 높은 수준의 액세스를 허용하는 '드라이버'라는 소프트웨어 프로그램이 제공 될 수 있습니다. 예를 들어, 스마트 폰에는 대부분의 전화 하드웨어, GPS, 가속도계, 배터리, 카메라 등에 액세스 할 수있는 API (Application Programming Interface)가 있습니다. "앱"을 작성할 때 API를 사용하여 이러한 하드웨어 장치에 액세스 할 수 있습니다 운영 체제에서와 마찬가지로 (OS는 일반적으로 '사용자 공간'에서 실행되는 프로그램보다 더 광범위한 액세스 권한을 갖지만)

이러한 인터페이스는 하드웨어 칩을 함수 호출 할 때 요청 된 정보로 응답 할 수 있도록 잘 정의되어 있습니다. 배터리 컨트롤러 칩은이 일반적인 인프라의 한 예일뿐입니다.

운영 체제 코드를 작성하는 사람은 칩에 대한 문서를 가져오고 칩과 통신하고 원하는 정보를 검색하기 위해 소프트웨어를 작성합니다.

따라서 다음에 외장 하드 드라이브, USB 썸 드라이브 또는 기타 장치에 대해 '드라이버'(또는 자동으로 수행)를로드하면 '후드'아래에서 발생하는 상황에 대해 조금 더 이해할 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.