Ich habe mich immer gefragt, ob das BIOS (abgesehen von der Durchführung des POST, dem Starten des Bootloaders und der Übergabe der Steuerung an das Betriebssystem nach dem Drücken des Netzschalters) einen Zweck oder eine Funktion hat, während das Betriebssystem ausgeführt wird?
Kommuniziert das Betriebssystem während des Betriebs mit dem BIOS und wenn ja, wie?
Antworten:
Mit modernen Betriebssystemen praktisch keine . Berichten zufolge hat Linus Torvalds die Aufgabe, "nur das Betriebssystem zu laden und die Hölle loszuwerden".
Ältere Betriebssysteme wie MS-DOS verwendeten das BIOS für viele Aufgaben (z. B. Festplattenzugriff), indem sie Interrupts aufriefen.
Bei modernen Betriebssystemen wechselt der Bootloader schnell in den 32- oder 64-Bit-Modus und führt den Betriebssystemkernel aus. Der Kernel kann seine eigenen Interrupt-Handler registrieren, die von User-Space-Anwendungen aufgerufen werden können. Die Routinen des Kernels können portabler (da sie nicht von der spezifischen Hardware abhängen), flexibler (Betriebssystemhersteller können sie bei Bedarf ändern, anstatt das zu verwenden, was mit der Hardware geliefert wurde) und ausgefeilter (sie können beliebig komplex ausgeführt werden) sein Code statt dessen, was im BIOS programmiert wurde) und sicherer (da das Betriebssystem den Zugriff auf gemeinsam genutzte Ressourcen steuern und verhindern kann, dass sich Programme gegenseitig überladen, indem es seine eigenen willkürlichen Berechtigungsschemata implementiert).
Betriebssysteme können für die Interaktion mit bestimmter Hardware eigene Gerätetreiber laden und verwenden. Das Betriebssystem oder die Anwendungen müssen also die meisten BIOS-Routinen überhaupt nicht aufrufen. Aus Sicherheitsgründen sind BIOS-Interrupts sogar deaktiviert. Da sich das BIOS im 16-Bit-Real-Modus befindet, ist es schwieriger, moderne Betriebssysteme zu finden.
Während die Verwendung des BIOS unter dem Betriebssystem sehr eingeschränkt ist, werden dessen Funktionen weiterhin peripher verwendet. Wenn ein Computer beispielsweise in den Energiesparmodus wechselt , wird das Betriebssystem nicht ausgeführt, und es liegt letztendlich an der Firmware, die Hardware in den richtigen Zustand zu versetzen, um das Betriebssystem anzuhalten und fortzusetzen. Diese Anwendungen beschränken sich im Allgemeinen auf ACPI- Aufrufe und nicht auf Aufrufe der vollständigen BIOS-Schnittstelle. ACPI ist eine BIOS-Erweiterung, die "die Energieverwaltung unter die Kontrolle des Betriebssystems (OSPM) bringt, im Gegensatz zum vorherigen BIOS-Zentralsystem, das sich bei der Festlegung der Energieverwaltungs- und Konfigurationsrichtlinie auf plattformspezifische Firmware stützte" .
Beachten Sie, dass sich "BIOS" offiziell auf eine bestimmte Firmware-Schnittstelle bezieht, der Begriff wird jedoch allgemein für Computer-Firmware verwendet. Einige neuere Computer (insbesondere Apple-Computer) haben das BIOS (sensu strictu) durch UEFI ersetzt. Dies ist natürlich die Bezeichnung für die Implementierung dieser Funktionen.
Weitere Informationen dazu, wie sich die Rolle des BIOS im Laufe der Zeit verringert hat, finden Sie in Wikipedia .
quelle
Das BIOS bietet eine Reihe von Diensten für die Betriebssysteme, von denen die meisten im Zusammenhang mit der Energieverwaltung stehen:
Suspend-to-Disk ist die meiste Zeit im Betriebssystem implementiert, da das Betriebssystem seinen Status schneller wiederherstellen kann (nur der Kernelstatus wird neu geladen und der Programmstatus wird bei Bedarf ausgetauscht, was erheblich schneller ist als das erneute Laden des gesamten Arbeitsspeichers) Die Funktion bleibt in der Spezifikation erhalten.
Suspend-to-RAM kann vom Betriebssystem nicht implementiert werden, da das BIOS die RAM-Initialisierung und den RAM-Test überspringt. Daher benötigt das Betriebssystem eine API, um dem BIOS mitzuteilen, dass es beabsichtigt, mit dem aktuellen RAM-Inhalt fortzufahren. Um diesen Dienst bereitzustellen, fordert das BIOS das Betriebssystem auf, einen bestimmten RAM-Bereich intakt zu lassen.
Die Schnittstelle für das Betriebssystem für alle BIOS-Dienste ist ein Teil des virtuellen Maschinencodes, der auf einem Emulator ausgeführt werden muss und der die erforderlichen E / A-Vorgänge in der Hardware generiert. Beim Anhalten wird dies im Allgemeinen so implementiert, dass beim Ausführen eines der Hardware-Schreibvorgänge ein Interrupt ausgelöst wird, der die Steuerung an das BIOS überträgt.
quelle
Es gibt drei Hauptbereiche, in denen ein Betriebssystem das BIOS in modernen Systemen verwendet, z. B. in Systemen, die den UEFI-Standard verwenden. Die erste ist eine Reihe von Diensten, die als UEFI-Laufzeitdienste bezeichnet werden. Mit diesen Diensten kann das Betriebssystem Informationen abrufen, die nur dem BIOS bekannt sind, z. B. die vom BIOS verwendete Zeit, die Startreihenfolge, das aktuelle Benutzersicherheitsprofil, Informationen zum Motherboard, zu DIMMs usw.
Der zweite ist der Systemverwaltungsmodus, bei dem es sich um einen verborgenen Speicherabschnitt (SMRAM) handelt, auf den ein Interrupt mit hoher Priorität (SMM) zugreift. Viele BIOS verwenden dies, um hochsichere OEM-Funktionen oder Hardware-Workarounds zu implementieren.
Der dritte ist ACPI. ACPI bietet Konfigurations-, Energieverwaltungs- und Hardwaredaten sowie Code, die vom Betriebssystem verwendet werden, um das zu erweitern, was die Betriebssystemtreiber mithilfe eines Industriestandards oder Gerätetreibers herausfinden können. Gibt es zum Beispiel ein spezielles Signal zur Steuerung der Festplattenleistung oder eine spezielle Möglichkeit, mit der Batterie zu sprechen, die nicht durch einen Standard abgedeckt ist?
Tim
quelle
Moderne Betriebssysteme verwenden das BIOS hauptsächlich zum Laden, es gibt jedoch noch einige Verwendungsmöglichkeiten, darunter insbesondere:
).
quelle
Zusätzlich zu den oben beschriebenen Maßnahmen beginnt Intel, sich in die andere Richtung zu bewegen und mehr einzubauen, indem über die im BIOS und auf dem Motherboard integrierte Active Management-Technologie , die unabhängig vom Betriebssystem gesteuert werden kann, ein bandexterner Zugriff auf die Hardware ermöglicht wird . Mit diesen Boards kann man eigentlich einiges machen. Egal, ob Sie es als eingebaut oder als zweites Betriebssystem betrachten, es ist eine andere Sache, aber da es Hardware an Bord und Komponenten im BIOS hat, bleibe ich bei eingebautem.
Intel Marketing Guff
quelle