【发布时间】:2014-05-18 10:43:08
【问题描述】:
我不确定每种硬件类型(显示屏、USB、打印机等)是否必须遵循统一标准才能与 CPU 通信。例如,显示屏接口和 CPU 之间来回传输的位被 CPU 解释为特定命令,即使使用另一个显示屏(来自其他制造商),这种解释也是正确的(对于相同的位) )。
如果这不是真的,那么 BIOS 应该如何与数百个不同的硬件设备进行通信,这些设备具有不同的解释从设备接口到 CPU 来回的位的方法?
我发现标准化概念更实用。
【问题讨论】:
我不确定每种硬件类型(显示屏、USB、打印机等)是否必须遵循统一标准才能与 CPU 通信。例如,显示屏接口和 CPU 之间来回传输的位被 CPU 解释为特定命令,即使使用另一个显示屏(来自其他制造商),这种解释也是正确的(对于相同的位) )。
如果这不是真的,那么 BIOS 应该如何与数百个不同的硬件设备进行通信,这些设备具有不同的解释从设备接口到 CPU 来回的位的方法?
我发现标准化概念更实用。
【问题讨论】:
BIOS 本身实际上只需要了解启动 CPU 所需的有限硬件集。它不需要了解“数百”个设备。例如,BIOS 不知道 USB 打印机是什么。
一般来说,BIOS 只识别以下设备:
任何其他设备都会被 BIOS 忽略,除非供应商在板上包含 Option ROM。 (您通常会在 SAS/SCSI 控制器或以太网卡上看到这一点。)
请注意,上面列出的大多数设备都符合标准规范,因此无论是谁制造的,它们都是软件兼容的。例如,USB 2.0 控制器应符合EHCI spec,它将兼容所有 BIOS。 SATA 控制器应遵循AHCI spec。
操作系统加载后,它会从 BIOS 接管并加载自己的驱动程序以与硬件接口。
【讨论】:
每个硬件与 CPU 通信都有特定的方式(即协议)。也许我们可以将其视为“设备规范”。为了与数百个不同的硬件设备进行通信,BIOS 应该在其中实现相应的协议。因此我们可以说 BIOS 实际上是规范的“集合”。
每当发布新的规范时,都要修改BIOS来支持它,否则BIOS无法识别相应的设备,更不用说配置了!
【讨论】: