ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:323KB ,
资源ID:7214763      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7214763.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(内核移植简介.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

内核移植简介.doc

1、 Linux内核移植 所谓Linux内核移植就是把Linux操作系统针对具体的目标机做必要裁剪之后,安装到目标机使其正确的运行起来。这个概念目前在嵌入式开发领域流传比较广泛。嵌入式Linux移植是指对Linux经过小型化裁剪后,能够固化在容量只有几K字节或几十K字节的存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统。 选择Linux内核 内核(kernel)是所有 Linux 系统的主要软件组件。内核既是操作系统的心脏,也是它的大脑,因为内核控制着基本的硬件。内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务和TCP/IP网络等功能。 Linux内核本

2、身并不是操作系统,它是一个完整操作系统的组成部分。Red Hat、Novell、Debian和Gentoo等Linux发行商都采用Linux内核,然后加入更多的工具、库和应用程序来构建一个完整的操作系统。 Linux内核移植前准备 对于嵌入式 Linux 系统来说,有各种体系结构的处理器和硬件平台,并且用户需要根据需求自己定制硬件板。只要是硬件平台发生变化,即使非常小,可能也需要做一些移植工作。内核移植是嵌入式 Linux 系统中最常见的一项工作。 当然,移植嵌入式Linux系统并不意味着该内核使用了任何特定的链接库或用户工具,建立嵌入式系统并不需要特别的内核。嵌入式系统中使用的内核与

3、工作站或服务器上使用的内核主要的不同在于内核的配置方面。Linux内核移植是在Linux原内核基础上,通过对平台的选择设计来实现针对特定系统的内核版本。 Linux内核的移植包含启动代码的修改、内核的链接及装入、参数传递、内核引导几个部分。其基本过程如下: (1)首先,获取某一版本的Linux内核源码,根据具体目标平台对源码进行必要的改写(主要是修改体系结构相关部分); (2)然后添加一些外设的驱动(如网卡驱动,USB驱动),打造一款适合于目标平台(可以是嵌入式便携设备也可以是其它体系结构的PC机)的新操作系统,也就是常说的内核配置或内核定制; (3)对该系统进行针对目标平台的交叉编译

4、生成一个内核映象文件(如zImage,uImage,bzImage); (4)最后通过一些手段(如TFTP)把该映象文件烧写到目标平台中。 Linux内核源码 Linux内核移植工作主要是修改跟硬件平台相关的代码,一般不涉及 Linux 内核通用的程序,移植的难度也取决于两种硬件平台的差异。通常对 Linux 源码的改写工作难度较大,它要求你不仅对Linux内核结构要非常熟悉,还要求你对目标平台的硬件结构非常熟悉。同时还要求你对相关版本的汇编语言较熟悉因为与体系结构相关的部分源码往往是用汇编写的。 (1)BSP包开发 Linux对于特定的硬件平台的软件就叫作BSP(Board S

5、upport Package)。基于上面描述的困难,这部分工作一般由目标平台提供商来完成。比如说针对目前嵌入式系统中最流行的ARM平台,它的这部分工作就是由英国 ARM公司的工程师完成的,我们所要做的就是从其网站上下载相关版本Linux内核的补丁(Patch)。把它打到我们的Linux内核上,再进行后续操作就行。针对某些特定的硬件平台可能并没有平台开发商提供的BSP,这就需要我们自己参考类似的BSP来开发程序。 所幸的是,Linux 内核已经支持了各种体系结构的很多种目标板,我们很容易从中找到跟自己硬件类似的目标板。参考内核已经支持的目标板来移植 BSP,就如同使用模板开发程序一样。当然,我

6、们选择的参考板不能仅凭兴趣或爱好来选取,选择参考板也有一定的原则。具体的原则如下: Ø 参考板与开发板具有相同的处理器,至少类似的处理器; Ø 参考板和开发板具有相同的外围接口电路,至少基本接口相同; Ø Linux 内核已经支持参考板,至少有非官方的补丁或者 BSP; Ø 参考板 Linux 设备驱动工作正常,至少已经驱动基本接口。 找到了参考板后,还要仔细分析内核代码以及参考板的BSP,分析平台相关的部分代码实现;分析内核编译组织方式;分析内核启动的初始化程序;分析驱动程序的实现;弄清楚哪些设备有驱动程序,哪些还没有等等。然后才能开始动手修改内核源代码。 (2)内核源码分析

7、 我们需要进行Linux内核移植,那么首先,我们得下载一个干净的内核源码树,解压后,先来看看Linux内核源代码目录树结构。 arch:存放各种与硬件体系结构相关的代码,每种体系结构一个相应的目录,每个目录下都包括了该体系结构相关的代码,包括内存管理,启动代码,浮点数仿真等等。 block:部分块设备驱动程序。 crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。 Documentation:关于内核各部分的通用解释和注释。 drivers:设备驱动程序,每个不同的驱动占用一个子目录。 fs:提供对各种文件系统的支持。 include:内核相

8、关的头文件。以及与各体系结构相关的头文件也都放在这个目录下的各个体系结构目录中。 init:内核初始化代码。包括main函数也是在这个目录下实现的。 ipc:进程间通信的代码。 kernel:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。 lib:各种库文件代码。 mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。 net:网络相关代码,实现了各种常见的网络协议。 scripts:用于配置内核文件的脚本文件。 security:主要是一个SELinux的模块。 sound:常用音频设备的驱动程序

9、等。 usr:用户的代码。 在以上布局中,linux 内核主要分为特定于体系结构的部分和与体系结构无关的部分。在Linux启动的第一阶段,内核与体系结构相关部分(arch目录下)首先执行,在这部分它要做的工作有:内核解压缩、解压缩内核重定位;内存硬件初始化检测;参数表的分析;初始化页表目录的制作等工作,然后把控制权转给内核中与系统结构无关部分。所以操作系统内核移植中要改动的代码主要集中在与体系结构相关的启动初始化部分。 从上面的目录结构介绍可知,如果要添加新的开发板或者寻找体系结构相关的文件首先就是到arch目录下去寻找。在arch目录中我们可以看到有许多子目录,它们往往是用芯片命名的,

10、表示是针对该芯片体系结构的代码。为ARM系列芯片编译内核,就应修改 ARM目录下的相关文件。 内核配置及方法 Linux内核源代码支持二十多种体系结构的处理器,还有各种各样的驱动程序等选项。因此,在编译之前必须根据特定平台配置内核源代码。Linux内核有上千个配置选项,配置相当复杂,所以,Linux内核源代码组织了一个配置系统。 配置系统主要包含Makefile、Kconfig和配置工具。它可以生成内核配置菜单,方便内核配置。配置界面是通过工具来生成的,工具通过Makefile编译执行,选项则是通过各级目录的Kconfig文件定义。顶层目录的Makefile是整个内核配置编译

11、的核心文件,整体管理Linux内核的配置编译,负责组织目录树中子目录的编译管理,其定义了配置和编译的规则,还可以设置体系结构和版本号等。Kconfig文件是Linux2.6内核引入的配置文件,是内核配置选项的源文件。内核源码中的Documentation/kbuild/kconfig-language.txt文档有详细说明。对内核进行配置的方法有好几种,而且配置时需要对许多选项进行选择。不管用哪种方法来配置,或者选择哪些配置选项,在配置好之后,内核都会产生.config文件,这个文件包含了所有设定选项的全部细节。 常用的内核配置主要有以下四种方法: (1)make config 通过命令

12、界面,依次要求设定每个选项,并会根据.config 配置文件设定各选项的预设值。 (2)make oldconfig 通过命令界面,自动载入.config 配置文件。当遇到先前没有设定过的选项时,才会要求你手动设定(而make config 却会要求你手动设定所有的选项)。 (3)make menuconfig 显示配置菜单的形式。同make config一样,会根据.config文件来设定预设值。在2.4.X 以及以前版本中xconfig菜单是基于TCL/TK的图形库的。 (4)make xconfig 显示X Window配置菜单。它同样会根据.config文件来设定预设值。

13、 以上四种方法当中,只有少数开发者会使用make config来设定内核配置。多数开发者会使用make menuconfig来建立初始的配置或调整已有的配置。接下来将介绍make menuconfig进行内核配置的选项和使用方法。 图形化内核配置选项 在Linux源码的顶层目录运行make menuconfig,便会出现如下图所示的图形化配置菜单: 图6-2-1 内核配置选项主菜单 上图显示的是一个主菜单,主菜单中还包含了很多子菜单,通过敲键盘的↑、↓键可以选择不同的子菜单,再敲回车键,进入这些子菜单,可以看到该子菜单下的一些功能选项,如我们进入System Type这个子菜单

14、便可以看到如图6-2-2所示的界面: 图6-2-2 内核配置选项子菜单 在对各个选项进行配置时,有三种方式,它们分别代表的含义如下: Y:将该功能编译进内核; N:不将该功能编译进内核; M:将该功能编译成可以在需要时动态插入到内核中的模块 。 至于某个选项具体配置成哪一种方式,可以通过空格键进行选取。所有选项前都有一个括号,有的是中括号,有的是尖括号,还有圆括号。用空格键选择时可以发现,中括号里要么是空,要么是"*",而尖括号里可以是空,"*"和"M"这表示前者对应的项要么不要,要么编译到内核里;后者则多一样选择,可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选

15、择一项。 内核配置好后,读者可以通过Esc键或是Exit选项离开内核配置菜单。内核配置系统将会提示是否要储存新的配置。选择Yes,离开内核配置系统的时候,会将新的配置储存到新的.config文件。这除了会建立.config文件,也会建立一些的头文件和符号链接。选择No,离开内核配置系统的时候,并不会储存任何变更。 除了主要的配置选项,内核所支持的架构通常会包含特定开发板的标准样版配置。比如ARM 开发板,以s3c2410为例,在arch/arm/configs目录下便有一个s3c2410_defconfig的配置文件,运行make s3c2410_defconfig命令,内核配置系统将自动

16、调用该配置文件,并且将该文件中各选项的配置存储到.config文件中去,下次执行make menuconfig时就会载入这些配置。 构建内核映像 内核编译基本命令 Ø make mrproper: 清理全部文件,包括.config和一些备份文件。 Ø make clean:清理生成文件,但会保留.config和一些模块文件。 Ø make defconfig:生成包含默认选项的.config文件。 Ø make oldconfig:在旧的.config基础上生成新的.config。如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦。 Ø make config: 基

17、于文本的最为传统的配置界面,不推荐使用。 Ø make menuconfig:基于文本选单的配置界面,字符终端下推荐使用。 Ø make xconfig:基于图形窗口模式的配置界面,Xwindow下推荐使用。目的都是生成一个.config文件,这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,你就用这个好了,这个比较方便,也好设置。如果你不能使用Xwindow,那么就使用 make menuconfig。界面虽然比上面一个差点,总比make config的要好多了。 Ø make: 默认编译。 Ø make bzImage:编译生成压缩的内核二进制文件,也会用make zImage替代。 Ø make distclean:在进行安装之前要特别注意,如果你需要清理内核的源码,让它回复到配置设定、依存关系建立或编译之前的初始状态,就使用make distclean命令,但务必在执行此命令之前,将内核的配置文件备份起来,因为 make distclean 会清除前面这几个阶段所产生的文件,包括 .config 文件、所有的目标文件以及内核映像。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服