Wie liest das BIOS vom Flash-Speicher, ohne vorher den Treiber zu installieren?

Wie liest das BIOS vom Flash-Speicher, ohne vorher den Treiber zu installieren?

Immer wenn wir einen neuen USB-Stick anschließen, wird ein Popup-Fenster mit der Meldung angezeigt Installing Device Driverund nach einiger Zeit erscheint der Autostart-Dialog.

Wie schafft es also das BIOS, das im Vergleich zum Betriebssystem selbst vermutlich sehr rudimentär ist, bei der Installation eines anderen Betriebssystems von einem bootfähigen Flash-Laufwerk, Daten schnell vom Flash-Laufwerk zu lesen (und das auch noch ganz am Anfang des Bootvorgangs), ohne dass Gerätetreiber installiert werden müssen?


Bearbeiten: Mir ist aufgefallen, dass Linux (in meinem Fall Ubuntu 12.04) den Gerätetreiber ebenfalls nicht installieren muss und das Laufwerk automatisch in Nautilus geöffnet wird. Wie funktioniert das?

Antwort1

In den letzten zwei Jahrzehnten sind bestimmte Hardwareaspekte stark standardisiert worden, sodass es einfach ist, diese Treiber tatsächlich in die Firmware (oder im Fall von Linux in den Kernel) einzubetten. Wenn Sie sich die für USB-Speicher verwendeten Treiber ansehen, sind diese fast immer gleich, unabhängig von Hersteller, Größe usw.

Dasselbe gilt für (die meisten) USB-Tastaturen und andere gängige Eingabegeräte, da sie alle zumVERSTECKTEKlasse der Peripderalien.


Was die automatische Anzeige des Laufwerkinhalts durch Linux betrifft, sieht der Ablauf grob wie folgt aus:

  1. Der Kernel registriert das neu angeschlossene Gerät. Dies kann man sehen, wenn man dmesgnach dem Einstecken ein
  2. Das Laufwerk wird dann automatisch gemountet, wie in zu sehen ist mount -l. Normalerweise sehen Sie eine Zeile, die ungefähr mit „ /dev/sdc1 on /media/username/Something...entspricht dem in Nr. 1 aufgeführten Geräteknoten“ beginnt.
  3. Ihre Desktopumgebung erkennt diesen neuen Einhängepunkt für Ihren Benutzernamen und öffnet einen Dateimanager für den besagten Einhängepunkt.

Antwort2

Der ganze Kram mit der „Treiberinstallation“ kommt nur unter Windows vor. Eigentlich ist es sowieso eher wie „Neue Geräteinstanz registrieren“. Unter anderen Betriebssystemen ist der Prozess natürlich im Wesentlichen derselbe, wird aber anders gehandhabt. Es gibt beispielsweise zwei Möglichkeiten, mehrere ähnliche Geräte zu handhaben: Entweder wird für jedes davon eine isolierte Treiberinstanz ausgeführt oder eine einzelne Instanz kann mehrere Geräte handhaben.

Es gibt einige Voraussetzungen, die erfüllt sein müssen: Ein Treiber muss an einer Stelle vorhanden sein, wo der Kernel (oder ein Programm, das Treiber in den Kernel lädt) ihn automatisch findet. So etwas wie /lib/modulesunter Linux. Wenn ein Treiber nicht verfügbar oder im Kernel integriert ist, kann das Gerät nicht verwendet werden.

Bei Firmware wie UEFI oder BIOS wäre der Treiber integriert, da diese in sich geschlossen sein müssen.

Wie Jarmund bereits erwähnt hat, sind Schnittstellen zu Eingabe- und Speichergeräten heutzutage weitgehend standardisiert. Ein einziger Treiber reicht aus, um fast jedes USB-Speichergerät zu verwenden. So können Sie über BIOS und UEFI Ihre Tastatur, Maus, USB-Speicher und so weiter verwenden.

verwandte Informationen