Linux内核编程02:Kbuild子系统
Kbuild 即kernel build,是用来编译Linux内核的一套Makefile。Kbuild基于GNU make设计,但是又对Makefile进行了各种扩充:
基于图形界面的菜单式配置
各种预定义目标和变量:menuconfig、obj-y
提供各种跨平台工具和编译
递归式Makefile
Linux内核可以灵活自由的高度裁剪和定制,其底层技术支撑除了模块机制之外,还有一项技术就是:可以使用Kbuild编译系统来方便地进行裁剪、配置、编译和安装。内核中的Kbuild子系统随着内核版本不断更新迭代,功能也越来越强大,也越来越受欢迎,被越来越多的开源软件借鉴和使用,比如U-boot、Busybox、Buildroot、Xen等,都在使用Kbuild这种编译系统来管理和维护。总结起来,Kbuild具有如下优势:
高度灵活可定制:编译参数、编译模块选项都可以定制
使用方便:内核裁剪、添加模块、删除模块操作简单
配置简单:可交互的图形菜单
学习Kbuild本期课程预期会有哪些收获?
深刻理解Makefile是如何编译Linux内核、U-boot等大型工程的
遇到编译错误时,提供更多的视角去分析
提供了一张地图,破解Linux内核的“黑暗森林”
有助于理解内核启动流程、组织架构
掌握Kbuild工作原理,对学习其他开源软件有帮助
本期课程主要内容:
如何使用Kbuild Makefile:
裁剪、配置内核
编译内核
往内核中添加新的模块
Kbuild工作流程分析:
内核镜像如何生成?
内核模块编译
内核模块安装
内核头文件安装
内核源码中的空头文件探秘
学习须知:
学习本课程前,需要具备Makefile基础知识,知道程序编译、链接的基本原理。如果没有此基础,建议先学习之前的《Linux三剑客》基础课程:Makefile工程实践:从零开始一步一步写项目的Makefile,学习效果会更好。
Linux内核编程02:Kbuild子系统相关推荐
- Linux 内核编程指南
Linux 内核编程指南 PeterJay Salzman MichaelBurian OriPomerantz Copyright© 2001 Peter Jay Salzman 2007−05 ...
- linux内核_Linux驱动编程的本质就是Linux内核编程
由于Linux驱动编程的本质属于Linux内核编程,因此我们非常有必要熟悉Linux内核以及Linux内核的特点. 这篇文章将会帮助读者打下Linux驱动编程的基础知识. 本篇文章分为如下三个小节进行 ...
- linux内核编程(一)
这些天在学习linux内核编程,就在这里小小的show以下. 首先编写如下的linux代码.并命名为hello.c 这里你应该注意亮点: 第一.linux内核编程,不同于普通的用户态下的编程:有一个入 ...
- 由尚德linux内核编程进阶教材,由尚德老师Linux内核编程入门视频教程
由尚德老师讲解的Linux内核编程教程入门课程,此课程学完后可以接着学进阶篇,下载地址:http://blog.csdn.net/congxue/archive/2009/05/17/4194112. ...
- 初探linux内核编程,参数传递以及模块间函数调用
一.前言 我们一起从3个小例子来体验一下linux内核编程.如下: 1. 内核编程之hello world 2. 模块参数传递 3. 模块间函数调用 二.准备工作 首先,在你的linux系统上面安装l ...
- 【华为云技术分享】Linux内核编程环境 (1)
在上一期中,我们介绍了Linux内核的源码结构,这一期我们介绍Linux内核编程环境,首先介绍的是Linux内核的编译方法. 一.Linux内核编译方法 本期中我们以Linux 4.19.94版内核来 ...
- Linux内核编程接口函数
Linux内核编程接口函数 转载请注明出处: http://blog.csdn.net/drivelinux/article/details/8656280 字符设备相关函数 1.alloc_chrd ...
- linux内核编程(hello world示例程序)
linux内核编程(hello world) Linux可加载内核模块是 Linux 内核的最重要创新之一.它们提供了可伸缩的.动态的内核.其它开发者可以不用重新编译整个内核便可以开发内核层的程序,极 ...
- Linux 内核编程风格
Linux 内核编程风格 (518 个字於此篇帖子) (已阅读: 1177 次) 这篇短小的文章是对Linux内核编程风格的建议.编程风格非常的个性化,而且,我并不想将我的观点强加给任何人,但是为了变 ...
- linux内核添加spi驱动,Linux内核驱动之spi子系统spi协议.docx
Linux内核驱动之spi子系统spi协议 概况 SPI接口是摩托罗拉首先提出的全双工三线同步串行外围接口SCK,MOSI,MISO,采用主从模式(Master Slave)架构:支持多slave模式 ...
最新文章
- 【数据库】适用于SQLite的SQL语句(三)
- html经过一段时间自动交换图像,Dreamweaver交换行为:实现图像交换
- BZOJ 1013 JSOI2008 球形空间产生器sphere 高斯消元
- 吉大20春学期C语言程序设计作业二,吉大18春学期《C语言程序设计》在线作业二【答案】...
- [微信开发] - 用户获取推广二维码
- AI基础:走进深度学习
- Centos7安装Oracle JDK
- 大前端最强vscode教程(基础篇)
- 数据结构顺序表基本流程
- mysql 扫描所有字段_select扫描mysql innodb表时,select只输出主键列,会不会扫描全表?...
- BZOJ1298:[SCOI2009]骰子的学问
- makefile 打印变量_通过实例学Makefile
- siblings() 获得匹配集合中每个元素的同胞,通过选择器进行筛选是可选的。
- Android混淆和加固详解
- cntv客户端_cntv网络电视_cntv官方下载-太平洋下载中心
- 计算机考研吉大东北大学大连理工,考研就选985/211!这7所985高校却一个A+学科都没有,认真的吗?...
- CS相关经典书籍的书评
- 贪吃的小Q_腾讯2018春招技术类编程题
- Mounty for Mac(NTFS格式读写工具)
- 纯css3 夜晚天空月亮动画特效(源码公益站)
热门文章
- 计算机软件cae,各种CAE软件介绍
- 【算法】数独解题——用python代码
- 终极算法——第九章:解开迷惑
- 黑群晖docker清理缓存_群晖Docker半洗白 不关机快速修改sn/mac方法
- APPCLOUD STUDIO结合 手机APPLOADER进行模拟开发
- 线性代数中(线代中)的克莱姆法则,又译克拉默法则(Cramer‘s Rule)
- Jenkins教程:使用Jenkins进行持续集成
- [FFmpeg] 拼接音频
- 抓包工具Charles乱码解决办法
- 账龄分析表excel模板_老会计分享财务报表及EXCEL会计报表分析系统模板!收藏领取!...