Die BIOS- Software ist in den PC integriert und der erste Code, der beim Einschalten von einem PC ausgeführt wird ("Boot-Firmware"). Wenn der PC gestartet wird, ist der erste Job für das BIOS der Selbsttest beim Einschalten, bei dem Systemgeräte wie CPU, RAM, Grafikkarte, Tastatur und Maus, Festplattenlaufwerk, optisches Laufwerk usw. initialisiert und identifiziert werden andere Hardware. Das BIOS findet dann die Bootloader-Software, die sich auf einem Peripheriegerät (als "Boot-Gerät" bezeichnet) befindet, wie z. B. einer Festplatte oder einer CD / DVD, und lädt und führt diese Software aus, um den PC zu steuern. [2] Dieser Vorgang wird als Booten oder Booten bezeichnet, was für Bootstrapping kurz ist.
Welche Voraussetzungen setzen voraus, dass auf einem Computersystem ein BIOS installiert ist?
Warum kann das Betriebssystem nicht das gesamte BIOS ausführen?
Antworten:
Ein BIOS ist ein hardwareabhängiger Code, der auf dem Motherboard selbst gespeichert ist. Jede andere Motherboard muss eine benutzerdefinierte BIOS für sie geschrieben, so dass es unmöglich wäre , einen zu haben , generisches BIOS / O all-in-one (obwohl das BIOS technisch Code nur gespeichert, so dass Sie könnte theoretisch ein Betriebssystem für ein bestimmtes Motherboard schreiben) . Wie Sie bereits erwähnt haben, dient das BIOS folgenden Zwecken:
Beachten Sie, dass Sie einen Computer immer noch ohne externen Speicher starten können. Aus diesem Grund ist das BIOS eine Voraussetzung für einen Computer. Mit anderen Worten, das BIOS bietet eine gemeinsame Softwareschnittstelle, über die ein gespeichertes Computerprogramm mit verschiedenen an die Hauptplatine angeschlossenen Hardwaregeräten kommunizieren kann.
Wenn ich zum Beispiel zwei verschiedene Motherboards mit zwei verschiedenen SATA-Controllern habe, kann ich im BIOS einen Code schreiben, der mit beiden kompatibel ist, ohne dass ich weiß, wie das Motherboard tatsächlich Befehle an das SATA-Gerät sendet. Ich muss dem Computer nur sagen, dass er Sektor X von diesem SATA-Gerät lesen soll, und das BIOS ist dafür verantwortlich, diese Befehle tatsächlich an die Hardware zu senden.
Woher es tatsächlich die "Lesesektor X" -Information erhält, ist ein gespeichertes Programm, das im BIOS enthalten ist und normalerweise den Computer anweist, mit dem Lesen von einem Bootloader zu beginnen, der an einem gemeinsamen Ort gespeichert ist. Diese gemeinsamen Standorte werden von verschiedenen Software- und Hardware-Entwicklern vereinbart und in der Regel der Öffentlichkeit zur Verfügung gestellt, um eine bessere Systemkompatibilität zu gewährleisten.
Sobald eine grundlegende Schnittstellenebene (wieder eine logische Schnittstelle über Software) eingerichtet ist, erstellt das Betriebssystem selbst eine gemeinsame Schnittstelle mit Ihren verschiedenen Hardwaregeräten (normalerweise mithilfe von "Gerätetreibern"), und das Betriebssystem kann dann die Hardware steuern.
Schließlich sollte beachtet werden, dass das BIOS auch verwendet wird, um Änderungen an der Computerhardwarekonfiguration vorzunehmen und diese im integrierten EEPROM zu speichern (sodass sich Ihr Computer die Änderungen beim nächsten Start merkt). Wie ich bereits sagte, hat das Betriebssystem nach dem Laden die volle Kontrolle über den Computer.
Auf diese Weise können Motherboard-Hersteller Software entwickeln, mit der Sie diese Änderungen von Ihrem Betriebssystem aus vornehmen können, anstatt einen Neustart im BIOS durchführen zu müssen. Auch dies ist sehr hard- und softwareabhängig, zeigt jedoch, dass alle Computerschnittstellen relativ sind. Das BIOS ist genau das, was sein Name andeutet - ein grundlegendes Eingabe- / Ausgabesystem, mit dem eine gemeinsame Softwareschnittstelle für ein fortgeschritteneres Programm ("Betriebssystem") die Steuerung der Maschine übernehmen kann.
quelle
Ihr Betriebssystem befindet sich auf Ihrer Festplatte. Wenn Sie Ihren Computer einschalten, wird das Lesen von dieser Festplatte nicht auf magische Weise gestartet. Es ist das BIOS, das den Bootloader von der Festplatte lädt sowie einige Tests durchführt und es Ihnen ermöglicht, bestimmte Einstellungen des BIOS zu konfigurieren.
Ihr Betriebssystem kann dies nicht tun, da es sich auf der Festplatte und nicht in Ihrem ROM befindet.
Daher benötigen Sie ein BIOS oder eine ähnliche (aber andere) Technologie wie EFI ...
Es ist möglich, einen Teil des Betriebssystems vom Hersteller in das ROM zu laden (verantwortlich für das Laden des Bootloaders des Betriebssystems). Dies ist jedoch nicht weit verbreitet und es ist sowieso ein BIOS oder EFI verfügbar.
quelle
Kein wirklicher logischer Grund. Es ist eher eine Frage des Erbes und der Geschichte.
Es ist nicht erforderlich, dass auf einem Computer ein BIOS installiert ist. Es ist ein Erbe von IBM PC. Obwohl dies eine gute Idee war
Wenn das Betriebssystem das macht, würde das nichts wirklich ändern, da es immer noch so etwas wie das BIOS macht. Natürlich muss sich das Betriebssystem in einem ROM befinden, nicht auf einem E / A-Gerät. Das Problem kann bei Monopolproblemen auftreten, wenn ein Betriebssystemhersteller beschließt, sein Betriebssystem-BIOS nicht mit anderen Betriebssystemen kompatibel zu machen. Durch die Trennung der BIOS-Hersteller von den Betriebssystemen wird die Freiheit bei der Ausführung der Software verbessert.
quelle
Zum Starten des Betriebssystems ist etwas erforderlich. Wenn das Betriebssystem in einen nichtflüchtigen Speicher passt, kann es direkt gestartet werden. Bei voll ausgestatteten Betriebssystemen wie Windows, OSX oder Linux ist dies jedoch nicht möglich.
Was benötigt wird, ist ein kleines, leichtes "Betriebssystem", das beim Einschalten geladen werden kann, das die grundlegenden Dinge wie Speicher- und Datenträgerzugriff ausführt und dann das Betriebssystem lädt. Dies kann zwar Teil des Betriebssystems selbst und keine separate Entität sein, es gibt jedoch auch andere Gründe, warum Sie möglicherweise möchten, dass zuerst ein anderer Prozess gestartet wird:
Dieser Vorgang wird als Bootstrapping bezeichnet .
quelle
Das Konzept des PC-BIOS leitet sich von CP / M ab, einem Betriebssystem, das vor der Übernahme des IBM-PCs auf 8-Bit-Z-80-Bus-Computern mit "S-100" -Bus beliebt war.
CP / M erwartet, dass sich hardwareabhängige Funktionen in einem ROM (BIOS) befinden. Ein weiterer Teil, der vom Bootloader von der Festplatte geladen wurde, war die Software, die das CP / M-Dateisystem (BDOS) und anschließend den Befehlsprozessor oder die "Shell" (CCP) unterstützte. Die Hardware, die CP / M erwartungsgemäß unterstützen sollte, war nicht sehr umfangreich: ein Festplattenlaufwerk, ein Bildschirm, ein serieller Anschluss oder zwei (COM- oder AUX-Anschlüsse), an die Drucker oder Modems angeschlossen sein konnten.
Das PC-BIOS führte eine grundlegende Bootstrapping-Funktion ähnlich wie CP / M durch, und DOS verwendete BIOS-Funktionen, um wie beabsichtigt grundlegende Ein- und Ausgaben durchzuführen. Programmierer haben diese Funktionen letztendlich umgangen, da sie langsam waren. Dies führte Mitte der 80er Jahre dazu, dass Hersteller von PC-Klonen die Plattform als Ganzes neu erstellten (einfach, da IBM den ursprünglichen PC sehr gut von innen und außen dokumentierte), anstatt nur ein BIOS mit kompatiblen Schnittstellen bereitzustellen, obwohl sie dies auch tun mussten.
An dieser Stelle können wir sagen, dass für ein modernes Betriebssystem das BIOS nicht unbedingt über das Booten des Systems hinaus benötigt wird. Jedoch ...
Ab Anfang der 90er Jahre setzte sich der Begriff Power Management durch und das BIOS wurde damit beauftragt. APM funktioniert gut mit einem Single-Tasking-Betriebssystem wie DOS, aber nicht mit echten Multitasking-Betriebssystemen wie Windows oder Linux. Um diese Zeit war der 386 voll in Kraft, die Intel-CPU, die echtes Multitasking unterstützte. DOS und das BIOS wurden nicht als Reaktion auf die neuen Funktionen dieser CPU aktualisiert, hauptsächlich, weil alle Intel-CPUs weiterhin im alten 16-Bit-Kompatibilitätsmodus ausgeführt werden, für den das ursprüngliche PC-BIOS entwickelt wurde. Moderne Betriebssysteme ignorieren / umgehen praktisch alle CP / M-ähnlichen Ein- / Ausgabefunktionen des BIOS, außer möglicherweise in frühen Startphasen.
Schließlich wurde ACPI entwickelt, das größtenteils Teil des BIOS ist und die Energieverwaltung und Konfiguration von (häufig Laptop-) plattformspezifischen Dingen unterstützt. ACPI behandelt auch den endgültigen Stromversorgungs-Schaltzustand von Ruhezustand, Ruhezustand oder Herunterfahren.
Heutzutage ist es also ACPI und sein Nachfolger EFI, der so etwas wie das BIOS als eine Notwendigkeit für PCs ansieht. Das übergeordnete Konzept ist, dass ACPI die Schnittstelle zwischen plattform- oder motherboardspezifischen Dingen und dem Betriebssystem ist, ein separater Betriebssystem-Build also nicht müssen für jeden unterschiedlichen Motherboard-Typ hergestellt werden.
Auf Entwicklungsboards mit ARM-CPUs, auf denen Linux ausgeführt wird (sowie auf der Hardware von Mobiltelefonen), tritt dieses Problem auf. Normalerweise werden sie mit einer Bootloader-Firmware wie U-Boot geliefert, aber das Betriebssystem muss so ziemlich jede Karte als separate Plattform unterstützen.
quelle
In gewisser Hinsicht hast du recht. BIOS und Betriebssystem machen teilweise das Gleiche. Die Trennung von BIOS und Betriebssystem dient ausschließlich der Flexibilität.
Das BIOS wird normalerweise von einem Hardware-Hersteller erstellt. Die Hardware muss sicherstellen, dass eine Grundfunktionalität vorhanden ist, z. B. dass ein Laufwerk ausgelesen werden kann und eine Grundanzeige für Diagnose und Fehler angezeigt wird. Daher der Name "Basic Input Output System".
Dies kann bis zu einem gewissen Grad ohne weitere Kenntnis der tatsächlichen Komponenten geschehen, die tatsächlich auf dem spezifischen System vorhanden sind, da sie alle einen bestimmten kleinen BIOS-Standard unterstützen müssen. Auf diese Weise können Anbieter ein komplettes System individuell zusammenstellen. Das BIOS muss nur genug tun, um das Betriebssystem zu starten. Es gibt einige Konventionen, an denen diese Startpunkte festgelegt sind, daher wird einfach nacheinander versucht. Dies ermöglicht auch die Verwendung verschiedener Betriebssysteme auf derselben Hardware. (da ist wieder Flexibilität)
Sobald das Betriebssystem (oder zumindest der Bootloader) vom BIOS gefunden und gestartet wurde, ist das BIOS selbst weitgehend veraltet. Moderne Betriebssysteme verwenden nach dem Laden nur sehr wenig bis gar nichts vom BIOS.
Wenn Sie möchten, dass das Betriebssystem die gesamte Arbeit erledigt, müssen Sie das Betriebssystem an einem Ort platzieren, auf den die Hardware ohne vorherige Hilfe einer Software (ROM) zugreifen kann. Dies kann für einige geschlossene Systeme möglich sein, bei denen Flexibilität keine Rolle spielt. Wenn Sie überlegen, Hardware-Unterstützung in eine andere Hardware zu integrieren, erstellen Sie im Grunde genommen wieder eine Art BIOS ...
Ein weiteres Problem sind die Speichergröße und die Kosten. Voll funktionsfähige Betriebssysteme sind groß und der Versuch, ein Multi-Gigabyte-Betriebssystem in das ROM zu bekommen, ist teuer, abgesehen von den Folgeproblemen beim Patchen und Aktualisieren.
Nein, es gibt keinen technischen Grund, aber viele praktische, insbesondere für die flexible PC-Plattform.
quelle
Um ein Programm auf einem modernen PC ausführen zu können, muss zunächst ein Programm ausgeführt werden, das mit der Bedienung der Hardware und dem Laden von Programmen in den Speicher vertraut ist. Dieses Henne-Ei-Problem wird gelöst, indem ein Basisprogramm in die Hardware selbst implantiert wird.
Dieses grundlegende Ein- / Ausgabesystem (BIOS) ist sehr klein und von sehr begrenztem Umfang, bietet jedoch eine ausreichende Grundlage, um Bootloader der zweiten Stufe wie GRUB oder NTLDR zu laden und auszuführen. Diese Loader der zweiten Stufe sind komplexer als das BIOS-Programm, wodurch sie eine robustere Grundlage für das Betriebssystem bieten, das zum Laden und Übernehmen der Steuerung geeignet ist.
quelle
Wenn eine CPU die Möglichkeit hätte, eine Festplatte direkt zu adressieren, ohne sich auf das BIOS oder EFI oder anderen Code im ROM (oder NVRAM oder was Sie haben) zu verlassen, dann könnte eine solche CPU theoretisch ein Betriebssystem von der Festplatte in den RAM laden und beginnen es ausführen.
Tatsächlich könnte eine solche CPU theoretisch sogar Befehle ausführen, ohne sie in den RAM zu laden. Es gibt keinen theoretischen Grund, warum ein Computer eine Festplatte nicht als primären Speicher verwenden könnte. Aber das wäre sehr, sehr langsam.
Dies würde bedeuten, dass Sie zusätzlichen Code in der CPU haben, um auf die Festplatte zuzugreifen, und einige Konzepte zu Festplatten, wie Partitionstabellen und Dateisysteme, fest in die CPU einbinden. CPUs sind heutzutage groß genug, um dies zu tun, aber es wäre kein sehr flexibler oder effizienter Ansatz zum Entwerfen einer CPU.
quelle
Es braucht es nicht!
Was oft als BIOS bezeichnet wird, sind 3 Dinge.
quelle