Linux内核配置系统浅析.doc

Linux内核配置系统浅析.doc

ID:51075355

大小:114.00 KB

页数:11页

时间:2020-03-18

Linux内核配置系统浅析.doc_第1页
Linux内核配置系统浅析.doc_第2页
Linux内核配置系统浅析.doc_第3页
Linux内核配置系统浅析.doc_第4页
Linux内核配置系统浅析.doc_第5页
资源描述:

《Linux内核配置系统浅析.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、随着Linux操作系统的广泛应用,特别是Linux在嵌入式领域的发展,越来越多的人开始投身到Linux内核级的开发屮。面对口益庞大的Linux内核源代码,开发者在完成白己的内核代码示,都将面临肴同样的问题,即如何将源代码融入到Linux内核屮,增加相应的Linux配置选项,并最终被编译进Linux内核。这就需要了解Linux的内核配置系统。众所周知,Linux内核是由分布在全球的Linux爱好者共同开发的,Linux内核每天都血临着许多新的变化。但是,Linux内核的组织并没有出现混乱的现象,反而显得非常的简洁,而且具有很好的扩展性,开发人员可以很方便的向Linux内核屮增加新的内容。原

2、因Z—就是Linux采用了模块化的内核配置系统,从而保证了内核的扩展性。木文首先分析了Linux内核屮的配置系统结构,然后,解释了Makefile和配置文件的格式以及配置语句的含义,最后,通过一个简单的例子-TESTDriver,具体说明如何将白行开发的代码加入到Linux内核中。在下血的文章中,不可能解释所有的功能和命令,只对那些常用的进行解释,至于那些没有讨论到的,请读者参考后面的参考文献。1.配置系统的基本结构Linux内核的配置系统由三个部分组成,分别是:1.Makefile:分布在Linux内核源代码中的Makefile,定义Linux内核的编译规则;2.配置文件(config

3、.in):给用户提供配置选择的功能;3•配置T具:包括配置命令解释器(对配置脚木屮使川的配置命令述行解释)和配置用户界面(提供基于字符界面、基于Ncurses图形界面以及基于Xwindows图形界面的用户配置界面,各自只寸丿应于MakeconfigMakemenuconfig木口makexconfig)。这些配置T具都是使用脚本语言,如Tcl/TK、Perl编写的(也包含一些用C编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写Makefile和配置文件就可以。所以,在木文屮,我们

4、只对Makefile和配置文件进行讨论。另外,凡是涉及到与具体CPU体系结构相关的内容,我们部以ARM为例,这样不仅可以将讨论的问题明确化,而且对内容本身不产生影响。2.Makefile2.1Makefile概述Makefile的作用是根据配置的情况,构造出需要编译的源文件列表,然后分别编译,并把目标代码链接到—起,最终形成Linux内核二进制文件。由于Linux内核源代码是按照树形结构组织的,所以Makefile也被分布在目录树中。Linux内核中的Makefile以及与Makefile直接相关的文件有:3.4Makefile:顶层Makefile,是整个内核配置、编译的总体控制文件。

5、3.5.config:内核配置文件,包含由用户选择的配置选项,用来存放内核配置后的结果(如makeconfig)。3.6arch/*/Makefile:位于各种CPU体系目录下的Makefile,如arch/arm/Makefile,是针对特定平台的Makefileo3.7备个了目录下的Makefile:比如drivers/Makefile,负责所在了目录下源代码的管理。3.8Rules.make:规则文件,被所有的Makefile使用。用户通过makeconfig配置后,产生了.config。顶层Makefile读入.config屮的配置选择。顶层Makefile有两个主要的任务:产生

6、vmlinux文件和内核模块(module)o为了达到此目的,顶层Makefile递归的进入到内核的各个子H录屮,分别调用位于这些子日录屮的Makefile..至于到底进入哪些子H录,取决于内核的配置。在顶层Makefile中,有-句:includearch/$(ARCH)/Makefile,包含了特定CPU体系结构下的Makefile,这个Makefile屮包含了平台相关的信息。位于备个了目录下的Makefile同样也根据.config给出的配置信息,构造出当前配置下需要的源文件列表,并在文件的最后有include$(T0PDIR)/Rules.makeoRules.make文件起着非

7、常重要的作用,它定义了所有Makefile共用的编译规则。比如,如果需要将木目录下所有的c程序编译成汇编代码,需要在Makefile中有以下的编译规则:%.S:%.C$(CC)$(CFLAGS)-S$<-o$@有很多了目录下都有同样的要求,就需要在乞H的Makefile屮包含此编译规则,这会比较麻烦。而Linux内核屮则把此类的编译规则统一放置到Rules.make屮,并在各白的Makefile屮包含进了Rules.make(inc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。