• 2.15.6.menuconfig的工作原理


    本节讲解menuconfig的工作原理,主要揭示了menuconfig和.config、Kconfig文件的关联。

    2.15.6.1、menuconfig本身由一套软件支持

    (1)linux为了实现图形化界面的配置,专门提供了一套配置工具menuconfig。
    (2)ncurses库是linux中用来实现文字式的图形界面,linux内核中使用了ncurses库来提供menuconfig
    (3)scriptskconfiglxdialog目录下的一些c文件就是用来提供menuconfig的那些程序源代码。

    2.15.6.2、menuconfig读取Kconfig文件

    (1)menuconfig本身的软件只负责提供menuconfig工作的这一套逻辑(譬如在menuconfig中通过上下左右箭头按键来调整光标,Enter ESC键等按键按下的响应),而并不负责提供内容(菜单里的项目)。
    (2)menuconfig显示的菜单内容(一方面是菜单的目录结构,另一方面是每一个菜单项目的细节)是由内核源码树各个目录下的Kconfig文件来支持的。Kconfig文件中按照一定的格式包含了一个又一个的配置项,每一个配置项在make menuconfig中都会成为一个菜单项目。而且menuconfig中显示的菜单目录结构和源码目录中的Kconfig的目录结构是一样的。
    (3)在相应的Kconfig文件中删除一个config项,则再次make menuconfig时这个项目已经看不到了。

    2.15.6.3、menuconfig读取/写入.config文件

    (1)刚才已经知道menuconfig的菜单内容来自于Kconfig文件,但是每一个菜单的选择结果(Y、N、M)却不是保存在Kconfig文件中的。Kconfig文件是不变的,Kconfig文件只是决定有没有这个菜单项,并不管这个菜单项的选择结果。
    (2)menuconfig工作时在我们make menuconfig打开时,他会读取.config文件,并且用.config文件中的配置选择结果来初始化menuconfig中各个菜单项的选择值。

    总结:菜单项的项目内容从Kconfig文件来,菜单项的选择值从.config文件来

    (3)当我们每次退出make menuconfig时,menuconfig机制会首先检查我们有没有更改某些配置项的值,如果我们本次没有更改过任意一个配置项目的值那直接退出;如果我们有改动配置项的值则会提示我们是否保存。此时如果点保存,则会将我们更改过的配置重新写入.config文件中记录,下一次再次打开make menuconfig时会再次加载.config,最终去编译内核时编译连接程序会考虑.config中的配置值指导整个编译连接过程。

    总结:本节课主要内容就是讲:menuconfig和Kconfig和.config的关系。

    linux内核大部分目录下都有一个Kconfig文件,menuconfig通过读取Kconfig文件来形成一个图形菜单。
    linux内核下有一个Kconfig文件夹,里面有一些C文件用来提供menuconfig支持。

    我的理解:linux通过内核源码树[目录层次]来管理代码,[相当于一个树形结构],Kconfig相当于一个算法,遍历这个树形结构,把这些目录之间的关系建立起来;menuconfig通过读取Kconfig文件夹形成一个图形菜单选项,然后我们可以决定哪个目录要不要编译,并且将选项结果写入.config文件;内核会读取.config文件里面的内容通过设置Makefile指导整个编译链接过程

  • 相关阅读:
    XAF中实现Combox属性编辑(官方)
    XAF 支持多数据库
    XAF 如何使用复合主键和复合外键
    如何禁止双击ListView记录显示DetailView?
    XAF中主从列表模式下获取当前主对象实例
    使用一个非持久字段PersistentAlias
    XAF 如何将文件存储在文件系统中而不是数据库中
    XAF中如何制作弹出窗体选择数据到ListView列表
    XAF 如何用其他线程更新对象
    XPO中 聚合函数的使用(Count,Max,Sum,Min)
  • 原文地址:https://www.cnblogs.com/Ocean-Star/p/9229654.html
Copyright © 2020-2023  润新知