如何在未先安装驱动程序的情况下 BIOS 从闪存读取数据?

如何在未先安装驱动程序的情况下 BIOS 从闪存读取数据?

每当我们插入一个新的拇指驱动器时,我们都会收到一个弹出窗口Installing Device Driver,然后过一段时间就会弹出自动运行对话框。

因此,当从可启动闪存驱动器安装另一个操作系统时 - BIOS(我认为与操作系统本身相比非常简陋)如何能够快速从闪存驱动器读取数据(这也是在启动开始时)而无需安装任何设备驱动程序。


编辑:我注意到 Linux(我的情况是 Ubuntu 12.04)也不需要安装设备驱动程序,并且驱动器会自动在 Nautilus 中打开。这是如何工作的?

答案1

在过去二十年中,某些硬件方面已经变得非常标准化,因此很容易将这些驱动程序嵌入到固件中(或者在 Linux 的情况下是内核中)。如果您查看用于 USB 存储的驱动程序,无论制造商、尺寸等如何,它们几乎总是相同的。

这同样适用于(大多数)USB 键盘和其他常见输入设备,因为它们都属于危险气体周围神经类。


至于Linux自动向您显示驱动器的内容,粗略的概述如下:

  1. 内核注册新连接的设备。dmesg插入设备后执行以下操作即可看到
  2. 然后驱动器会自动安装,如中所示mount -l。通常,您会看到一行以/dev/sdc1 on /media/username/Something...与 #1 中列出的设备节点匹配的内容开头。
  3. 您的桌面环境会看到您的用户名的这个新挂载点,并为该挂载点打开一个文件管理器。

答案2

整个“安装驱动程序”过程只出现在 Windows 上。实际上,它更像是“注册新设备实例”。在其他操作系统上,这个过程当然基本相同,但管理方式不同。例如,有两种方法可以处理多个类似的设备:要么为每个设备运行一个独立的驱动程序实例,要么一个实例能够处理多个设备。

必须满足一些要求:驱动程序必须位于内核(或将驱动程序加载到内核的程序)能够自动找到的位置。类似于/lib/modulesLinux。如果驱动程序不可用或未内置在内核中,则无法使用该设备。

对于像 UEFI 或 BIOS 这样的固件,驱动程序将是内置的,因为它们必须是自包含的。

正如 Jarmund 之前提到的,如今输入和存储设备的接口已基本标准化。一个驱动程序就足以使用几乎所有的 USB 存储设备。这就是 BIOS 和 UEFI 让您使用键盘和鼠标以及 USB 存储设备等的方式。

相关内容