也正是因为Linux内核的唯一性,各个不同发布版本拥有相同的框架。Linux内核是在整个Linux系统的最底层,它负责管理硬件,运行用户程序,并保持系统整体的安全性和完整性。可以说是Linux系统的根和灵魂。图3-1中看到Linux内核还有另一层面的含义。这对于Linux内核同样适用。所以对Linux内核的剖析、学习和研究也不能独立于系统进行,而是要综合考虑应用、内核和硬件等各方面的信息和内容。这样才能更全面、深刻地理解Linux内核。......
2025-09-30
总线型设备的主要功能是解决总线设备互连的问题,总线互连框架如图3-14所示。
图3-14 总线互连框架
图3-14的右侧是硬件连接示意图,PCI总线上挂载音频设备和USB总线控制器,USB总线上连接的设备包括I2C总线控制器和USB网络设备,而在I2C总线上则连接一个温度传感器,这是典型的总线层级连接,涉及PCI、USB和I2C三种总线设备。图3-14的左侧是软件实现的框架图,可以看到,对功能驱动来说,其只见到实际设备最终连接的总线,而整个连接层次中的其他总线对功能驱动并不可见。这样做的好处就是,功能部分只关心直接连接的总线协议及其功能。什么屏蔽了不同总线连接的差异呢?总线控制器提供了该功能。总线控制器(如USB controller)在不同的总线之间形成桥梁,并管理自己总线中连接的设备。这样具体设备就可以直接和总线控制器交互,由总线控制器屏蔽总线级联的差别。
Linux内核同样为开发者提供了详细的总线信息,可以通过/sys/bus获得,笔者Linux机器显示该目录的信息如下:(https://www.chuimin.cn)
这其中包含Linux内核支持的各种总线,有物理的总线(如i2c、spi、usb、pci、pci_express等),也有虚拟总线(如platform等)。虚拟总线是一种逻辑总线,主要是为了满足一种逻辑互连功能。连接的主体通常是设备和对应的驱动。总线的一个重要功能就是能够发现设备并找到合适的驱动来操作设备,这是逻辑总线的主要功能。Platform总线主要是为SoC内部设备而设计的,通过该总线可以将设备属性和驱动分离,从而可以使用相同的驱动来支持同一功能核心硬件的不同设备。
通过物理总线和虚拟的逻辑总线,可以对Linux内核所管理的设备进行更好的组织,并且可以通过抽象分离属性和操作,给系统带来更好的扩展性。后续章节会对总线设备进行更详细的介绍。
相关文章
也正是因为Linux内核的唯一性,各个不同发布版本拥有相同的框架。Linux内核是在整个Linux系统的最底层,它负责管理硬件,运行用户程序,并保持系统整体的安全性和完整性。可以说是Linux系统的根和灵魂。图3-1中看到Linux内核还有另一层面的含义。这对于Linux内核同样适用。所以对Linux内核的剖析、学习和研究也不能独立于系统进行,而是要综合考虑应用、内核和硬件等各方面的信息和内容。这样才能更全面、深刻地理解Linux内核。......
2025-09-30
从图3-2中可以理解Linux内核就是将硬件的功能抽象出来,为用户的应用程序提供各种系统服务。与用户相关的属性是与Linux内核中整体安全性相关的,这部分功能通常和硬件具体功能关系不大,而是附加在逻辑功能之上的属性。本书是以嵌入式系统为基础进行说明,所以将重点放在硬件设备的具体功能以及Linux内核在硬件之上的具体实现方面。Linux内核的整体框架如图3-3所示。图3-3清晰地展现了Linux内核的实现层次,以及应用层功能和硬件功能的对应关系。......
2025-09-30
可以看到非常的小,比硬币大不了多少,这个系统只要接上电池就可以运行了。图1-1LogicPD DM 3730 SOM示意图再来看看LogicPD的SOM都有些什么,系统框图如图1-2所示。PoP在一起的芯片分别是主处理器DM 3730和NAND Flash/mDDR SDRAM chip。主处理器和内存是所有系统必需的,关系自然紧密了,这是能PoP的资本。PoP的优势很明显就是使电路板的面积减小了,这个对于手机等对电路板大小要求高的设备来说是非常重要的。图1-2LogicPD DM 3730 SOM系统框图......
2025-09-30
谈到Linux内核,大家的第一感觉就是一个庞大的系统、很多的模块和功能,实在是太复杂了。Linux内核在设计过程中这些都已考虑在其中,这也就提升了它的适用范围。抽象是人类的一个重要思维能力,从某种角度来说软件系统是对各种概念或者行为进行抽象,并加以管理。......
2025-09-30
接下来以DM 3730为例了解一下主芯片和电源管理芯片的连接,如图1-4所示。图1-4DM 3730与电源管理芯片连接框图图1-4是引自《DM 3730芯片手册》中第239页的框图,其中PRCM是power reset clock management的缩写,它是对电源、启动信号和时钟进行管理的模块。电源管理技术的大部分操作就是围绕着这几路电源和时钟展开的。这里先了解基本概念,这些疑问会在后续电源管理的详解中进行说明。......
2025-09-30
对硬件有了基本的了解,就可以从硬件出发考虑内核应该满足的需求了。当然电源管理的需求会涉及以上各种设备、总线和接口。另外内核不能只是支持特定的处理器,需要支持各种类型的处理器,学术一点的说法就是要支持各种体系结构。总结下来从设备出发看内核要满足以下需求:●能支持不同的体系结构和处理器。前四项都是比较直接的需求,第五项则是考验开发人员的设计能力,也是内核的各个模块的设计重点以及我们研究的重点。......
2025-09-30
图1-3引自TI的《DM 3730芯片手册》中第136页框图,为了方便读者在芯片手册中查找相关的内容,会在引用芯片手册框图时说明其所在的页码。各种不同类型的数据连接接口其设计思想以及功能是不同的,例如I2C通常用于设备的控制,McBSP用于音频数据的传输等。图1-3基于DM 3730的设备框图为什么要有这么多连接方式呢?......
2025-09-30
Linux内核作为目前最成功以及发展最快的开源项目之一,在实际应用中取得的巨大成功是举世瞩目的。Linux Foundation于2013年9月发布了《Who Writes Linux》报告,公布了最新的不同组织对Linux内核贡献的情况,见表1-1。表1-1不同组织对Linux内核贡献贡献前30名的公司中半导体厂商就有11家,约占三分之一,如果算上硬件相关的公司会超过20家,贡献总量超过了60%。可见硬件厂商对Linux内核的贡献是很大的,对Linux内核的影响也是巨大的。......
2025-09-30
相关推荐