Wie kann das Betriebssystem den Akkuladestand ermitteln?

8547
green

Selbst wenn wir das Standard-Betriebssystem entfernen und ein neues installieren, kann es mit der Batterie interagieren. Gibt es Treiber dafür? Wie funktioniert es?

34

3 Antworten auf die Frage

57
pjc50

Wie kann die auf dem Computer ausgeführte Software wissen, wie der Akkuladestand ist? Es fragt die Batterie.

Bei den meisten Laptop-Akkus handelt es sich um Smart-Akkus, die über einen eigenen Mikrocontroller oder ASIC verfügen, mit dem der Host über den SMBus kommunizieren kann. Die Menschen haben einige Beispiele zurückentwickelt.

Der SMBus kann direkt auf dem Betriebssystem verfügbar sein oder nicht, so dass der Administrator es direkt abfragen kann. Es gibt verschiedene Programme wie OpenHardwareMonitor oder Speccy oder LM-Sensoren, die den Bus abfragen können, um mehr über die Hardware zu erfahren.

eine großartige Erklärung, um das Grundkonzept allgemein zu verstehen! Ich würde zwar Anführungszeichen um das Wort "Fragen" setzen. Albin vor 5 Jahren 0
Es gibt keinen Konflikt mit meiner Antwort: SMBus ist eine Komponente, die von ACPI für mobile Computer verwaltet wird, in denen sie existiert. harrymc vor 5 Jahren 0
Diese intelligente Batterieschnittstelle kann auch durch standardisiertere Mittel wie USB zugänglich gemacht werden. Zum Beispiel haben viele USVs einen USB-Anschluss, der dem Computer beim Anschließen an den Computer die verbleibende Stromstärke mitteilt und diese wie ein Laptop anzeigt. TheHansinator vor 5 Jahren 1
@TheHansinator Ich würde behaupten, dass SMBus die Standardmittel für die Kommunikation mit einer intelligenten Batterie sind. Fast alle Telefone und Laptops verwenden es, was wesentlich mehr Systeme als externe USV-Geräte bedeutet. Austin Hemmelgarn vor 5 Jahren 2
@AustinHemmelgarn True. Vielleicht ist ein besseres Wort "konventionell", da das System mehr oder weniger eine Betriebssystemabstraktion ist, die Geräte außer eingebetteten Batterien verwenden können. TheHansinator vor 5 Jahren 0
33
harrymc

Das Betriebssystem hat eine Schnittstelle mit der Firmware eines eingebetteten Controllers, der Bestandteil des Advanced Configuration and Power Interface (ACPI) ist.

Wikipedia definiert es als:

Auf einem Computer stellt ACPI (Advanced Configuration and Power Interface) einen offenen Standard bereit, mit dem Betriebssysteme Computerhardwarekomponenten ermitteln und konfigurieren, Energieverwaltung durchführen können, indem beispielsweise nicht verwendete Komponenten in den Ruhezustand versetzt werden und die Statusüberwachung durchgeführt wird . ACPI wurde im Dezember 1996 veröffentlicht und soll Advanced Power Management (APM), die Multi-Prozessor-Spezifikation und die Plug-and-Play-BIOS- (PnP-) Spezifikation ersetzen. [1] ACPI stellt die Energieverwaltung unter die Kontrolle des Betriebssystems. Im Gegensatz zu dem vorherigen BIOS-basierten System, das auf plattformspezifische Firmware zur Festlegung der Energieverwaltungs- und Konfigurationsrichtlinien angewiesen ist.

Intern gibt ACPI dem Betriebssystemkern die verfügbaren Komponenten und deren Funktionen mithilfe von Anweisungslisten ("Methoden") bekannt, die über die Systemfirmware (Unified Extensible Firmware Interface (UEFI) oder BIOS) bereitgestellt werden, die der Kernel analysiert. ACPI führt dann die gewünschten Operationen (z. B. die Initialisierung von Hardwarekomponenten) mithilfe einer eingebetteten virtuellen Minimalmaschine aus.

Die Antwort ist dann, dass eine Schaltung oder ein Mikrochip in die Hauptplatine eingebettet ist, die selbst ein Mikrobetriebssystem enthält, das einige Dienste über die Computerfirmware zur Verfügung stellt - UEFI oder BIOS. Es steuert viele Aspekte der Energie- und Geräteverwaltung.

