kernel_init寻找init并执行
2016-04-06 22:33
218 查看
start_kernel->rest_init->kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);
![](http://img.blog.csdn.net/20160406222746515)
如果内核命令行中给出了到init进程的直接路径(ramdisk_execute_command,或者别的可替代的程序),就执行init。
如果命令行没有给出init路径,接下来的几行会在几个地方查找init,按照可能性由高到低的顺序依次是: /sbin/init,这是init标准的位置;/etc/init和/bin/init,两个可能的位置。
这些是init可能出现的所有地方。如果在这3个地方都没有发现init,也就无法找到它的同名者了,系统可能就此崩溃。因此,会试图建立一个交互的shell(/bin/sh)来代替,希望root用户可以修复这种错误并重新启动机器。
由于某些原因,init甚至不能创建shell。当前面的所有情况都失败时,调用panic。这样内核就会试图同步磁盘,确保其状态一致。如果超过了内核选项中定义的时间,它也可能会重新启动机器。
如果内核命令行中给出了到init进程的直接路径(ramdisk_execute_command,或者别的可替代的程序),就执行init。
如果命令行没有给出init路径,接下来的几行会在几个地方查找init,按照可能性由高到低的顺序依次是: /sbin/init,这是init标准的位置;/etc/init和/bin/init,两个可能的位置。
这些是init可能出现的所有地方。如果在这3个地方都没有发现init,也就无法找到它的同名者了,系统可能就此崩溃。因此,会试图建立一个交互的shell(/bin/sh)来代替,希望root用户可以修复这种错误并重新启动机器。
由于某些原因,init甚至不能创建shell。当前面的所有情况都失败时,调用panic。这样内核就会试图同步磁盘,确保其状态一致。如果超过了内核选项中定义的时间,它也可能会重新启动机器。
相关文章推荐
- 实例详解机器学习如何解决问题
- androidStudio出现R无法识别比对下面build.gradule
- Android学习之Soft Keyboard使用文档翻译
- Mac电脑编程问题汇总.
- 字符串排序
- 复利计算5.0
- for 循环学习,输出
- LeetCode(28)-Remove Duplicates from Sorted Array
- xml入门及bom
- spring+tomcat8实现websocket
- Tsinsen A1129 税收与补贴问题
- LeetCode(28)-Remove Duplicates from Sorted Array
- LeetCode(28)-Remove Duplicates from Sorted Array
- hdu2588(欧拉函数的应用)
- Python开发测试工具(二)—Monkey工具的优化
- 详解SQL Server连接(内连接、外连接、交叉连接)
- 复利计算-结对编程
- 每日一题
- 详解linux系统的启动过程及系统初始化
- BAT、网易、蘑菇街面试题整理-7