一种嵌入式Linux操作系统的构建方法.pdf

上传人:qwe****56 文档编号:74676966 上传时间:2023-02-27 格式:PDF 页数:4 大小:326.22KB
返回 下载 相关 举报
一种嵌入式Linux操作系统的构建方法.pdf_第1页
第1页 / 共4页
一种嵌入式Linux操作系统的构建方法.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《一种嵌入式Linux操作系统的构建方法.pdf》由会员分享,可在线阅读,更多相关《一种嵌入式Linux操作系统的构建方法.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-r 业控制计算机 2 0 11 年第2 4 卷第1 期6 9一种嵌入式L inu x 操作系统的构建方法AM e t h o do fC o n s t r u c t i n gE m b e d d e dL i n u xO p e r a t i n gS y s t e m刊、新贺王晓辉于月森(中国矿业大学信息与电气工程学院,江苏徐州2 2 1 1 1 6)摘要提出了一种构建嵌入式L i n u x 操作系统的方法:通过内核定制,文件系统裁减和启动脚本配置来构建嵌入式L i n u x 操作系统。详细说明了具体实现步骤,同时讨论了各种构建方式的利弊。实验证明,通过该方式构建的嵌入式

2、L i n u x 操作系统运行稳定可靠,性能优异,功能可灵活配置,适用范围非常广。关键词:嵌入式L i n u x b u s y b o x 内核定制A b s t r a c tT h i sp a p e rp r e s e n t sam e t h o do fc o n s t r u c t i n ge m b e d d e dL i n u xo p e r a t i n gs y s t e m:t h r o u g ht h ek e r n e lc u s t o m i z a t i o n f i l es y s t e mr e d u c i n

3、 ga n ds t a r t u ps c r i p tc o n f i g u r a t i o nt oc o n s t r u c te m b e d d e dL i n u xo p e r a t i n gs y s t e m D e t a i l so fi t si m p l e m e n t a t i o ns t e p si se x p l a i n e d T h ea d v a n t a g e sa n dd i s a d v a n t a g e so fs o m ec o n s t r u c t i o nm e t

4、h o d sa r ed i s c u s s e d O ft h i se m b e d d e dL i n u xo p e r a l i n gs y s t e m,t h ea c t u a lt e s tr e s u l t ss h o wi t sr e l i a b l es t a b i l i t y e x c e l l e n tp r o p e r t i e sa n dh i g hf l e x i b i l i t y K e y w o r d s:E m b e d d e dL i n u x,b u s y b o x,k

5、 e r n e lc u s t o m i z a t i o n使用嵌入式L i n u x 操作系统具有极强的可定制性、完全免费的成本、稳定的运行和广泛的硬件支持,是可行并且具有相当优势的。嵌入式L i n u x 操作系统的构建要经过内核定制和重新编译,文件系统裁剪和系统的启动配置三个步骤。1内核裁剪与编译进行内核裁剪的主要目的是从需求出发,使系统最大程度地满足应用的需要、最大程度地适应系统硬件平台、最优化地支持系统外围设备和应用程序,并且尽量减少对系统资源的占用、减少系统功耗,增强系统的安全性、稳定性、可靠性,另外还可以使系统真J E 地实现产权自主化。1 1 内核裁剪L i n

6、u x 采用单内核体系结构,内核的所有部分都集中在一起,这样能使系统的各部分直接沟通,有效地缩短任务之间的切换时间,提高_ r 系统的响应速度,实时性好并提高了C P U 的利用率,但在系统比较大的时候,体积也比较大,与嵌入式系统容量小、资源有限的特点不符合,因此需要进行非常精细的定制以适应嵌入式系统的需要。本项目采用的内核版本是2 4 2 0。内核设置工作可以通过直接修改内核源代码中的M a k ef i l e 文件、C o n f i g i n 文件和内核源代码根目录下的c o n f i g 文件来完成。内核源代码中的每个目录都有各自的用途,每个子目录下也都有相应的M a k ef

7、i l e 文件。采用修改配置文件的方式设置内核比较复杂,而且容易出现错误,但是对深入剖析和理解内核帮助很大。比较有效的方式还是直接利用L i n u x 内核提供的工具进行内核设置。在L i n u x 源代码目录(u s r s r c l i n u x 一2 4 2 0)下,L i n u x 内核设置命令是:#m a k em e n u c o n f i g命令执行后会显示一个字符型菜单配置环境,在该环境中有各种选项,通过这些选项设置可以定制L i n u x 内核的各项功能,并对内核实现裁减。这砦选项中,按照要求选择需要的部件,保存退出,就完成了内核的裁剪配置。1 2 内核编译

