linux 计算机组成(南北桥、总线、设备、驱动)
作者:互联网
计算机的核心是cpu,linux就是运行在cpu之上的,但是仅仅有cpu是不够的,还需要有内存、磁盘、键盘、鼠标、显示器等设备。linux系统运行起来就需要将各种设备接入到计算机之中,这些设备和cpu的关系如下:
所谓的南桥和北桥,是指南桥芯片和北桥芯片,其中北桥芯片比较靠近CPU。
由上图我们可以看到,CPU出来后由FBS(Front-side bus)总线连接北桥,北桥有PCIe(PCI express)和Memory总线连接显卡和内存,这些都是高速数据传输设备,同时北桥还有internal总线连接南桥;南桥是作为连接慢速数据传输设备而存在的,它则通过PCI和LPC总线与各式设备相连接。 由此可见,CPU去操作设备,需要经过总线才能到达设备,而且到达设备会经过不同的总线。
总线
是指计算机组件间规范化的交换数据的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。通俗点说就是它有着特定的排线数量(总线宽度)、特定的数据速率(电平宽度)以及特定的数据格式(总线命令)的一个数据线,然后可以在这数据线上整成各式的接口。
设备
键盘、鼠标、显示器、打印机都是设备,这是常用的外接设备,而对于计算机而言,磁盘、显卡、声卡、光驱也都是设备,甚至内存也是设备,较为特殊的设备。总而言之,真实具体的物理器件都是设备,在软件层面,它有着自己独特的参数和属性。作为一个设备接入到计算机当中,它要有一个硬件接口接入到总线中,这个接口的线宽必然需要和总线宽度一致,而接入到总线后,要能响应总线上的命令才能够被正常使用,这就要求它要有和总线相同的速率才能识别,同时还要有和总线传输一致的数据格式。
设备驱动
为了应对各式各样的设备,为操作设备提供操作接口。
设备驱动管理
面向对象的思想就是一切事物皆对象,Linux的设备驱动管理将运用这一思想对各式各样的设备、总线以及驱动进行管理。
kobject:基础对象类型
kset:kobject对象的管理集合, 自身也是一个kobject
device:设备类型
device_driver:设备驱动类型,每个device_driver都有一个driver_private类型与之相关联
bus_type:总线类型,每个bus_type都有一个driver_private类型与之相关联
各个类型相互之间的关系如下图:
标签:北桥,总线,driver,南北桥,linux,驱动,cpu,设备 来源: https://www.cnblogs.com/tongyishu/p/13938166.html