Ich habe mich immer gefragt, ob das BIOS (abgesehen davon, dass es den POST durchführt, den Bootloader startet und die Kontrolle an das Betriebssystem übergibt, nachdem der Netzschalter gedrückt wurde) irgendeinen Zweck oder eine Funktion hat, während das Betriebssystem läuft?
Kommuniziert das Betriebssystem während des Betriebs mit dem BIOS und wenn ja, wie?
Antwort1
Mit modernen Betriebssystemenpraktisch keine. Linus Torvalds sagte angeblich, seine Aufgabe bestehe darin, „einfach das Betriebssystem zu laden und dann zu verschwinden“.
Ältere Betriebssysteme wie MS-DOS waren für viele Aufgaben (z. B. den Festplattenzugriff) auf das BIOS angewiesen, 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 Anwendungen im Benutzerbereich aufgerufen werden können. Die Routinen des Kernels können portabler sein (da sie nicht von der jeweiligen Hardware abhängen), flexibler (Betriebssystemanbieter können sie bei Bedarf ändern, anstatt das verwenden zu müssen, was mit der Hardware geliefert wurde), ausgefeilter (sie können beliebig komplexen Code ausführen, anstatt den, der im BIOS programmiert wurde) und sicherer (da das Betriebssystem den Zugriff auf gemeinsam genutzte Ressourcen kontrollieren und verhindern kann, dass Programme sich gegenseitig überschreiben, indem es seine eigenen willkürlichen Berechtigungsschemata implementiert).
Um mit bestimmter Hardware zu interagieren, können Betriebssysteme ihre eigenen Gerätetreiber laden und verwenden. Daher müssen das Betriebssystem oder die Anwendungen die meisten BIOS-Routinen überhaupt nicht aufrufen. Aus Sicherheitsgründen sind BIOS-Interrupts sogar deaktiviert. Da das BIOS im 16-Bit-Realmodus läuft, ist es für moderne Betriebssysteme schwieriger aufzurufen.
Während die Nutzung des BIOS bei laufendem Betriebssystem sehr eingeschränkt ist, werden seine Funktionen weiterhin peripher genutzt.Wenn ein Computer beispielsweise schläft, das Betriebssystem läuft nicht und es liegt letztendlich an der Firmware, die Hardware in den richtigen Zustand zu versetzen, um das Betriebssystem anzuhalten und fortzusetzen. Diese Verwendungen sind im Allgemeinen beschränkt aufACPIAufrufe anstelle von Aufrufen der vollständigen BIOS-Schnittstelle. ACPI ist eine BIOS-Erweiterung, die„bringt die Energieverwaltung unter die Kontrolle des Betriebssystems (OSPM), im Gegensatz zum vorherigen zentralen BIOS-System, das sich auf plattformspezifische Firmware stützte, um die Energieverwaltungs- und Konfigurationsrichtlinien festzulegen“.
Beachten Sie, dass sich "BIOS" offiziell auf eine bestimmte Firmware-Schnittstelle bezieht, der Begriff jedoch allgemein für die Computer-Firmware verwendet wird. Einige neuere Computer (insbesondere Apple-Computer) haben das BIOS (im engeren Sinne) ersetzt durchUEFI, was dann natürlich aufgerufen wird, um diese Funktionen zu implementieren.
Weitere Informationen zur Bedeutung des BIOS im Laufe der Zeit finden Sie unterWikipedia.
Antwort2
Das BIOS stellt den Betriebssystemen eine Reihe von Diensten zur Verfügung, von denen die meisten mit der Energieverwaltung zusammenhängen:
- Ändern der CPU- und Bustakte
- Aktivieren/Deaktivieren von Mainboard-Geräten
- Stromversorgungssteuerung des Erweiterungsports
- Suspend-to-Disk und Suspend-to-RAM
- Einstellungen für das Fortsetzen von Ereignissen
Suspend-to-Disk ist meistens im Betriebssystem implementiert, da das Betriebssystem seinen Zustand schneller wiederherstellen kann (nur der Kernelzustand wird neu geladen und der Programmzustand bei Bedarf eingelagert, was erheblich schneller ist, als den gesamten RAM neu zu laden), die Funktion bleibt jedoch in der Spezifikation.
Suspend-to-RAM kann nicht vom Betriebssystem implementiert werden, da es darauf angewiesen ist, dass das BIOS die RAM-Initialisierung und den RAM-Test überspringt. Daher benötigt das Betriebssystem eine API, um dem BIOS mitzuteilen, dass es mit dem aktuellen RAM-Inhalt fortfahren möchte. Um diesen Dienst bereitzustellen, fordert das BIOS das Betriebssystem auf, einen bestimmten RAM-Bereich intakt zu lassen.
Die Schnittstelle zum Betriebssystem für alle BIOS-Dienste ist ein Stück virtueller Maschinencode, der auf einem Emulator ausgeführt werden muss und die erforderlichen E/A-Operationen in der Hardware generiert. Für den Suspend-Modus wird dies im Allgemeinen so implementiert, dass die Ausführung eines der Hardware-Schreibvorgänge einen Interrupt auslöst, der die Kontrolle an das BIOS übergibt.
Antwort3
Es gibt drei Hauptbereiche, in denen ein Betriebssystem das BIOS in modernen Systemen verwendet, beispielsweise in Systemen, die den UEFI-Standard verwenden. Der erste ist eine Reihe von Diensten, die als UEFI-Laufzeitdienste bezeichnet werden. Diese Dienste ermöglichen es dem Betriebssystem, Informationen abzurufen, die nur das BIOS kennt, wie etwa die Zeit, in der das BIOS verwendet wurde, die Startreihenfolge, das aktuelle Benutzersicherheitsprofil, die Informationen über das Motherboard, DIMMs usw.
Der zweite ist der System Management Mode, ein versteckter Speicherbereich (SMRAM), auf den über einen High-Priority Interrupt (SMM) zugegriffen wird. Viele BIOS verwenden diesen Modus, um hochsichere OEM-Funktionen oder Hardware-Workarounds zu implementieren.
Das dritte ist ACPI. ACPI bietet Konfigurations-, Energieverwaltungs- und Hardwaredaten sowie Code, der vom Betriebssystem verwendet wird, um das zu ergänzen, was die Betriebssystemtreiber mithilfe eines Industriestandards oder Gerätetreibers herausfinden können. Gibt es beispielsweise ein spezielles Signal zur Steuerung der Festplattenleistung oder eine spezielle Möglichkeit, mit der Batterie zu kommunizieren, die nicht durch einen Standard abgedeckt ist?
Tim
Antwort4
Darüber hinaus geht Intel nun in die andere Richtung und bietet Out-of-Band-Zugriff auf die Hardware überAktive Management-Technologiein das BIOS und die Hauptplatine integriert, die unabhängig vom Betriebssystem gesteuert werden kann. Mit diesen Boards kann man tatsächlich einiges machen. Ob man es als integriert oder als zweites Betriebssystem betrachtet, ist eine andere Sache, aber da es Hardware an Bord und Komponenten im BIOS hat, bleibe ich bei integriert.