linux内核
课程报名
linux内核构建流程
课程介绍
相关文章
相关视频
问答
进入linux内核源码目录
购买课程并登录之后,才可查看完整版数据
GitHub登录
生成内核配置
make defconfig // 生成内核的默认配置
Makefile:
%config
scripts/kconfig/Makefile:
defconfig
scripts/kconfig/conf --defconfig=arch/x86/configs/x86_64_defconfig Kconfig
scripts/kconfig/conf.c:
main // conf程序的main函数
scripts/kconfig/parser.y:
conf_parse // 解析Kconfig中定义的内核配置项
scripts/kconfig/confdata.c:
conf_read // 根据arch/x86/configs/x86_64_defconfig文件的内容,为对应的内核配置项赋值
scripts/kconfig/conf.c:
conf_set_all_new_symbols // 对于那些还没有值的内核配置项,如果Kconfig中为其定义了默认值,则把它设置为默认值,否则设置为其类型的零值
scripts/kconfig/confdata.c:
conf_write // 将最终的内核配置写到.config文件里
scripts/kconfig/confdata.c:
conf_write_autoconf // 为 Makefile/c/rust 生成对应的 include/config/auto.conf, include/generated/autoconf.h, include/generated/rustc_cfg 文件
linux内核各种配置方式的区别
构建内核
make -j4 // 参数-j4表示最大允许4个任务同时运行,根据机器配置调节该参数值,当然,也可以不加这个参数
Makefile:
__all // 当make没有指定构建目标时,就会执行Makefile里的第一个目标,对于linux内核来说,就是__all
xxxxxxxx:
xxxxx // xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx:
xxx
xxxxxxxx:
xxxxxxx
xxxxxxxx:
xxxxxxxxx
xxxxxxxx:
xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx:
xxxxxxx // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx:
xxx
xxxxxxxxxxxxxxxxx:
xxxxxxx
xxxxxxxx:
xxxxxxx // xxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx:
xxx
xxxxxxxx:
xxxxxxx
xxxxxxxx:
xxxxxxx // xxxxxxxxx
xxxxxxxx:
xxxxxxx
xxxxxxxx:
xxxxxxxxxxxxxxx
xxxxxxxx:
xxxxxxx // xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx:
xxxxxxx
xxxxxxxx:
xxxxxxx // xxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx