嵌入式Linux系统移植步骤

一、Linux系统移植的三大部分

linux系统移植包括3个部分:引导程序(BootLoader)移植、内核移植和文件系统制作。其中,内核移植是Linux系统移植的关键,它包括修改内核代码和配置内核选项两个部分。

修改内核代码主要是选定Linux内核代码对处理器的支持和修改与外部设备相关的内核代码。

linux支持多种处理器,这主要体现在linux将与处理器相关的代码集中在arch目录中和include目录下文件名以asm开头的子目录中。

arch目录中每个目录代表一个与处理器相关的代码。内核移植只要选定相应的处理器类型就可以。

Include目录下文件名以asm开头的子目录主要作用是为操作系统提供类型就可以了,它的选择会根据处理器的不同而不同。修改与外部设备相关的内核代码主要是针对Linux已经支持的外部设备。

二、系统移植所必需的环境


在进一步叙述之前,我们有必要提一下做系统移植所必需的环境。
首先,需要一个新版本的gcc。对于一个准备系统移植的程序员而言,“新”到什么程度应该心里有数。做跨平台编译,gcc也许是好的选择。另外,Linux内核依赖许多gcc特有的特性,非它不可。如果你已经会使用gcc并实地操练过多回,那你只需要再进一步巩固一下跨平台编译的操作即可。两种编译环境是可用的:非目标平台上的Linux或目标平台上的非Linux系统,除非你的开发平台过于特殊,否则你一定能够找到你能用的gcc。
其次,编译链接库是必需的,而且必须是目标平台的编译链接库。通常这是一个枯燥、繁琐、又丝毫没有成就感的过程。幸运的话,会有现成的链接库可以用。否则,你需要自己用gcc建立它。
后,需要目标平台的所有文档,越多越好。如果有一定的开发支持/仿真环境,Loader(加载程序)则好,这些可以帮助你减少移植过程中浪费在琐事上的时间。

三、Linux系统移植


接下来我们从内核和系统两个方面描述一下移植中的关键。
(1) 内核移植
Linux系统采用了相对来说并不是很灵活的单一内核机制,但这丝毫没有影响Linux系统的平台无关性和可扩展性。Linux使用了两种途径分别解决这些问题,很干净利落,丝毫不拖泥带水,而且十分清晰易懂。分离硬件相关代码和硬件无关代码,使上层代码永远不必关心低层换用了什么代码,如何完成了操作。不论对x86上还是在Alpha平台上分配一块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深圳函数

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值