8、内核配置结束后就可以编译内核了,内核编译只有几个指$国家8 6 3 计划(重点)项目(2 0 0 8 A A 0 6 2 2 0 0)令,但内核编译时间可能很长。在执行内核配置之前要先执行:#m a k em r p r o p e r该命令用于检查内核源程序,以发现内核文件是否完备。接下来执行:#m a k em e n u c o n f i g该命令即内核配置命令,按要求选择。选择完成后,继续执行:#m a k ed e p该命令使内核正确设置所有模块的依赖关系。如果该部分出现错误。说明内核配置的选项依赖关系不满足,需要重新执行内核配置命令来重新配置内核;如果没有出错,则说明依赖关系满足

9、,执行:#m a k ec l e a n该命令的作用是清除所有已存在的目标文件,已存在的目标文件主要由上次内核编译形成。现在可以执行:#m a k eb z l m a g e该命令用于生成超过1 M 文件大小的内核,内核文件是经过压缩处理的。如果内核中使用了可装卸的模块,则需要依次运行以下指令:#m a k em o d u l e s该命令用于编译内核模块。模块编译完成后执行:#m a k em o d u l e s i n s t a l l该命令用于安装内核模块。上述命令成功运行后。新的内核就已经编译完成了。编译后的内核文件存放在源码目录的a r c h i 3 8 6 b o o

10、 t 目录下。2 文件系统定制多数情况下,发行版的L i n u x 文件系统都比较大,不适合用在嵌入式系统中,所以需要对文件系统进行定制。L i n u x 的根文件系统具有非常独特的特点,就其基本组成来说,L i n u x 的根文件系统应该包括支持L i n u x 系统正常运行的基本内容,包含着系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件。文件系统定制方法比较多,本文总结为三种:1)手工创建文件系统:该方法好处是定制的文件系统比较万方数据7 0一种嵌入式L i n u x 操作系统的构建方法小。可以小于或者远小于1 M B,定制性非常强,但是操作比较复杂,步骤

11、比较多且容易出错,不经过长期的摸索,构建的文件系统可能根本不能启动,并且系统难以增加很多的功能。所以,本次任务不采用此方法,也不对此方法进行介绍。2)使用一些工具来定制文件系统:该方法比上述方法略简单,文件系统同样也是比较小,可以小于1 M B,但是构建系统功能与使用的软件有十分密切的关系,该方法可操作性也比较强,本文简要介绍使用B u s y B o x 工具定制文件系统。3)在发行版的文件系统基础上进行裁剪:该方法比较安全,操作比较简单,构建的文件系统一般情况下可以实现较多的功能,但是构建的文件系统会比较大,并且可能在系统中存在一些冗余的或者用不到的文件,同时对硬件配置的要求相对比较高。2

12、 1 利用b u s y b o x 构建文件系统1)b u s y b o x 简介。b u s y b o x 是一个集成了一百多个最常用I i n u x 命令和工具的软件。在嵌入式l i n u x 应用中,b u s y b o x 有非常广的应用。B u s y b o x 的小身材大作用的特性。给制作嵌入式l i n u x 带来了极大的方便。2)配置b u s y b o x。b u s y b o x 的配置程序和l i n u x 内核菜单配置方式类似,可以直接使用m a k em e n u c o n f i g 方式配置需要编译进b u s y b o x 的功能选项

13、,可依据需求自选。配置好后保存并退出。3)编译并安装b u s y b o x。依次执行m a k e 和m a k ei n s t a l l命令即可完成编译。编译好后在b u s y b o x 目录下生成子目录一i n s t a l l,其中可执行文件b u s y b o x 在b i n 目录下,其他的都是指向他的符号链接。4)b u s y b o x 的用法。B u s y b o x 的使用方法很简单,例如执行#b u s y b o xI s,其功能就相当运行I s 命令。很多L i n u x 网站都提供b u s y b o x 的源代码下载。本文使用版本是b u s

14、 y b o x l 0 正式版。现在发行的最高版本已经到b u s y b o x l 9。2 2 在发行版的文件系统基础上进行文件系统定制这种文件系统定制的方法是一种比较保守的定制方法,可能定制的文件系统比较大,并且有一些冗余的文件。但是这种方法可以很好的保证系统的正常运行和较多的功能。该方法的基础是对文件系统目录结构的深入了解。下面就每个目录来分析文件系统每个目录的定制方法:b i n:该目录下是已经编译好二进制文件。该目录集中的系统功能的很多方面,并且占据的空间不是很大,从系统功能的全面性与所占大小方面综合考虑。b o o t:该目录包含系统启动所需的文件,包括内核等,定制时把不用的内

