内核_内核配置系统.ppt
文本预览下载声明
不同的是: 配置变量/symbol/的取值范围将依赖于配置变量 列表/dep/ …。 这就意味着:被定义的配置变量所对应功能的取舍 取决于依赖列表所对应功能的选择。 以dep_bool为例,如果/dep/ …列表的所有配置变 量都取值y,则显示/prompt/,用户可输入任意的值给配 置变量/symbol/,但是只要有一个配置变量的取值为n, 则/symbol/被强制成n。 不同依赖语句的区别在于它们由依赖条件所产生的 取值范围不同。 5) 选择语句 choice /prompt/ /word/ /word/ choice 语句首先给出一串选择列表,供用户选择 其中一种。比如 Linux for ARM 支持多种基于 ARM core 的 CPU,Linux 使用 choice 语句提供一个 CPU 列表,供用户选择: choice ARM system type \ Anakin CONFIG_ARCH_ANAKIN \ Archimedes/A5000 CONFIG_ARCH_ARCA5K \ Cirrus-CL-PS7500FE CONFIG_ARCH_CLPS7500 \ …… SA1100-based CONFIG_ARCH_SA1100 \ Shark CONFIG_ARCH_SHARK RiscPC Choice 首先显示 /prompt/,然后将 /word/ 分解 成前后两个部分,前部分为对应选择的提示符,后部分 是对应选择的配置变量。 用户选择的配置变量为 y,其余的都为 n。 6) if语句 if [ /expr/ ] ; then /statement/ ... fi if [ /expr/ ] ; then /statement/ ... else /statement/ ... fi if 语句对配置变量(或配置变量的组合)进行判断, 并作出不同的处理。 判断条件 /expr/ 可以是单个配置变量或字符串, 也可以是带操作符的表达式。 操作符有:=,!=,-o,-a 等。 7) 菜单块(menu block)语句 mainmenu_option next_comment comment ….. … endmenu 引入新的菜单。在向内核增加新的功能后,需要 相应的增加新的菜单,并在新菜单下给出此项功能的 配置选项。 Comment 后带的注释就是新菜单的名称。所有归 属于此菜单的配置选项语句都写在 comment 和 endmenu 之间。 * 第八章 Linux内核配置系统 上一章中配置界面到底如何生成的呢? 本节结合配置系统的3个部分分析一下! 8.1. 配置系统的基本结构 8.2. Makefile 8.3 配置文件 8.1. 配置系统的基本结构 Linux内核的配置系统由三个部分组成,分别是: Makefile 分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则; 配置文件(config.in) 给用户提供配置选择的功能; 配置工具 包括配置命令解释器(对配置脚本中使用的配置 命令进行解释)和配置用户界面(提供基于字符 界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make config、Make menuconfig 和 make xconfig) 这些配置工具都是使用脚本语言,如 Tcl/TK、Perl 编写的(也包含一些用 C 编写的代码)。 一般的内核开发者无须了解它们的原理,只需要知道 如何编写 Makefile 和配置文件就可以,除非是配置系统 的维护者须了解它们的原理。 8.2. Makefile 由于 Linux 内核源代码是按照树形结构组织的, 所以 Makefile 也被分布在目录树中。 Linux 内核中的 Makefile 以及与 Makefile 直接 相关的文件有: (1)顶层Makefile: 顶层 Makefile,是整个内核配置、编译的总体控制 文件。 (2).config: 内核配置文件,包含由用户选择的配置选项,用来 存放内核配置后的结果(如 make config)。 8.2.1 Makef
显示全部