linux init进程是所有用户进程的祖先进程,linux start_kernel相关进程的思考

退休的贵族进程 0号进程

所有进程的祖先叫做进程0

在系统初始化阶段由start_kernel()函数从无到有手工创建的一个内核线程

进程0最后的初始化工作创建init内核线程,此后运行cpu_idle,成为idle进程控制权的接力棒从bios-->bootloader-->idle,某种程度上说,就是完成子系统初始化使命后,就退居二线了。

0号进程一直处于皇宫“内核态”,没有出过宫“到用户态”,所谓贵族终身。

0号进程的代码概要图

7bff9570d09cea2aa74ef4c8ecee68e9.png

进入loop的堆栈样本如下:

(gdb) bt

#0 cpu_idle_loop () at kernel/sched/idle.c:201

#1 cpu_startup_entry (state=) at kernel/sched/idle.c:274

#2 0xc175d22d in rest_init () at init/main.c:418

#3 0xc1a4bb59 in start_kernel () at init/main.c:680

#4 0xc1a4b360 in i386_start_kernel () at arch/x86/kernel/head32.c:49

#5 0x00000000 in ?? ()来个截图吧,贴吧中少有的动态库,展示的是进入Loop后的堆栈 ,还有loop中的代码运行

Center

用户1号进程的前世今生

进程1又称为init进程,是所有用户进程的祖先

由进程0在start_kernel调用rest_init创建

init进程PID为1,当调度程序选择到init进程时,init进程开始执行kernel_init ()函数

init是个普通的用户态进程,它是Unix系统内核初始化与用户态初始化的接合点,它是所有用户进程的祖宗。在运行init以前是内核态初始化,该过程(内核初始化)的最后一个动作就是运行/sbin/init可执行文件

概念验证:

关键代码位置:

用户态进程:看堆栈。(核心态进入内核,check)

附录:

题目自拟,内容围绕Linux内核的启动过程,即从start_kernel到init进程启动;

博客中需要使用实验截图

博客内容中需要仔细分析start_kernel函数的执行过程

总结部分需要阐明自己对“Linux系统启动过程”的理解,尤其是idle进程、1号进程是怎么来的。

所有进程的祖先叫做进程0

在系统初始化阶段由start_kernel()函数从无到有手工创建的一个内核线程

进程0最后的初始化工作创建init内核线程,此后运行cpu_idle,成为idle进程

概念验证:

主要流程图

(start)--->rest_init--->(被调度)--一个loop中

进程1又称为init进程,是所有用户进程的祖先

由进程0在start_kernel调用rest_init创建

init进程PID为1,当调度程序选择到init进程时,init进程开始执行kernel_init ()函数

init是个普通的用户态进程,它是Unix系统内核初始化与用户态初始化的接合点,它是所有用户进程的祖宗。在运行init以前是内核态初始化,该过程(内核初始化)的最后一个动作就是运行/sbin/init可执行文件

概念验证:

关键代码位置:

用户态进程:看堆栈。(核心态进入内核,check)

附录:

题目自拟,内容围绕Linux内核的启动过程,即从start_kernel到init进程启动;

博客中需要使用实验截图

博客内容中需要仔细分析start_kernel函数的执行过程

总结部分需要阐明自己对“Linux系统启动过程”的理解,尤其是idle进程、1号进程是怎么来的。

原文:http://blog.csdn.net/titer1/article/details/44464647

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值