我认为我了解操作系统、内核、BIOS 和驱动程序的基本原理。但我无法完全理解所有这些组件如何通信。
我的疑问来自于操作系统最终如何与连接到主板的设备进行通信。我知道操作系统必须有一个驱动程序才能与所述设备进行通信。但最终驱动程序是机器代码,即一组 CPU 可以理解的指令。
但是这组指令(只与 CPU 的架构有关)如何与该架构之外的某些东西进行通信?我读到过 BIOS 可能会映射一些将由设备读取/写入的寄存器。但这又引发了另一个疑问,BIOS 是否标准化?或者每个操作系统或驱动程序是否适应每种 BIOS 以及这些特殊寄存器的映射,以便与连接到主板的设备进行通信?
我似乎无法理解这些主题,也许我无法在 Google 上进行精心设计的搜索。如果能进一步阅读有关这些主题的材料,我将不胜感激。
答案1
问题很广泛,答案也很广泛:CPU(或 GPU 等)执行的指令被实现为电路中电位或电流的变化;类似地,主板(或 CPU 或 GPU)上的设备接收指令时,电路中电位或电流的变化也是如此。当 CPU “发送信号”给设备时,它会改变将其连接到设备的电路中的电流——通常通过管理信号流的中间电路。