码迷,mamicode.com
首页 > 系统相关 > 详细

linux启动过程

时间:2015-06-27 19:40:07      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

为了找工作我也是拼了,只会linux常用操作怎么行,好想看看内核源码,还是先搞清楚linux是怎么工作的吧

看了鸟哥的私房菜,做了些笔记:

系统启动的过程:

  1. 加载bios的硬件信息与自我测试,依据设置取得第一个可启动设备
  2. 读取并执行第一个启动设备内的MBRboot loadergrub)
  3. 依据boot loader的设置加载kernelkernel会开始检测硬件与加载驱动程序
    1. 从加载内核开始:

      linux将内核解压缩到内存中,利用内核的功能,开始检测硬件,此时,内核开始接管bios工作

      内核文件为/boot/vmlinuz

  4. 在硬件驱动成功后,kernel会主动调用init进程,而init会驱动run-level信息
    1. 内核加载完成后,开始执行第一个linux程序,/sbin/init,所以这个进程的pid 1

      /sbin/init的任务是准备软件的执行环境,包括主机名、网络设置等。ubuntu里,这些操作在/etc/rcS.d中

  5. 准备软件执行的操作环境,/etc/init/rc-sysinit.conf指定了default level,我这里是2,所以下面启动的是/etc/rc2.d中的script
  6. init执行run-level的各个服务的启动(script的方式)在/etc/rcX.d中的文件
  7. Init 执行/etc/rc.d/rc.local文件,这里是你想要执行的启动时系统命令
  1. init执行终端机模拟程序mingetty来启动login进程,等待用户登录

不同的level启动时,执行的是不同的/etc/rcX.d里的文件,S开头的代表是启动,K开头的代表是关闭,K,S后面的数字代表的是启动顺序,数字越大的执行的越靠后

在切换不同的run level时,会先比较下两个level的文件夹中S K文件的不同,启动、关闭对应进程。

 

 

 

 

 

linux启动过程

标签:

原文地址:http://www.cnblogs.com/zxahu/p/4604397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!