Warum können Betriebssysteme (normalerweise?) Nicht auf die BIOS-Einstellungen zugreifen?

20

Bietet das Motherboard nach dem Hochfahren keinen Bus zwischen der CPU und dem BIOS-Chip? Wenn ja, warum nicht?

Wenn die CPU die Lüftergeschwindigkeit steuern kann, kann ich nicht nachvollziehen, warum sie die BIOS-Konfiguration nicht steuern kann.

Dmiters
quelle
Wenn das BIOS den darin enthaltenen Bootloader nicht mehr ausführt, kann meines Erachtens mit IPMI gerechnet werden.
Linef4ult
Einige Motherboard-Hersteller haben dazu Dienstprogramme, aber diese Dienstprogramme sind spezifisch für dieses Motherboard. Windows hat sie nicht eingebaut, da dies eine schlechte Nachricht sein könnte, wenn Malware sie verwendet oder ein durchschnittlicher Benutzer in der BIOS-Konfiguration herumstochert.
Moab
Wie DavidPostill schon antwortete. Windows (und andere Betriebssysteme) können häufig auf das BIOS zugreifen. Dies hängt jedoch vom Chipsatz und der Hauptplatine ab und funktioniert möglicherweise nicht zu 100%. Wenn Sie von der BIOS-Firmware zur UEFI-Firmware wechseln, erhalten Sie jedoch mehr Kontrolle.
Hennes
Es ist schon eine Weile her, dass ich einen PC mit einem aktuellen BIOS gesehen habe. Wenn Sie UEFI meinen, ist es genau dort unter /sys/firmware/efiLinux.
Dmitry Grigoryev
Nachdem die Steuerung an das Betriebssystem übergeben wurde, wird das BIOS nicht verwendet. Sie können sogar den BIOS-Chip herausnehmen, um einen anderen zu programmieren, wenn das BIOS ein beschädigtes BIOS wiederherstellt oder erneut flasht.
AStopher

Antworten:

44

Warum können Betriebssysteme (normalerweise?) Nicht auf die BIOS-Einstellungen zugreifen?

Die obige Frage kann nicht beantwortet werden, da das Betriebssystem auf das BIOS zugreifen kann .

Ich werde im Folgenden die Frage beantworten, die hätte gestellt werden können.


Wie können Betriebssysteme auf die BIOS-Einstellungen zugreifen?

Unter Windows und Unix kann das Betriebssystem das BIOS lesen.

Windows

Beispiel (mit wmic):

F:\test>wmic bios /?

BIOS - Basic input/output services (BIOS) management.

HINT: BNF for Alias usage.
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb clause>].

USAGE:

BIOS ASSOC [<format specifier>]
BIOS CREATE <assign list>
BIOS DELETE
BIOS GET [<property list>] [<get switches>]
BIOS LIST [<list format>] [<list switches>]


F:\test>wmic bios list brief
Manufacturer              Name                                        SerialNumber      SMBIOSBIOSVersion  Version
American Megatrends Inc.  BIOS Date: 09/05/11 11:20:58 Ver: 04.06.03  27546064-5001600  R1190V3            Sony - 20110905

Windows kann auch in das BIOS schreiben (einige Motherboard-Hersteller bieten ein Windows-basiertes BIOS-Update an.)

Siehe zum Beispiel, wie das BIOS bei Bedarf über Windows oder im BIOS geflasht wird .

Unix

Unix hat ähnliche Befehle.

  • Biosdecode analysiert den BIOS-Speicher und druckt die Informationen über alle Strukturen.

  • Sie können Echtzeit-BIOS-Aufrufe vom Root-Benutzer mit C-Anwendungen ausführen, die eingebetteten ASM (Assembly-Code) enthalten.

Source Wie man BIOS-Daten in eine Datei kopiert


Weitere Lektüre

