内核_内核配置系统

内核_内核配置系统

ID:44333317

大小:112.00 KB

页数:42页

时间:2019-10-20

内核_内核配置系统_第1页
内核_内核配置系统_第2页
内核_内核配置系统_第3页
内核_内核配置系统_第4页
内核_内核配置系统_第5页
资源描述:

《内核_内核配置系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章Linux内核配置系统上一章中配置界面到底如何生成的呢?本节结合配置系统的3个部分分析一下!8.1.配置系统的基本结构8.2.Makefile8.3配置文件8.1.配置系统的基本结构Linux内核的配置系统由三个部分组成,分别是:Makefile分布在Linux内核源代码中的Makefile,定义Linux内核的编译规则;配置文件(config.in)给用户提供配置选择的功能;配置工具包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于Ncurses图形界面以及基于Xwindows图形界面的用户配置界面,各自对应于M

2、akeconfig、Makemenuconfig和makexconfig)这些配置工具都是使用脚本语言,如Tcl/TK、Perl编写的(也包含一些用C编写的代码)。一般的内核开发者无须了解它们的原理,只需要知道如何编写Makefile和配置文件就可以,除非是配置系统的维护者须了解它们的原理。8.2.Makefile由于Linux内核源代码是按照树形结构组织的,所以Makefile也被分布在目录树中。Linux内核中的Makefile以及与Makefile直接相关的文件有:(1)顶层Makefile:顶层Makefile,是整个内核配置、编译的总体控制文件。(2).

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

4、置选择顶层Makefile有两个主要的任务:产生vmlinux文件产生内核模块(module)为了实现这两个任务,顶层Makefile递归的进入到内核的各个子目录中,分别调用位于这些子目录中的Makefile(取决于内核的配置)如:在顶层Makefile中,有一句:includearch/$(ARCH)/Makefile,包含了特定CPU体系结构下的Makefile,这个Makefile中包含了平台相关的信息。子目录下的Makefile同样也根据.config给出的配置信息,构造出当前配置下需要的源文件列表,并在文件的最后有include$(TOPDIR)/Rul

5、es.make。Rules.make文件起着非常重要的作用,它定义了所有Makefile共用的编译规则。例如,如果需要将本目录下所有的c程序编译成汇编代码,需要在Makefile中有以下的编译规则:%.s:%.c$(CC)$(CFLAGS)-S$<-o$@有很多子目录下都有同样的要求,就需要在各自的Makefile中包含此编译规则,这会比较麻烦。而Linux内核中则把此类的编译规则统一放置到Rules.make中,并在各自的Makefile中包含进了Rules.make(includeRules.make),这样就避免了在多个Makefile中重复同样的规则。对于

6、上面的例子,在Rules.make中对应的规则为:%.s:%.c$(CC)$(CFLAGS)$(EXTRA_CFLAGS)$(CFLAGS_$(*F))$(CFLAGS_$@)-S$<-o$@8.2.2Makefile中的变量顶层Makefile定义并向环境中输出了许多变量,为各个子目录下的Makefile传递一些信息。有些变量,比如SUBDIRS,不仅在顶层Makefile中定义并且赋初值,而且在arch/*/Makefile还作了扩充。常用的变量有以下几类:1)版本信息 版本信息有:VERSION,PATCHLEVEL,SUBLEVEL,EXTRAVERSIO

7、N,KERNELRELEASE。版本信息定义了当前内核的版本,例如:VERSION=2,PATCHLEVEL=4,SUBLEVEL=18,EXATAVERSION=-rmk7,它们共同构成内核的发行版本KERNELRELEASE:2.4.18-rmk72)CPU体系结构:ARCH在顶层Makefile的开头,用ARCH定义目标CPU的体系结构,例如:ARCH:=arm等。许多子目录的Makefile中,要根据ARCH的定义选择编译源文件的列表。3)路径信息:TOPDIR,SUBDIRSTOPDIR定义了Linux内核源代码所在的根目录。例如:各个子目录下的Make

8、file通

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

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

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