欢迎来到天天文库
浏览记录
ID:8233278
大小:510.43 KB
页数:5页
时间:2018-03-11
《一种面向应用的嵌入式linux内核混合裁剪方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第32卷第2期河南科技大学学报:自然科学版Vol.32No.22011年4月JournalofHenanUniversityofScienceandTechnology:NaturalScienceApr.2011文章编号:1672-6871(2011)02-0032-04一种面向应用的嵌入式Linux内核混合裁剪方法崔欢欢,霍华,王永杰(河南科技大学电子信息工程学院,河南洛阳471003)摘要:针对目前已有嵌入式Linux内核裁剪方法中存在不同程度的粒度偏大问题,提出了一种嵌入式Linux内核混合裁剪方法。根据已有裁剪
2、方法,提出二步裁剪的混合裁剪方法,对RFID手持读写器应用过程中使用到的嵌入式Linux内核进行裁剪。实验表明:混合的裁剪方法降低了嵌入式Linux内核的粒度,裁剪率与其他方法相比提升了24%以上。关键词:嵌入式Linux;手持读写器;裁剪率中图分类号:TP316.89文献标识码:A0前言近年来,Linux以其源码开放、性能稳定、可裁剪等优势成为嵌入式操作系统的首选。Linux可作为一种通用的操作系统,应用于资源受限的、针对具体应用而设计的专用系统———嵌入式系统之前,需对[1-2]内核中不同的功能模块进行裁剪,根据软硬
3、件的实际情况定制Linux内核。作为RFID系统的核心部分,RFID读写器具有的很重要的技术意义和市场前景,但设计开发一款既具有专用性又具有通用性[3]的RFID手持读写器是当今的难题。针对这个问题,本文将RFID技术和嵌入式技术相结合,根据需求裁剪定制内核,得到适用于RFID手持读写器的内核映像。Linux的模块化设计、源代码公开和Linux内核重编译功能使得Linux内核具有可裁剪性,但是庞大[4]的内核源代码结构使得分析和裁剪内核有一定的难度。目前对于Linux内核的裁剪常用的方法[5-6]有:配置裁剪方法、基于代
4、码分析的裁剪方法和基于调用图的裁剪方法。配置裁剪方法是根据Linux本身所提供的配置工具裁剪配置内核,将信息保存供内核编译使用;基于代码分析的裁剪方法是通过对内核源代码的分析,使用条件编译或修改源码、直接删除冗余代码(文件、实现函数、相关数据结构等);基于调用图的裁剪方法是通过分析库函数、系统调用和内核函数的调用关系,建立基于函数间调用关系的调用图,删除内核中未调用到的函数。以上3种方法各有优点,但均存在不同程度粒度偏大问题。基于此,本文将以上3种方法的优点相融合,采用一种混合的裁剪方法来提高裁剪率,并面向RFID手持读
5、写器的具体应用对裁剪结果进行验证。1面向RFID手持读写器的应用[7]嵌入式Linux的裁剪是指在开放源码、性能稳定的Linux源代码的基础上,根据特定应用和硬件平台(x86,ARM等),适当的优化删减代码的过程。裁剪后的代码符合嵌入式应用的要求,应用功能有所减少,规模更为精简,体系结构更为紧凑,可配置性有所提高。1.1硬件结构分析图1描述了RFID手持读写器的相关硬件模块:主控制器是三星公司的嵌入式ARM芯片S3C2410,其内部有4KSRAM用于NandFlash启动;存储器单元(主存储器SDRAM+辅助存储器Nan
6、dFlash)用于存储数据;LCD和键盘作为人机交互工作的接口;RFID读写模块用于收发射频信息;JTAG调试模块和用于通讯的串口和以太网接口。基金项目:国家自然科学基金项目(60743008);河南省科技攻关计划项目(072102210010)作者简介:崔欢欢(1985-),女,河南洛阳人,硕士生;霍华(1968-),男,河南兰考人,副教授,博士后,研究方向为智能信息处理、光纤通道技术、嵌入式系统等.收稿日期:2010-11-01第2期崔欢欢等:一种面向应用的嵌入式Linux内核混合裁剪方法·33·1.2软件系统分析图
7、2对RFID手持读写器的软件系统进行了层次性的描述,其中软件层中列出了组成Linux内核的5个部分:进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)。1.3可裁剪项分析[8-9]通过对Linux内核源码及组成内核的5个部分的分析,得到内核模块中可以裁剪的部分:(1)系统多余的进程。Linux内核中的一些模块对于嵌入式系统并不适用,可以剔除内核对这些进程的创建和调度机制,如虚存管理模块,同时删除与此相关的进程。(2)平台无关代码和多余硬件相关代码。根据硬件平台裁剪掉
8、内核arch目录下与该平台无关的处理器支持代码;另外,Linux内核支持很多硬件及其周边设备,如硬盘、鼠标等,并不是所有嵌入式系统都需要,可以根据实际情况删除那些无用的硬件驱动程序的相关代码。(3)异常处理函数。Linux内核提供的一些异常处理函数是嵌入式系统所不需要的,如:debug、divide_error、nm
此文档下载收益归作者所有