嵌入式Linux系统小型化技术.docx
《嵌入式Linux系统小型化技术.docx》由会员分享,可在线阅读,更多相关《嵌入式Linux系统小型化技术.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式Linux系统小型化技术 摘要:介绍了Linux在嵌入式领域中的应用和宿主机、目的机开发形式,详细地给出了精简内核的实现经过。分析了glibc系统库和ELF文件格式的构造和其中的分享库裁剪技术的原理,提出并实现了一种库裁剪方案。关键词:嵌入式;Linux;小型化一、概述嵌入式Linux一般是指对标准Linux发行版本进展小型化裁剪处理之后,合适于特定嵌入式应用场合的专用Linux操作系统。嵌入式系统通常是资源受限的系统,无论是处理器计算才能还是RAM或者其他存储器容量都比拟“小。因此,怎样创立一个小型化的Linux作为操作系统开发成为首先需要考虑的问题。嵌入式Linux系统中普遍采用三层
2、构造:核心层主要是Linux内核和模块;调用接口层是以glibc库为主的系统库;应用层是根据用户需求设计的应用程序。为了实现资源的高利用率,后两层都以ELF文件形式存在,在运行经过中对外部功能代码动态加载。一般来讲,建立穿插平台开发环境是进展嵌入式软件开发的第一步。宿主机与目的机硬件平台的异构处理器体系构造不同是采用穿插开发的根本原因。另外,由于资源有限,直接在嵌入式系统的硬件平台上开发软件不方便、甚至不可能。因此,通常采用HostTarget开发形式,如表l。宿主机Host目的机TargetPC或工作站,其中x86CPU占优势嵌入式系统硬件,处理器多样化x86,ARM,PowerPC,MIP
3、S,68K等Windows、Linux等桌面操作系统,丰富的集成开发环境如WindRiver的Tornado软件资源有限,开发阶段通常从宿主机下载align=center表1穿插平台发环境的特点/align穿插平台开发环境包括穿插编译器、穿插调试器和系统仿真器,比方嵌入式Linux开发经常用的GNU工具链。开发者需要根据目的平台来选择适宜的GNU穿插编译器,然后在宿主机上面重新编译内核和其他软件,这样得到的目的代码才能拿到目的机上面运行。这个经过相当繁琐且容易出错。宿主机和目的机一般通过以太网或串口连接。目前,世界上出现了数以百计的嵌入式Linux开发方案和发行版本,比方:ETLinux,LP
4、R,C-Linux,ThinLinux等开发源代码的工程,如表2所示。ETLinux设计用于在小型工业计算机,尤其足PC104模块上运行LinuxRouterProjectLPR的目的是用于路由器、接入效劳器、瘦效劳器等网络没备和嵌入式系统,可以安装在一张软盘上。类似的工程还有LinuxOnAFloppyLOAFC-Linux在没有MMU的系统L运行的Linux。同前支持MotorolaDragonBallM68EZ328,M68328,M68EN322,ColdFire,QUICC,ARM7TDMI,MC68EN302,AxisETRAX,Intei960,PRISMA,Atari68k等微
5、处理器ThinLinux一个为嵌入式和特定应用制作的Linux发行版,运行在Intel和PC兼容硬件上align=center表2几种开放源代码的嵌入式Linux发行版/align另外,还有:CoventiveXLinux,LineoEmbedix,LynuxWorksBlueCat,MontaVistaLinux等商业公司的发行版。同时,针对实时环境,有RT-Linux、RTAI等实时扩展。近年度来,越来越多的目的系统选择了性价比不断进步的x86处理器和成熟的PC架构作为硬件平台。LinuxDevices网站进展的调查显示,嵌入式系统开发者在过去2年度和将来2年度选择x86处理器作为目的平台
6、的比例分别为3l%和35%,高居首位。对于宿主机和目的机都是PC兼容平台的开发者来讲,除了沿用上述形式之外,有更简单的创立小型化Linux系统的方法:以一个常规的Linux发行版为根底,编译内核、复制所需的文件,并利用初始化RAM盘initrd:INITialRamDisk机制创立根文件系统,就可以快速实现一个小型化Linux系统。二、小型化技术Linux已经越来越广泛地应用于各种嵌入式设备中。但是一般的Linux发行版都非常庞大,很难用于只有有限存储空间的嵌入式设备。所以我们必须对Linux系统进展裁剪。Linux系统大致有以下4种主要的裁剪技术,使用这些技术可以有效地减小系统的尺寸且不会影
7、响系统的性能。删除冗余文件。一般的Linux发行版中都包含很多帮助文档、辅助程序、配置文件和数据模板,在嵌入式系统中这些文件都是不必要的,完全可以删除。甚至连配置文件中的大量注释也都可以被去掉。分享库裁剪。嵌入式系统的应用程序是有限的,分享库中就可能有很多永远不会被用到的冗余代码,这些代码就可以被删除。采用具有同样功能的替代软件包。Linux上有许多具有相似功能的软件包,可以选择其中占存储空间较小的软件包并其移植到嵌入式设备上,用来代替原来占空间较大那些的软件包。修改源码。包括重新配置、编译软件包,去掉不需要的功能;增加软件的模块性,进而有利于进步裁剪效率;重新配置内核,去掉不需要的驱动和模块
8、。1、精简内核与传统嵌入式操作系统的微内核Micro-kerne1体系构造不同,Linux内核采用的是整体式构造Monolithic,整个内核是一个单独的、非常大的程序。其优点是可以使系统的各个局部直接沟通,有效地缩短任务之间的切换时间,进步系统响应速度。缺点也是明显的,即内核尺寸比拟大,因为Linux内核不仅包括如任务调度、内存管理、中断处理等根本的操作系统功能,同时还包括文件系统、网络协议、没备驱动程序等功能。Linux内核是高度模块化、可配置的,通过配置使内核具有不同的功能,进而减小内核的大小。例如,Linux支持的文件系统种类很多,包括ext2、ext3、FAT、Reiserfs、JF
9、S等。可以根据实际情况选择所需的文件系统,比方仅仅把ext2文件系统编译进内核。编译内核的主要步骤如下“#代表命令提示符:#cdusrsrc1inux-2.4#makemenuconfig#makedep;makeclean;makebzlmage编译成功的内核文件为archi386bootbzlmage。详细方法参考内核源代码包中的README文件。为了进一步增加灵敏性、减小内核尺寸,Linux还提供了可加载内核模块机制,内核中的很多功能可以编译为模块,在内核运行时动态加载,而不是直接编译进内核。然而在嵌入式Linux系统中更倾向于根据需要编译一个独立的内核,较少使用模块机制。这样得到的内核
10、通常在几百kB甚至1MB左右,相对传统的嵌入式操作系统内核来讲是比拟大的比方包含文件系统和网络支持的VxWorks内核大约250kB。在进展内核配置时,开发者要比拟解析各功能模块之间的依赖关系,否那么有可能造成编译失败。而在VxWorks内核的配置经过中,假如破坏了依赖关系,有比拟明确的指示,进而防止这种错误。2、分享库裁剪在小型化技术中,分享库裁剪容易用软件实现,做成自动裁剪工具,效果最明显。下面重点介绍分享库小型化技术,分享库小型化的根本思想是通过提取和解析系统库内目的文件、符号的依赖关系,通过对这些依赖构造关系模型进展关系演算,根据应用程序中的符号信息,在库目的文件一级实现系统库的小型化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 Linux 系统 小型化 技术
限制150内