Linux系统启动过程
来源:互联网 发布:数据融合 技术指标 编辑:程序博客网 时间:2024/05/16 14:59
注:袁帅+ 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
linux内核分析的第二课:完成一个简单的时间片轮转多道程序内核代码
linux内核分析的第三课:Linux系统启动过程
首先从计算机上电是说起,对于X86CPU,bios会首先把磁盘硬盘的第一个扇区的内容(即bootloader)读到内存,然后把CPU控制权交给
bootloader,bootloader负责把内核读到内存,然后启动内核,内核启动时,先执行一段汇编指令,做硬件相关的初始化操作,然后跳到start_kernel()处执行。
分析start_kernel()的执行:在这个函数里面,是内核在启动第一个进程之前做的各种初始化,为接下来的进程创建好各种数据结构。
这里面的schedule_init()调用init_idle()函数,将当前进程初始化成就绪态。
最后是调用rest_init()函数,该函数首先调用kernel_thread()[会调用到fork()]创建init进程,创建kthreadd,然后idel调用schedule_preempt_disabled(),一个包含schedule()的函数,让启动过程进行下去,最后调用cpu_start_entry()。
总结:idel进程是在start_kernel()函数初始化的时候手工创建的,在rest_init()中调用kernel_thread()创建第一个进程,对内核启动过程还不是十分清楚,还需要花更多时间来深入理解。
0 0
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- Linux系统启动过程:
- Linux系统启动过程:
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- 剖析Linux系统启动过程
- Linux系统启动过程详解
- 剖析Linux系统启动过程
- char* 和jstring转换
- Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom
- NOIP 2011 day1 真题 考试总结
- BZOJ 1047 单调队列求二维滑动窗口最值
- 第11章——StandardWrapper
- Linux系统启动过程
- youche.js弹出框应用(直接弹出信息)
- ASP/PHP/JSP等禁止ajax缓存的方法
- 与位运算相关的编程算法技巧的总结java实现
- PHP中 foreach 与 for 理解
- 百度云资源
- JNI 返回 jbyteArray
- 十大开发常用算法
- php+mysql 中 Unknown column xx in 'field list' mysql