当前位置: 首页 > article >正文

linux 内核如何读取你配置好的.config文件

前言

众所周知,linux kernel可以根据使用者的需要灵活的配置架构、功能和模块。甚至在文件内部的同一个接口也会根据配置不同条件编译不同的实现,这些都是通过读取在内核的顶层目录通过make menuconfig后生成的.config文件实现的。
那么这个读取的过程是怎么实现的呢?

1.条件编译模块

在这里插入图片描述
顶层Makefile通过export将.config文件中保存的配置传递到下一级Makefile

2.文件内部的条件编译宏

在这里插入图片描述
linux kernel会在编译生成中间文件时加上-include autoconf.h,这个autoconf.h实际上就是内核在编译过程中读取.config文件自动生成的配置相关头文件。加上-include这个选项可以使得.c文件即使没有声明包含该头文件,也能包含到它。

autoconf.h文件的生成位置:
scripts/kconfig/confdata.c:conf_write_autoconf(void)

在这里插入图片描述
在这里插入图片描述
rename函数作用:

SYNOPSIS
       #include <stdio.h>
DESCRIPTION
	rename() renames a file, moving it between directories if required.  Any other hard links to the file (as created using link(2)) are unaffected.  Open file descriptors for oldpath are also unaffected.
RETURN VALUE
       On success, zero is returned.  On error, -1 is returned, and errno is set appropriately.
	

http://www.kler.cn/a/354997.html

相关文章:

  • 问题解决:发现Excel中的部分内容有问题。是否让我们尽量尝试恢复? 如果您信任此工作簿的源,请单击“是”。
  • HTTP、HTTPS和SOCKS5代理協議
  • Redis分布式锁释放锁是否必须用lua脚本?
  • GO--堆(have TODO)
  • vscode 快速切换cangjie版本
  • Redis存在安全漏洞
  • 【CentOS】Shell脚本案例:归档文件
  • C++从入门到起飞之——红黑树 全方位剖析!
  • 【Flutter 面试题】 Flutter如何使用路由、全局错误捕获和自定义组件统一管理错误页面?
  • SpringBoot3响应式编程全套-R2DBC
  • 模板方法设计模式
  • hdfs API操作 hadoop3.3.5
  • java项目技术架构图-样例
  • mysql--表的约束
  • 【Ubuntu】虚拟机共享文件夹启用
  • NFTScan | 10.07~10.13 NFT 市场热点汇总
  • vmware ubuntu根分区扩容
  • 纯前端如何实现批量下载功能呢?
  • ChatGPT免费使用:人工智能在现代社会中的作用
  • Day31 || 122.买卖股票的最佳时机 II、55. 跳跃游戏、 45.跳跃游戏II 、1005.K次取反后最大化的数组和
  • LangGraph - Hierarchical Agent Teams
  • 京东背调有病吧......
  • 开源节流-2024年10月17日
  • 【秋招笔试】10.13拼多多(已改编)秋招-三语言题解
  • LLM大模型的评测维度有哪些?
  • 试用cursor的简单的记录