15、核、映像文件等从该目录删除即可。d e v:在此目录中包含所有的系统设备。从此目录可以访问各种系统设备。如C D R O M,磁盘驱动器,调制解调器和内存等。所占空间很小,保留该目录。e t c:该目录中包含配置文件。对该目录下的文件,按照性能要求进行定制。用不到的文件给予删除,只保留系统启动和b a s h 等程序的初始化脚本,如:i n i t t a b、r c d、b a s h r c 等。h o m e:目录h o m e 是所有用户的默认位置。嵌入式系统并不用于多用户环境,可将该目录全部删除。l i b:系统运行的库文件,是系统功能全面的基础,保留该目录。I o s t+f o

16、u n d:该目录用于保存丢失的文件。清空即可。m n t:目录m n l 是用于挂载其他文件系统。正常情况下是空的,如果不是空的则清空即可。o p t:该目录通常情况下是空的,如果非空,清空即可。p r o c:从本质上讲该目录是一种虚拟文件系统,其中的文件主要存在与内存中,对系统占用的存储空间没有什么影响,不做任何处理。r o o t:这是根用户的用户主目录,是用户启动脚本所在的目录。该目录所占空间很小,保留即可(确定不再用到的脚本可以进行删除)。s b i n:该目录用以保存基本的系统二进制文件。如f s c k、r e b o o t、s h u t d o w n 等均位于此目录中,

