W jaki sposób system operacyjny może poznać poziom naładowania baterii?

34

Nawet jeśli usuniemy domyślny system operacyjny i zainstalujemy nowy, może on współpracować z baterią. Czy są jakieś sterowniki? Jak to działa?

Zielony
źródło

Odpowiedzi:

33

System operacyjny łączy się z oprogramowaniem wbudowanym kontrolera, który jest częścią interfejsu Advanced Configuration and Power Interface (ACPI).

Wikipedia definiuje to jako:

W komputerze zaawansowany interfejs konfiguracji i zasilania (ACPI) zapewnia otwarty standard, za pomocą którego systemy operacyjne mogą wykrywać i konfigurować komponenty sprzętowe komputera, zarządzać energią poprzez (na przykład) uśpienie nieużywanych komponentów oraz monitorowanie stanu . Po raz pierwszy wydany w grudniu 1996 r., ACPI ma na celu zastąpienie Advanced Power Management (APM), specyfikacji MultiProcessor i specyfikacji Plug and Play BIOS (PnP). [1] ACPI przejmuje zarządzanie energią pod kontrolą systemu operacyjnego, w przeciwieństwie do poprzedniego systemu skoncentrowanego na BIOS-ie, który opierał się na oprogramowaniu układowym specyficznym dla platformy, aby określić zasady zarządzania energią i konfiguracji.

ACPI wewnętrznie reklamuje dostępne komponenty i ich funkcje w jądrze systemu operacyjnego za pomocą list instrukcji („metod”) dostarczanych przez oprogramowanie układowe systemu (Unified Extensible Firmware Interface (UEFI) lub BIOS), które jądro analizuje. ACPI wykonuje następnie pożądane operacje (takie jak inicjowanie komponentów sprzętowych) przy użyciu wbudowanej minimalnej maszyny wirtualnej.

Odpowiedź brzmi: obwód lub mikroukład jest wbudowany w płytę główną, która sama zawiera mikro system operacyjny, który udostępnia niektóre usługi za pośrednictwem oprogramowania układowego komputera - UEFI lub BIOS. Kontroluje wiele aspektów zarządzania energią i urządzeniami.

System operacyjny komputera ma sterownik systemowy dedykowany do interfejsu z ACPI. Po aktywacji ACPI przejmuje wyłączną kontrolę nad wszystkimi aspektami zarządzania energią i konfiguracji urządzenia.

W wielu aspektach ACPI jest systemem operacyjnym za twoim systemem operacyjnym, z tym wyjątkiem, że pochodzi z płyty głównej i nie jest pod twoją kontrolą. Pojawiły się głosy porównujące go do konia trojańskiego i nazywające go zagrożeniem bezpieczeństwa. Może być wyłączony, ale niektóre komputery mogą się bez niego uruchomić, a zaawansowane zarządzanie energią jest w każdym przypadku również wyłączone.

Aby uzyskać więcej informacji na temat jego zastosowania w systemie Windows, zobacz artykuł Projekt baterii i podsystemu zasilania .

harrymc
źródło
1
Mogę się mylić, ale wygląda na to, że opis ostatniego akapitu całkowicie myli ACPI z SMM i / lub z ME / AMT Intela . ACPI jest w większości statyczną strukturą danych, z niewielką ilością kodu bajtowego, który sam system operacyjny musi interpretować, podczas gdy ME jest rzeczywistym systemem.
grawity
1
@grawity: Nie myśl tak. Podobną dyskusję możesz znaleźć w artykule na temat Wikipedii ACPI.
harrymc
1
Nie widzę tam wiele dyskusji poza kilkoma cytatami z jednego posta na jednym blogu Shuttlewortha, a po przeczytaniu obu stron nie jestem przekonany w najmniejszym stopniu - wydaje mi się, że po prostu zbija wszystko , co pochodzi z systemem pod Nazwa „ACPI”, czy to BIOS, Intel ME czy cokolwiek innego. O ile wiem, ze wszystkich śmieci, które pochodzą z nowoczesnego systemu, ACPI jest prawdopodobnie jedyną częścią, która nie działa sama, a na pewno nie w systemie operacyjnym.
grawitacja
2
@grawity ACPI zawiera również interfejs do wykonywania kodu na poziomie oprogramowania układowego, w ten sposób faktycznie dzieje się wiele interakcji oprogramowania układowego z tym związanych. W niektórych systemach używa nawet SMM do faktycznego wykonania kodu, choć na szczęście staje się to coraz mniej powszechne.
Austin Hemmelgarn
@grawity: Tak, ACPI nic nie robi w tym sensie, że jest tylko kontrolerem. UEFI / BIOS podobnie zarządza urządzeniami i znajduje się wyżej w hierarchii sprzętowej, a jednym z nich jest ACPI. Funkcje są uzewnętrzniane na każdym poziomie, a także stają się coraz bardziej uogólnione z każdym poziomem. Oprogramowanie, takie jak systemy operacyjne, zostało zaprojektowane w taki sam sposób, jak poziomy uogólnienia, czyli w jaki sposób ludzie atakują złożone problemy.
harrymc
57

