首页>百科 > 正文

一个Linux驱动工程师必知的内核编译机制

2023-08-07 17:57:33    出处:哔哩哔哩

Linux内核的编译主要过程:配置、编译、安装

配置主要由Kconfig提供图形界面完成

编译主要基于Kbuild编译系统,执行make完成编译


(资料图片)

安装主要也是基于Kbuild提供的脚本,然后执行make完成安装

Kconfig

Kconfig用于内核的配置,make menuconfig显示的菜单就来自Kconfig

make menuconfig的菜单包括了多层,每层都是各个目录下对应的Kconfig产生的,选择好配置后,配置结果会被保存到.config文件中。

执行Makefile时,Makefile就会根据.config的结果来实现内核的编译。

Kconfig语法

Kbuild

KbuildKernel build,是内核的一个编译系统。

简单来说,Kbuild是对Makefile语法功能的扩展。

例如,kbuild定义了很多有用的变量如obj-m`` obj-y,-objs等等,用户只要为这些变量赋值,kbuild会自动把代码编译到内核或者编译成模块。

Linux内核使用kbuild编译时,会扫描两次LinuxMakefile:首先读取顶层的Makefile文件,然后根据读取到的内容第二次读取kbuild的Makefile文件来编译Linux内核。

内核的Makefile包括五部分:

【文章福利】小编推荐自己的Linux内核技术交流群:【749907784】整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!!!(含视频教程、电子书、实战项目及代码)   

Makefile

顶层的Makefile是编译的入口,下面分析一下顶层Makefile文件。

顶层Makefile会向各子目录的Makefile传递一些信息,有些变量,例如vmlinux-dirs,不仅在顶层Makefile中定义并且赋值,而且在arch/*/Makefile还作了扩充。

原文作者:嵌入式Linux充电站

关键词:

消费
产业
《成龙历险记》五个让人疑惑的情节,小玉是猪队友? 《成龙历险记》让人疑惑的情节之二:小玉变成猴子之后,为什么不对着成
光伏组件有期货属性,行业呼吁应有调价机制 调查发现,光伏组件交易方面,部分招标方已经采用适当的调价机制,但行
港元拆息全线向下 与楼按相关的一个月HIBOR终止6连升,跌6 93点子至5 36054%。
国家有关部门印发通知进一步促进脱贫人口持续增收 新华社北京8月1日电为进一步做好脱贫人口增收工作,牢牢守住不发生规模
基金