17、必须保留。t m p:该目录用以保存临时文件。所有用户均拥有这个目录的写访问权限。当会话结束后这些文件将会被删除。清空即可。v a r:该目录中是系统运行时不断改变的文件,一般情况下不用更改,但是要注意一点=v a r I o g 中包含各种程序的L o g文件,特别是I o g i n(v a r I o g w t m pl o g 所有到系统的登录和注销)d 和s y s l o g(v a r I o g m e s s a g e 里存储所有核心和系统程序信息。v a r I o g 里的文件经常不确定地增长,可以在系统启动脚本中增加删除这些L o g 文件的语句:#r m r f

18、v a r I o g#m k d i r v a r I o gu s r:该目录包含了大量的用户程序。并且该所占的空间非常大,一般情况下在1 G B 以上(与安装的软件包数量有关)。对该目录,本次设计采用的方法是:先全部删除,然后再安装需要的部分,这样不仅不会影响系统的启动,而且还能大大减小根文件系统的体积。以保留g p m(s h e l l 下的鼠标支持)为例介绍具体方法:首先,把该目录改名为u s r o l d,同时建立一个新的u s r 目录,然后重启系统,进入一个完整安装的R e dH a tL i n u x9 0,进入命令行后执行命令:#r p m-q lg p m该命令可

19、列出g p m 运行所需的全部文件,记下位于u s r 目录下文件(位于u s r s h a r e m a n 下的文件为用户文档),然后将所有列出的文件复制到新建的u s r 的相应目录,此时g p m 即可使用,其他程序的安装方法类似,如果需要安装的软件包比较少的话,该方法比较实用;如果安装的软件包比较多,则应该先安装R P M(安装包管理器),然后通过R P M 来安装其他的软件,这样可以大大减少安装大量软件包的工作量。一般情况下,完成上述工作后,整个根文件系统所占的空间会小于1 0 0 M B(与安装的软件包的多少有关)。这样,文件系统的定制就完成的,同时需要注意的是,如果误删除了

20、有用的系统文件则可能造成系统的不能启动,所以强烈建议删除文件前先做备份。确定删除文件没有错误再将备份删除。3 系统启动配置3 1 引导加载程序引导加载程序(b o o tl o a d e r)会引导操作系统。当机器引导它的操作系统时,B|O S 会读取引导介质上最前面的5 1 2 字节(即主引导记录(m a s t e rb o o tr e c o r d,M B R)。在单一的M B R中只能存储一个操作系统的引导记录,所以当需要多个操作系统时就会出现问题。所以需要更灵活的引导加载程序。目前两个较为流行的引导加载程序:L I L O 和G R U B。L I L O:L i n u xL

21、 o a d e r(L I L O)已经成为所有L i n u x 发行版的标准组成部分。作为最老的L i n u x 引导加载程序,它那不断壮大的L i n u x 社区支持使它能够随时间的推移而发展,并始终能够充当一个可用的现代引导加载程序。当L I L 0 初始引导时,它会按次序打印出每个字母:L I L O。如果所有字母都显示出来,那么第一阶段引导就成功了。G N UG R U B:近来,G R a n dU n i f i e dB o o tl o a d e r(通常称万方数据(7-业控制计算机2 0 1 1 年第2 4 卷第1 期7 1为G R U B)似乎要取代U L O

22、在引导加载程序方面的统治地位。G N UG R U B 基于原来的G R U B 程序(最初由E r i c hS t e f a nB o l e y n 所创建),正在由自由软件基金会(F r e eS o f t w a r eF o u n d a t i o n)进行积极开发。G R U B 的配置都是通过位?b o o t g r u b g r u b c o n f 的一个配置文件来完成的。与L I L O 的配置文件不同,g r u b c o n f 会在引导时被渎取,当被修改时不必去更新M B R。3 2 使用G R U B 配嚣系统启动(1)创建I N I T R D

23、映像使用m k i n i t r d 命令可创建新的内核启动映像。M k i n i t r d 命令有两个选项,第一个选项是新映像的名称,第二个选项指明从中提取模块的内核。#m k i n i t r d b o o t i n i t r d-n e w I m g2 4 2 0-8 c u s t o m该命令可生成内核版本为2 4 2 0 8 c u s t o m 的内核启动映像,运行该命令的当前日录要具备内核模块文件夹。(2)添加新的G R U B 引导映像将新的映像从创建的目录复制到b o o t 目录,然后去修改G R U B 的启动配置,定位至g r u b 目录下,在文件

24、g r u b c o n f 或者m e n u I s t 中添加启动项:t i t l eN E WC U S T O M E DL I N U X(B YS u n X i n h e)r o o t(h d 0 6)k e r n e l b z l m a g er or o o t=L A B E L=i n i t r d b o o t i n i t r d-n e w i m g此时重新启动系统,则系统启动选项中会多出N E WC U S-T O M E DL I N U X(B YS u n X i n h e)项,将该项选中,则启动的系统为定制的系统。这么做与覆盖旧映

25、像相比。如果内核引导失败,可以通过引导旧内核启动来补救,当确保新的内核工作正常时,就可以删掉就的内核的启动项,新的系统就正式取代旧系统工作了。4 启动脚本配置启动脚本是内核启动后所要执行的一系列指令,通过这些脚本用户可以完全透明的看到L i n u x 的启动过程并且通过增删指令来完成对系统启动过程的定制。定制后可大大降低系统启动时间,提高运行效率。L i n u x 启动脚本包括r c d,b a s h r c 等,下文主要讨论启动脚本的配置1)i n i t a b。该脚本主要是指明系统初始化和服务初始化所需要运行的脚本,一般不需要做大修改,例如:若无U P S 支持,可以去掉与U P

26、S 支持有关的部分。其他地方基本不需要修改。2)r c s y s i n i t。该脚本是系统初始化的脚本,在发行版上的r c s y s i n i t 中包含的条目比较多,有近千行,此处将其中的某些初始化过程删除掉,需要修改的地方进行修改,删除和修改的初始化功能包括。例如:n e t w o r kc o n f i g:网络设备初始化,该处修改:1 9N E l、O R K I N G=n o2 4H O S T N A M E=H e n x i S u n 桴自定义的主机名P r i n tat e x tb a n n e r:处于第6 0 行该行显示欢迎信息,用户可定制。L o

27、 a ds o u n dm o d u l e s:位于第3 9 2 行,该段用于声卡模块的装入,由于该嵌入式系统不具备声音系统,且内核不支持声音,所以此处去掉声卡的初始化部分。q u o t a o n:位于第5 7 3 行,用于开启q u o t a(磁盘配额管理),该功能没有必要启动,删除该段内容。该段上面的q u o t a 检测也同样可以删除。其他地方也有可删除或者修改的地方,用户可按照要求定制。该脚本启动后,运行级别为3,则启动r c 3 d。3)r c 3 d。r c d 包括的部分很多,根据运行级别包括r c 7 d(?代表系统的运行等级)。该处使用的运行级别为3,所以执行的

28、脚本为r c 3 d。确切的说,r c 3 d 是一个目录,其中包含了系统初始化的一些脚本文件,按需求进行删除或者修改文件即可。4)b a s h r c:b a s h 的启动脚本。b a s h 的启动脚本比较多,主要包括r o o V b a s h r c、r o o t b a s h p r o f i l e、e t c p r o f i l e d 文件夹等,修改该部分主要就是对b a s h 的初始化进行一些定制,不需要的功能给予删除。该部分的修改有一定的规律,即带有不能使用的命令(位于u s r 中,多数为用户命令,嵌入式系统中不需要)的行删除即可,另外,还有位于e t

