linux内核启动过程分析

董涛  

原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

 

基于实验楼网站提供的《Linux内核分析》实验平台,通过设置断点,跟踪调试linux内核的启动过程,概括了解linux内核的启动机制。

首先,打开存放linux内核的文件夹LinuxKernel,在qemu虚拟机环境下运行kernel命令,并通过-S和-s命令冻结cpu执行并在另一个shell中用break命令设置断点,跟踪内核程序执行,截图如下所示:

 

用gdb命令跟踪调试,截图如下:

用(gdb) break start_kernel命令在start_kernel函数处设置断点,截图如下:

下面概括的分析linux内核启动过程:

在bois程序和磁盘引导程序将linux操作系统加载到内存中后,计算机将linux文件中的start_kernel函数作为入口函数被首先执行,start_kernel函数中包含很多功能函数模块,比如中断处理模块trap_init(),内存管理模块mm_init(),调度模块sched_init()等等,这些功能函数模块在start_kernel函数中被初始化,在start_kernel函数中被执行的第一个进程是功能函数模块rest_init()中的0号进程即idle进程,0号进程创建1号进程即init进程,int进程是系统启动的默认进程,至此,linux内核启动完毕,并开始执行用户程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值