linux内核开发第7讲:linux内核源码编译过程

1.makefile

在linux内核源码的根目录下面有一个makefile文件
各级目录下也都有自己的Makefile文件
顶层的makefile文件通过include各个子目录下面的makefile文件
就可以把整个内核源码全部包含进来

2.根目录下面的makefile文件

在第546行,会include体系架构相关的makefile文件
include arch/$(SRCARCH)/Makefile
在编译内核的时候有指定SRCARCH等于X86,那么就会include x86的makefile

在这里插入图片描述

除此之外,还有子目录init,drivers,net等都有对应的赋值
# Objects we will link into vmlinux / subdirs we need to visit
init-y		:= init/
drivers-y	:= drivers/ sound/ firmware/
net-y		:= net/
libs-y		:= lib/
core-y		:= usr/
virt-y		:= virt/

3.编译过程

整个linux内核的编译过程:
顶层的makefile不断地去调用各个子目录下面的makefile;
把各个子目录下面的源代码编译出来;
最终把他们链接成一个镜像文件

4.以/drivers/tty中的makefile文件为例

4.1 Kconfig

kconfig中的配置信息就是menuconfig中看到的信息

4.2 makefile

obj-$(CONFIG_TTY)		+= tty_io.o n_tty.o tty_ioctl.o tty_ldisc.o \
				   tty_buffer.o tty_port.o tty_mutex.o tty_ldsem.o
CONFIG_TTY在kconfig配置,会在最开始menuconfig中进行配置这个变量等于m还是y

linux内核源码编译类似于堆积木,在各个子目录中生成编译的中间文件,即build-in.o文件,最后linux内核会把这些build-in.o文件进行整合,生成内核的image文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值