29、c p r o f i l e d 且录下的脚本,可以根据需求修改,直到满足基本功能即可。5 结束语使用该方式构建的嵌入式L i n u x 操作系统具有内核小,运行速度快,稳定可靠、功能配置灵活等特点,可广泛应用于各种嵌入式系统和工业现场中。使用该方式构建的液压支架监控系统已经应用于煤矿现场。性能稳定可靠。参考文献 1 孙新贺,伍小杰,于月森,等基于L i n u x 的液压支架监控系统设计 J 微计算机信息,2 0 1 0,2 6(5 2):4 4 4 5 2 许德新嵌入式L i n u x 在P C 1 0 4 平台上的构建与实现 J 应用科技,2 0 0 6(1 0)3 邹森,包启亮P

30、 C 1 0 4 下嵌入式L i n u x 操作系统的优化方案 J 光电工程,2 0 0 4(1 2)4 熊伟,董金明嵌入式L i n u x 中根文件系统的实现 J 电子测量技术,2 0 0 7(7)5 谷丰嵌入式L i n u x 系统平台的构建 J 电脑与信息技术2 0 0 3(6)【6 刘志勇,吴健基于P C 1 0 4 平台嵌入式L i n u x 系统核心定制方法 J 海洋技术,2 0 0 4,2 3(1)收稿日期:2 0 1 0 1 0 2 7(上接第6 8 页)参考文献3 结束语 1 晨曦,刘天宇,张亮中药指纹图谱的研究概况 J 黑龙江医药,本文介绍了一种基于数字图像处理的凝

31、胶指纹图谱谱带定位方法,其处理的过程和许多图像分析问题相似,泳道中的谱带可以被精确的定位出来。但是,本方法中仍然存在一些在后续研究中解决的问题。本文建立了一个数学模型用来分析定位凝胶指纹图谱泳道中的谱带。但是在定位谱带之前必须提取出泳道,本文是采取手动提取泳道的方法,为了进一步提高分析鉴别凝胶指纹图谱的效率,需要寻戡一种自动提取泳道的方法,这是在后续研究中首先需要解决的问题。2 0 0 9 2 2(2):1 6 3-1 6 4 2 何泰诚朱红全勇一种基于边缘特征的亚像素投影配准算法 J】光子学报,2 0 0 8,3 7(1 1):2 3 4 6 2 3 4 9 3 朱尔一,王小如一种适用于处理

32、指纹图谱数据的主成分正交分解算法 J 厦门大学学报2 0 0 5 2 2(6):8 8 4 8 8 5 4 韩思奇,王蕾图像分割的阈值法综述 J 系统工程与电子技术,2 0 0 2,2 4(6):9 1 9 4 5 董鸿哗,李定远,金杰计算机辅助分析中药色谱指纹图谱关键技术研究 J 中南医药2 0 0 8,6(1):1 0 1-1 0 5 收稿目期:2 0 1 0 9 2 5】万方数据一种嵌入式Linux操作系统的构建方法一种嵌入式Linux操作系统的构建方法作者:孙新贺,王晓辉,于月森作者单位:中国矿业大学信息与电气工程学院,江苏,徐州,221116刊名:工业控制计算机英文刊名:INDUST

33、RIAL CONTROL COMPUTER年,卷(期):2011,24(1)参考文献(12条)参考文献(12条)1.刘志勇;吴健 基于PC/104平台嵌入式Linux系统核心定制方法期刊论文-海洋技术 2004(01)2.孙新贺.伍小杰.于月森.杨刚 基于Linux的液压支架监控系统设计 2010(14)3.谷丰 嵌入式Linux系统平台的构建期刊论文-电脑与信息技术 2003(06)4.许德新 嵌入式Linux在PC/104平台上的构建与实现 2006(10)5.熊伟;董金明 嵌入式Linux中根文件系统的实现期刊论文-电子测量技术 2007(07)6.邹森.包启亮 PC/104下嵌入式Linux操作系统的优化方案 2004(12)7.邹森;包启亮 PC/104下嵌入式Linux操作系统的优化方案 2004(12)8.熊伟.董金明 嵌入式Linux中根文件系统的实现 2007(7)9.许德新 嵌入式Linux在PC/104平台上的构建与实现 2006(10)10.谷丰 嵌入式Linux系统平台的构建 2003(6)11.孙新贺;伍小杰;于月森 基于Linux的液压支架监控系统设计期刊论文-微计算机信息 2010(5-2)12.刘志勇.吴健 基于PC/104平台嵌入式Linux系统核心定制方法 2004(1)本文链接:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