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

内核编译机制

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

  • 配置主要由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包括五部分:

图片

Makefile

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

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

图片

kbuild的更多用法,详细参考内核源码文档:

Documentation/kbuild/makefiles.txt

Documentation/kbuild/modules.txt

http://www.lryc.cn/news/134950.html

相关文章:

  • 机器人TF坐标系变换与一些可视化工具的应用
  • c++ 友元 运算符重载详解
  • DataWhale 机器学习夏令营第三期
  • 回归预测 | MATLAB实现BES-LSSVM秃鹰搜索算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图)
  • python分析实战(4)--获取某音热榜
  • Java根据List集合中的一个字段对集合进行去重
  • (AtCoder Beginner Contest 315)
  • API 接口选择那个?RESTful、GraphQL、gRPC、WebSocket、Webhook
  • 「Python|音视频处理|环境准备」如何在Windows系统下安装并配置音视频处理工具FFmpeg
  • 软考高级架构师下篇-12层次式架构设计理论与实践
  • 234. 回文链表
  • LInux之例行工作
  • C++,从“hello world“开始
  • /root/.ssh/config line 2: Bad protocol 2 host key algorithms ‘+ssh-rsa‘.
  • mac m1上系统内录内部声音的方法/无需安装Blackhole
  • 数字人学习目录
  • PHP 房产网站系统Dreamweaver开发mysql数据库web结构php编程计算机网页项目
  • 0基础入门代码审计-2 Fortify初探
  • qiiuzhiji4
  • 构建 NodeJS 影院微服务并使用 docker 部署【01/4】
  • 变频器和plc之间无线MODBUS通讯
  • 【云原生】3分钟快速在Kubernetes1.25部署Prometheus2.42+Grafana9.5.1+Alertmanager0.25
  • Redis中常见的缓存穿透、缓存击穿、缓存雪崩、缓存预热解决方案
  • 第二章-自动驾驶卡车-自动驾驶卡车前装量产的要求
  • Midjourney API 申请及使用
  • mysql mysql 容器 忽略大小写配置
  • 第58步 深度学习图像识别:Transformer可视化(Pytorch)
  • angular实现全局组件
  • Spring编程模型(范式)
  • Golang GORM 单表删除