您现在的位置是:课程

内核的启动过程分析

2023-06-29 20:45课程 人已围观

课程目标
本课程为linux kernel移植的第3部分,主要内容是linux内核启动流程的代码分析和细节解读。本部分的学习目标是对linux内核的启动和构建过程有个清晰理解,对内核启动后的状态有清晰认识,从而能够帮助我们分析和解决内核移植过程中的问题。
适用人群
本课程为uboot和系统移植阶段的第16部分,适合学习了uboot移植,需要继续学习ulinux内核移植的同学。
课程简介

嵌入式绝对是当前IT领域最炙手可热的话题了。其主要应用领域涵盖与人类相关的各行各业:

* 消费电子(手机、平板电脑、游戏机)

* 物联网(智能家居、智慧城市)

* 工业自动化(无人工厂、工业机器人)

可以毫不客气的说,IT发展的未来在于嵌入式。巨大的商机和人才缺口导致嵌入式软件工程师的薪资居高不下,引得无数青年才俊、高校学子相继加入、苦苦钻研。

课程特色

*完全零基础,降低学习门槛。

*深入浅出,通俗易懂。不怕学不会,就怕你不学习。

*思路清晰、语言风趣,对着视频看也不会想睡觉······

*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。

*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。

*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。
       
                                                                                       课程目录

3.16.1.做好内核分析的准备工作

[免费观看]

36:26

本节课开始建立工程、分析Makefile等,主要目的是为开始内核代码的分析扫清障碍,做好准备工作。

 

3.16.2.head.S文件分析1

37:17

本节开始分析head.S文件,主要分析了内核运行的虚拟地址与物理地址,内核真正入口以及启动条件等。

 

3.16.3.内核启动的汇编阶段

31:44

本节讲解内核启动的汇编阶段剩余内容,主要是cpu的校验、机器码的校验、传参tag的校验、页表的创建、各种段的处理等。

 

3.16.4.内核启动的C语言阶段1

22:37

本节讲述内核学习的学习思路、学习方法和主体线路。本节课程的学习目的是让大家对内核的特点和不同的学习思路有个认识。

 

3.16.5.内核启动的C语言阶段2

33:51

本节开始按照代码执行路径分析内核的C阶段。本节课主要讲了printk函数的工作原理和内核初始化打印出banner信息的部分。

 

3.16.6.内核启动的C语言阶段3

25:08

本节讲解setup_arch函数中的machine查找的部分,初步分析了内核对机器码的定义和存储方式、比对方式、获取方式。

 

3.16.7.内核启动的C语言阶段4

26:32

本节讲解setup_arch函数中对cmdline的处理,重点讲解了cmdline的传递方式、确认方式和其对内核的影响和意义。

 

3.16.8.内核启动的C语言阶段5

25:11

本节讲解start_kernel函数中剩余部分函数调用直到rest_init的部分,并无太多重点细节。

 

3.16.9.内核启动的C语言阶段6

41:16

本节重点讲解了rest_init函数中创建三个内核线程以及对这三个内核线程的介绍,本节课听完后就明白了操作系统最终的走向和归宿。

 

3.16.10.init进程详解1

33:38

本节课从宏观上讲解了init进程的工作和主要作用,交代了操作系统在内核态和用户态下的切换过程,init进程如何一步步发展成为平时看到的操作系统。

 

3.16.11.init进程详解2

41:25

本节对init进程的代码进行分析对比,重点是一些细节和对上节讲到的宏观理论的代码验证和支持。

 

3.16.12.cmdline常用参数

19:12

本节补充讲解uboot给内核传参时常用的一些cmdline参数选项及其含义。

 

3.16.13.内核中架构相关代码简介    

35:33

本节补充讲解内核源码中架构相关的代码部分,并非代码详解而是从宏观上讲述相关的文件夹和文件位置、作用介绍等。

-->

站点信息

  • 文章统计篇文章