DavidPostill
quelle
5
Ich möchte hinzufügen, dass Sie vor Windows XP - was meines Wissens nach als - Zeigertrickerei für den Zugriff auf das Setup von debug.com beschrieben werden kann - einen Trick ausführen können, um den Kennwortschutz einiger BIOS zu löschen Modelle. Web-Suchanfragen "debug.com" bios passwordscheinen einige relevante Informationen zum Thema zu liefern.
Theraot
1
immer noch nicht das "Warum?" zu beantworten .... unbefriedigend ....
Zaibis
@Zaibis Es muss nicht auf das "Warum" geantwortet werden. Das Betriebssystem kann auf das BIOS zugreifen und so fragen (und beantworten), warum ... nicht möglich ... eine bedeutungslose Frage ist. Ich habe die Antwort ein wenig geklärt.
DavidPostill
1
"Unable" should be replaced by "able" as the OS can access the BIOS.Wenn Sie es nur so gemeint haben, dass es sich um eine Phrase handelt, sollten Sie sie entfernen. Da es eine Frage ist, die Sie nicht einmal ansprechen, wenn Sie Ihren Rat befolgen.
Zaibis
1
@Zaibis <seufz> Alle anderen verstanden die Antwort (einschließlich des OP, der die Antwort akzeptierte). Ich habe es wieder speziell für Sie aktualisiert;)
DavidPostill
19

Sie können, aber es gibt nicht viel in der Art einer standardisierten Schnittstelle zu den Einstellungen dort, besonders wenn Sie "BIOS" richtig meinen (dh vor UEFI).

Bestimmte Teile des BIOS unterliegen Softwareverträgen zwischen dem BIOS und dem darauf ausgeführten Betriebssystem. Vor langer Zeit wurden BIOS-Routinen für alle Arten von alltäglichen Aufgaben verwendet, wie das Lesen und Beschreiben von Datenträgern, das Anzeigen von Dingen auf dem Bildschirm und das Drucken auf einem angeschlossenen Drucker, daher der Name "grundlegendes Eingabe- / Ausgabesystem". Wenn das BIOS auf die Hardware abgestimmt wäre, könnte das Betriebssystem verschiedene Hardwarevarianten unterstützen, ohne dass für all diese Dinge eigene Routinen erforderlich wären. Da jedoch Hardware und Betriebssysteme immer komplizierter wurden und die begrenzten BIOS-Möglichkeiten überstanden, stellten die Betriebssysteme für fast alles ihre eigenen Treiber zur Verfügung, wobei sie sich nur auf das BIOS für das Booten, die Energieverwaltung und das Abrufen von Systemkonfigurationsinformationen stützten.

Aber auch das BIOS wurde immer komplizierter und gewann alle Arten von Einstellungen und Fähigkeiten, die nicht von der OS-BIOS-Schnittstelle bestimmt wurden, und selbst für das, was darin enthalten ist, werden nur die Ergebnisse angegeben , nicht die Implementierung . Das bedeutet, dass jeder BIOS-Hersteller die Möglichkeit hat, die gewünschten Aktionen auszuführen, Änderungen vorzunehmen, solange die Betriebssysteme ausgeführt werden, und niemandem Einzelheiten mitteilen muss . Der Zugriff auf die vom BIOS gespeicherten Daten ist ein Kinderspiel. Wenn Sie jedoch ein Dienstprogramm haben, das die Daten sinnvoll interpretiert oder das sie so modifiziert, dass das BIOS sie tatsächlich versteht, wurde es wahrscheinlich entweder von der vorgenommen BIOS-Hersteller selbst, oder es ist das Ergebnis von Reverse-Engineering.

hobbs
quelle
Es wäre cool, wenn Sie den Teil "Piece of Cake" in einigen technischen Details beschreiben könnten. Angenommen, ich weiß, wie man willkürlichen C-Code im Kernel-Modus ausführt. Wie würde ich nun vorgehen, um das BIOS manuell zu sichern?
Mehrdad
6
@Mehrdad Der BIOS-Datenbereich und der erweiterte BIOS-Datenbereich sind den Hauptspeicheradressen zugeordnet und können daher direkt mit den entsprechenden Berechtigungen gelesen und geschrieben werden. (Normalerweise möchten Sie das nicht tun ...) Siehe zum Beispiel wiki.osdev.org/Memory_Map_%28x86%29#BIOS_Data_Area_.28BDA.29 und stanislavs.org/helppc/bios_data_area.html und bioscentral.com/misc /bda.htm für weitere Informationen zum BDA-Layout (das erste enthält auch eine kurze Einführung in eine Variante des EBDA-Layouts). Geben Sie "BIOS-Datenbereich" und "Erweiterter BIOS-Datenbereich" in Ihre bevorzugte Suchmaschine ein, um weitere Informationen zu erhalten.
ein Lebenslauf am