1
2
大多数新的总线系统都有一个探测机制,在这个机制中,系统可以要求所有设备识别它们自己和它们在总线上的位置,然后操作系统可以将这些识别映射到设备驱动程序,然后这些驱动程序可以指定它们需要的其他资源。USB、PCI、PCI Express、AGP、FireWire、SATA、Infiniband和Lightport都能做到这一点。它不一定通过“地址”精确工作,但它可以通过不同的总线控制器模式,甚至通过完全独立的总线。例如,RAM芯片有一个SPI接口来配置它们,而实际的数据在其他一些互连上移动。我在工作中有一个嵌入式系统,它使用SPI来配置对存储操作系统的闪存磁盘的总线访问…那是一个很烦人的开机设备。 虽然PC中的BIOS实际上设置了所有的PCI设备,但大多数更新的操作系统将立即从头开始重新执行该过程。因此,基于Intel的Macs(和许多服务器)中的EFI固件只设置加载操作系统内核所需的实际内容,而将其余部分留给操作系统。这就是为什么Windows需要bootcamp或HAL磁盘才能在Mac或高端服务器上真正启动。Windows在普通PC上很晚才进行PCI探测,并且需要一段时间的BIOS设置,但是在Mac和一些服务器系统上,它需要加载不同的HAL来立即进行硬件扫描。 如果你想真正理解这些东西,阅读Linux内核是非常有启发性的,特别是在PC和其他系统之间的区别方面。 |
3
0
是的,您可以使用这种简化来粗略地想象它是如何工作的。它也同样适用于视频。 当然,如果你深入了解细节,你会发现它有点复杂,因为涉及到几种技术,而且理论上每个设备的工作原理都有所不同。准备好面对IRQ、DMA、不同的内存映射等。 |
Vishesh Chanana · “上载草图时出错”Arduino 7 年前 |
Jeff Coe · 确定哪个应用程序正在使用音频设备 8 年前 |
Max Larionov · Arduino无人机项目 8 年前 |
Thomas · FMA指令集的硬件支持有多丰富 9 年前 |
Gaurav Saxena · 如何了解USB设备的支持功能? 9 年前 |
Joney · 计算机系统中的定时机制 10 年前 |