linux内核配置编译以及启动概述

拿到一个linux内核后,要使用它先要进行配置,编译,

选择linux运行的处理器架构,比如arm,在arch/arm/configs目录下,有很多arm架构的linux配置文件,可以在内核顶层目录下,使用,make xxx_defconfig,或者拷贝arch/arm/configs目录下的配置文件,到内核源码顶层目录下的.config,然后执行make menuconfig进行配置。

总之,配置的作用就是生成了一个.config文件,这个文件非常重要,它的作用主要在1,在make 编译内核时,会根据.config文件,自动生成配置选项的宏,在include/linux/autoconf.h文件中,这个文件就是编译时生成的。这个文件里,系统配置时所有选中的选项,里面的宏到定义为1,不管配置时选中的是y还是m,那么选中y和m的区别体现在哪呢?2,在make编译时,会由.config生成include/config/auto.conf文件,这个文件中的内容和.config中的挺像的,会结合makefile进行内核的编译,选择是编译成模块还是编译进内核。

内核的最终作用是挂接根文件系统,启动应用程序,内核被UBOOT引导启动后做了些什么呢?我这里是总结的韦东山视频里的,大体写下

内核在开始执行的时候,首先要做的就是处理uboot传入的参数,刚开始内核执行的函数是arch/arm/kernel/head.s

主要做的有,判断内核是否支持这个CPU,根据uboot传入的机器ID判断是否支持这个单板,建立页表,让虚拟地址与物理地址线性对应,使能MMU,然后就是跳转到start_kernel这个c函数,打印内核信息就在这,经过一系列初始化,解析UBOOT启动参数后,执行reset_init(),这个函数里有kernel_init,里面会有根据启动命令行参数挂接根文件系统,以及执行应用程序的函数。

内核启动大体就是这么个过程,具体的细节太多了,太复杂了,慢慢研究吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值