诚信经营,质量为首,诚信至上,真诚为您服务
--------------------------------------------------
允许我给您介绍下这个产品和我们的服务:现货 全新原装*** 15天质量问题无条件包退换
一年质保 完善的***服务 雄厚的技术人才后盾 真正的为客户排忧解难
客户的满意 是对我们的肯定 更是我们的动力
单子,得之,我幸。不得,我力争到底 全心服务
--------------------------------------------------
ABB 3HNE00065-1 DSQC 354
优质的产品★优质的价格★优质的***★优质的服务,是您***佳的选择!
Linux内核移植
在同一硬件平台上可以嵌入不同的嵌入式操作系统,这就好比PC既可以安装Windows又可以安装Linux一样。同样,有些操作系统经过移植后即可运行在不同的硬件平台上。通常情况下,如果一个系统可以在不同硬件平台上运行,那么这个系统便是可移植的。将某一个平台的代码运行在其他平台上的过程称作移植。嵌入式系统是“硬件可裁剪”的,因此工程师们设计的硬件电路会有所不同,从而使这些代码可能无法正确运行,因而要实现移植就应结合自己的硬件电路,对已有的内核代码进行修改。
3.1 内核移植难点
Linux系统的内核是多层次结构的单体内核,其可移植性比微内核要差一些,但是,这种内核具有较高的效率。从操作系统发展的趋势来看,微内核作为一种***的操作系统结构,是操作系统发展的一个潮流。但是,微内核结构较低的系统通信效率大大的降低了系统的性能。所以,从系统效率和性能的角度来考虑,Linux并没有采用***的微内核结构而是选择了传统的单体内核机构。
3.2 内核移植的基本策略
在Linux2.6内核支持下,Linux已经在许多典型的硬件平台上实现移植,其中包括:I386、ARM、MIPS、ALPHA、PowerPC、SPARC、SH等。但是对于基于特定硬件体系设计的硬件平台,需要从头对Linux进行移植。此外还有部分体系的硬件平台,Linux只对其中部分的CPU或目标板提供了支持,如果使用了Linux尚未支持的CPU或目标板,也需要对Linux内核进行移植工作。通常可以采用以下两种方法进行Linux内核移植工作:
(1)从头设计。即采用“自底向上”的设计方法,从硬件的需求考虑逐步的采用分析、设计、编码、测试。这种方法比较适合针对一种全新的硬件平台开展移植工作。
(2)修改已有的代码。如前所述,Linux已经可以在多种体系结构中运行,那么,我们可以参考相近的体系结构的代码,只修改与我们的目标硬件平台不同的部分即可。这种方法的难点在于开发人员除了要了解目标硬件平台外。还必须对已支持的软硬件有一个较好的理解。本次研究的移植工作就是采用了这种开发方法。
3.3 内核移植方法
对于系统移植而言,Linux实际上是由两个比较***的部分所构成,即内核部分和系统部分。通常启动一个Linux系统的过程为:一个不隶属于任何操作系统的加载程序将Linux部分内核调入内存,并将控制权交给内存中Linux内核的***行代码,这样就完成了加载程序的工作。此后Linux要将自己的剩余部分全部加载到内存,初始化所有的设备,在内存中建立好所需的数据构(有关进程、设备、内存等)。此时,内核已经可以控制所有硬件设备。而后转入系统部分,操作并使用这些硬件设备。接下来内核加载根设备并启动init守护进程,init守护进程会根据配置文件加载文件系统、配置网络、服务进程及终端等。一旦终端初始化完毕,我们就会看到系统的欢迎界面了。概括说来,一部分内核初始化和控制绝大部分硬件设备,为内存管理、进程管理、设备读写等做好一切准备工作;另一部分系统加载必需的设备,配置各种环境以便用户可以使用整个系统。