Jako uzupełnienie drugiej odpowiedzi, w jaki sposób oprogramowanie działające na komputerze wie, jaki jest poziom naładowania baterii? Pyta o baterię.

Większość baterii laptopów to inteligentne baterie, które mają własny mikrokontroler lub układ ASIC „wskaźnika poziomu paliwa”, z którym host może komunikować się za pośrednictwem SMBus. Ludzie poddali inżynierii wstecznej kilka przykładów.

SMBus może, ale nie musi, być narażony bezpośrednio na system operacyjny w sposób, który pozwala administratorowi na bezpośrednie zapytanie. Istnieją różne programy, takie jak OpenHardwareMonitor lub Speccy lub czujniki lm, które mogą przesłuchiwać magistralę w celu uzyskania informacji o sprzęcie.

pjc50
źródło
świetne wyjaśnienie, aby zrozumieć podstawową koncepcję w ogóle! Chociaż chciałbym wstawić cudzysłowy wokół słowa „pyta”.
Albin,
Nie ma konfliktu z moją odpowiedzią: SMBus to komponent zarządzany przez ACPI dla komputerów mobilnych, w których istnieje.
harrymc
1
Ten inteligentny interfejs baterii można również ujawnić za pomocą bardziej standardowych środków, takich jak USB. Na przykład wiele UPS-ów ma port USB, który po podłączeniu do komputera informuje komputer o pozostałej mocy i wyświetla go tak, jak robi to laptop.
TheHansinator,
2
@TheHansinator Twierdzę, że SMBus jest standardowym środkiem komunikacji z inteligentną baterią. Korzystają z niego prawie wszystkie telefony i laptopy, co stanowi o wiele więcej systemów niż zewnętrznych urządzeń UPS.
Austin Hemmelgarn,
@AustinHemmelgarn True. Być może lepszym słowem jest „konwencjonalne”, ponieważ system jest mniej więcej abstrakcją systemu operacyjnego, z której mogą korzystać urządzenia oprócz wbudowanych baterii.
TheHansinator,
2

Mówiąc bardziej ogólnie, wszystkie układy komputerowe mają dokumentację, która mówi projektantom i programistom, co robią i jak je skonfigurować. Dostęp do tych układów na niskim poziomie można uzyskać poprzez odczyt i zapis bezpośrednio w rejestrach układu.

Bardziej skomplikowane układy scalone mogą być dostarczane z programem zwanym „sterownikiem”, który umożliwia dostęp na wysokim poziomie do systemu operacyjnego lub nawet innych aplikacji. Twój smartfon ma na przykład interfejs programowania aplikacji (API), który umożliwia dostęp do dużej części sprzętu, GPS, akcelerometru, baterii, aparatu itp. Podczas pisania „aplikacji” można uzyskać dostęp do tych urządzeń za pomocą interfejsu API tak jak system operacyjny (chociaż system operacyjny ma zwykle szerszy dostęp niż program działający w „przestrzeni użytkownika”).

Interfejsy te są bardzo dobrze zdefiniowane, więc kiedy wywołasz funkcję do układu sprzętowego, odpowie on żądanymi informacjami. Układ kontrolera baterii to tylko jeden przykład takiej ogólnej infrastruktury.

Ktokolwiek pisze kod systemu operacyjnego, otrzymuje dokumentację mikroukładu i pisze oprogramowanie do komunikowania się z mikroukładem i wyszukiwania potrzebnych informacji.

Więc następnym razem, gdy załadujesz „sterownik” (lub zostanie to zrobione automatycznie) dla zewnętrznego dysku twardego, napędu USB lub czegoś innego, zrozumiesz nieco więcej o tym, jak to się dzieje „pod maską”.

CramerTV
źródło