关于硬件架构
想要了解Linux操作系统的内核设备和驱动模型,最好先了解一下现在计算机硬件的架构。对计算机硬件有一定了解之后,对理解Linux内核中的设备和驱动模型非常有帮助。如图1是常规计算机的硬件架构简图。
这里面需要重点理解的概念包括:总线、PCI桥和设备三个概念。我们下面大概介绍一下这几个概念的含义:
总线: 我们知道计算机通常包括几大件,CPU、内存、输入设备和输出设备等。这些设备之间进行通信需要依赖一种通道,这个通道就是总线。说的直白写,总线就是传输数据的通道,可以类比日常生活中的马路,各个不同的城市通过马路来交换物资。总线有很多种,比如常见的PCI总线,ISA总线和I2C总线等等,我们这里就不相信介绍。
PCI桥: PCI桥是连接PCI总线的纽带,其作用与网络领域的网桥类似。其实我们平时说的北桥,就包含PCI桥。PCI桥主要分3种,3种桥的具体含义如下:
- HOST/PCI桥:提供CPU和PCI设备相互访问的通道,实现CPU空间和PCI空间的映射。
- PCI-PCI桥:实现PCI设备的级联。
- PCI/ISA或LPC桥:实现对ISA设备的兼容。
设备:设备就是具体的设备了,