Das Betriebssystem des Computers verfügt über einen Systemtreiber, der für die Schnittstelle zu ACPI vorgesehen ist. Sobald ACPI aktiviert ist, übernimmt es die alleinige Kontrolle über alle Aspekte der Energieverwaltung und Gerätekonfiguration.

In vielen Aspekten ist ACPI ein Betriebssystem hinter Ihrem Betriebssystem, mit der Ausnahme, dass es mit dem Motherboard geliefert wird und nicht unter Ihrer Kontrolle steht. Es gab Stimmen, die es mit einem trojanischen Pferd vergleichen und es als Sicherheitsrisiko bezeichnen. Es ist möglicherweise deaktiviert, aber einige Computer starten möglicherweise nicht ohne, und die erweiterte Energieverwaltung ist auf jeden Fall ebenfalls deaktiviert.

Weitere Informationen zur Verwendung unter Windows finden Sie im Artikel Hardware- Design für Batterie- und Stromversorgungssystem .

Ich könnte falsch sein, aber es klingt, als würde die Beschreibung des letzten Absatzes ACPI vollständig mit [SMM] (https://en.wikipedia.org/wiki/System_Management_Mode) und / oder mit Intels [ME / AMT] (https: // de.) Verwechseln .wikipedia.org / wiki / Intel_Active_Management_Technology). ACPI ist meist eine statische Datenstruktur mit kleinen Bytecode-Werten, die das Betriebssystem selbst interpretieren muss, während ME das eigentliche System ist. grawity vor 5 Jahren 1
@grawity: Glaub nicht so. Eine ähnliche Diskussion finden Sie im Wikipedia-Artikel zu ACPI. harrymc vor 5 Jahren 1
Ich sehe nicht viel Diskussion darin, abgesehen von ein paar Zitaten aus einem einzigen Blogeintrag von Shuttleworth, und nachdem ich beide Seiten gelesen habe, bin ich nicht im geringsten überzeugt - es scheint mir, dass er alles zusammenbringt, was mit dem System untergeht "ACPI" Name, sei es das BIOS oder der Intel ME oder was auch immer. Soweit ich weiß, ist ACPI wahrscheinlich der einzige Teil, der aus dem Müll eines modernen Systems stammt, der nicht von alleine läuft, und sicherlich nicht unter dem Betriebssystem. grawity vor 5 Jahren 1
@ grawity ACPI enthält jedoch auch eine Schnittstelle für die Ausführung von Code auf Firmware-Ebene. Auf diese Weise geschieht eine Vielzahl von Firmware-Interaktionen, die damit verbunden sind. Auf bestimmten Systemen wird sogar SMM für die eigentliche Code-Ausführung verwendet, obwohl dies zum Glück immer seltener wird. Austin Hemmelgarn vor 5 Jahren 2
@ grawity: Ja, ACPI tut nichts in dem Sinne, dass es sich nur um einen Controller handelt. Das UEFI / BIOS verwaltet auf ähnliche Weise Geräte und befindet sich in der Hardware-Hierarchie an einer höheren Stelle. Eines davon ist das ACPI. Funktionen werden auf jeder Ebene externalisiert und mit jeder Ebene immer mehr generalisiert. Software wie Betriebssysteme ist im Wesentlichen auf die gleiche Art und Weise der Verallgemeinerung aufgebaut, wie der Mensch komplexe Probleme angreift. harrymc vor 5 Jahren 0
Die Antwort hier ist am korrektesten. Acpi besteht jedoch größtenteils aus einer Nachschlagetabelle. Schwerkraft ist eine verwirrende Diskussion über die Abneigung des Linux-Gründers nach Uefi und nicht nach ACPI. Acpi ist eine logische Lösung, während Uefi ein sehr aufgeblähtes Bios ist. Außerdem macht uefi Linux im Wesentlichen etwas unbrauchbar, was Linus motiviert, dagegen zu sein. Acpi und Uefi haben nichts miteinander zu tun. Intel me ist eine sichere Ausführungs-Engine, die mit allen Aspekten der Firmware interagiert, die Bios, Uefi oder OS ausmacht marshal craft vor 5 Jahren 0
Um es kurz zu machen (dies ist alles sehr viel mehr als das), verifiziert Intel alles, was vom Prozessor ausgeführt wird. Zusätzlich enthält es einen Mikrocode, der per Fernzugriff von Intel aktualisiert wird. Der Mikrocode läuft zuerst. Der Prozessor nach und während ich Mikrocode ausführt, lädt zunächst keinen Intel-Code von SPI-Flash. Der Flash verfügt über einen Flash-Deskriptorabschnitt, der einem Inhaltsverzeichnis entspricht. Hier können die Firmware-Entwickler die Struktur des Flashs steuern. Es muss und muss einen Abschnitt mit sicherer Ausführung enthalten, der in der Regel sicherstellen muss, dass die Firmware tatsächlich von einer vertrauenswürdigen Partei signiert ist. marshal craft vor 5 Jahren 0
Die Signaturen usw., Signiermechanismen, werden in gesicherten Registern gespeichert, die Sicherungen haben, damit sie nur lesbar werden. Apple hat sich insbesondere nicht die Mühe gemacht, diese Einstellungen korrekt zu konfigurieren, sodass Remotebenutzer diese Funktionen böswillig ändern und verwenden können. Obwohl es sich dabei um Intel-Fehler handelt, hat Apple sich nicht die Mühe gemacht, diese zu konfigurieren. Trotzdem ist das meiste davon im öffentlichen Bereich nicht dokumentiert. Intel wählt OEMs aus und stellt ihnen Dokumentation zur Verfügung. Darüber hinaus kann die sichere Ausführungs-Engine Java wie Scrypts ausführen, auf drahtlose Netzwerke zugreifen und sogar ausgeführt werden, wenn der PC ausgeschaltet ist. marshal craft vor 5 Jahren 0
Acpi und Uefi sind zwei Hauptdokumente, die die erforderliche Firmware definieren, um ein Windows-Gerät aufzurufen. Beide sind sehr gut dokumentiert und gemeinfrei. Intel ist der Hauptentwickler der Uefi-Dokumentation UND der UEFI-Firmware. Microsoft ist hauptsächlich für die Entwicklung von Acpi verantwortlich. Als solches beschreibt dies einige, was sie mehr betreffen. Sobald das Windows oder Linux Bootliader ausgeführt wird (als Uefi-Skript), übernimmt das Betriebssystem von diesem Punkt aus, und der Prozessor wechselt den Ausführungsstatus, und Uefi ist fertig. Deshalb ist uefi irgendwie dumm. marshal craft vor 5 Jahren 0
Wir sprachen über sehr fortgeschrittenes BIOS, das im Grunde ein eigenständiges Betriebssystem ist, das tragbare ausführbare Programme ausführen kann. Chrome-Bücher sind im Grunde uefi, die chrome.exe ausführen. Bei all dieser Komplexität müssen Sie einfach die Hardware prüfen und das Betriebssystem laden und dann bis zum nächsten Neustart nichts tun. marshal craft vor 5 Jahren 0
Acpi hingegen wird von Uefi Obligator und OS-Treibern verwendet. Uefi hat jetzt Treiber und benötigt Treiber. Die Verwendung von Uefi-Treibern für Windows verringert jedoch die Leistung. Windows benötigt wirklich speziell entwickelte Treiber, kann aber fällig werden. Acpi besteht hauptsächlich aus einer Tabelle und einem AML, bei dem es sich im Wesentlichen um eine hardwarespezifische Baugruppe handelt. marshal craft vor 5 Jahren 0
Noch wichtiger ist, dass der Stammtreiber in Windows ACPI.SYS ist. Alle anderen Treiber sind diesem Treiber untergeordnet. Dieser Treiber ist ein grundlegender Bestandteil des Windows-Kernel-Treibergerüsts. Zum Beispiel wäre der PCI-Bus ein Bustreiber und wird von acpi.sys geladen marshal craft vor 5 Jahren 0
@ Marshalcraft: Nirgendwo in meinen Posts habe ich auf Linus Torvalds (den Schöpfer von Linux) hingewiesen. Mark Shuttleworth ist der Gründer der Ubuntu Linux-Distribution, aber er hat Linux nicht selbst erstellt. grawity vor 5 Jahren 0
Besser ist die Frage, wo an welcher Stelle in dieser Diskussion es darauf ankommt, wer Linux entwickelt hat. Das ist auch nicht mehr da. Hier geht es um acpi. Linus hat vor allem öffentlich Bedenken hinsichtlich der Uefi geäußert. Der Grund, warum ich diesen Punkt angesprochen habe, ist, dass es viele Gründe gibt, der Verwendung von Uefi zu widersprechen. Acpi dagegen dient eher einem nachweisbaren Zweck. Aber die beiden sind verwandt und Uefi erfordert Akupunktur. marshal craft vor 5 Jahren 0
Ich versuche nicht, jemanden zu diskreditieren, sondern eine genauere Beschreibung zu geben. Ich glaube, dass dies ein Kernproblem ist, das die Menschheit betrifft. Niemand kann die Rolle von Intel in der menschlichen Gesellschaft in Frage stellen. Derzeit ist die intellektuelle Behandlung seiner Sendung (formal ich) ein kritischer Punkt. Uefi und ACPI hängen grundsätzlich zusammen, jedoch ist das Kernproblem die vertrauenswürdige Ausführungs-Engine. marshal craft vor 5 Jahren 0
Txe hat mehrere fragwürdige ethische Probleme. Eines ist die Einführung des Wunsches, das Eigentum des Kunden ohne deren Zustimmung zu nutzen, geschweige denn Wissen. Ein dringenderes Problem ist jedoch die künstliche Eintrittsbarriere für OEM-Entwickler. Dies gipfelt in einer Technik. Mit gefälschungsfreiem Markt, gefälschten Innovationen, einem riesigen Hollywood-Set. Wo nur ein Pico-Prozent der Bevölkerung wirklich in der Lage ist, innovativ zu sein und eine Rolle in der Gesellschaft zu spielen. marshal craft vor 5 Jahren 0
Machen Sie keinen Zweifel darüber, dass dies nur ein gefälschtes Hollywood-Set ist, ein sorgfältig aufgesetztes Monopolspiel, bei dem das Ergebnis sorgfältig vorausberechnet wird. Die einzige wirkliche Lösung ist jedoch die Senkung der Kosten für die Halbleiterentwicklung, die nur durch ein starkes öffentliches Bewusstsein für die chemische / physikalische Welt und ein stärkeres Bewusstsein für die eigenen Fähigkeiten erreicht werden kann. marshal craft vor 5 Jahren 0
2
CramerTV

Im Allgemeinen verfügen alle Computerchips über eine Dokumentation, die Konstrukteuren und Programmierern mitteilt, was sie tun und wie sie dafür konfiguriert werden müssen. Der Zugriff auf diese Chips auf niedriger Ebene kann durch direktes Lesen und Schreiben in die Register des Chips erfolgen.

Kompliziertere Chips können mit einem Softwareprogramm geliefert werden, das als "Treiber" bezeichnet wird und den Zugriff auf das Betriebssystem oder andere Anwendungen auf hoher Ebene ermöglicht. Ihr Smartphone verfügt beispielsweise über eine Anwendungsprogrammierschnittstelle (Application Programming Interface, API), mit der Sie auf einen Großteil der Hardware, des GPS, des Beschleunigungssensors, des Akkus, der Kamera usw. des Telefons zugreifen können. Wenn Sie eine "App" schreiben, können Sie über die API auf diese Hardwaregeräte zugreifen So wie das Betriebssystem dies kann (obwohl das Betriebssystem normalerweise einen umfassenderen Zugriff hat als ein Programm, das im Benutzerbereich ausgeführt wird.)

Diese Schnittstellen sind sehr gut definiert, so dass ein Funktionsaufruf des Hardware-Chips mit den angeforderten Informationen reagiert. Der Batteriecontroller-Chip ist nur ein Beispiel für diese generische Infrastruktur.

Wem auch immer der Betriebssystemcode geschrieben wird, erhält die Dokumentation für den Chip und schreibt Software, um mit dem Chip zu kommunizieren und die gewünschten Informationen abzurufen.

Wenn Sie also das nächste Mal einen "Treiber" für eine externe Festplatte, einen USB-Stick oder etwas anderes laden (oder es erfolgt automatisch), werden Sie ein wenig mehr darüber verstehen, wie "unter der Haube" etwas passiert.