linux开机顺序

1.BIOS自检

        计算机在接通电源之后首先进行BIOS自检,即我们所说的post(power on self test).自检完成后,然后根据BIOS中的设置的引导顺序,从硬盘、光盘引导,通常我们使用硬盘来引导系统。在硬盘的第一个扇区(0磁道0柱面1扇区)有一段代码叫做MBR(Master Boot Record.主引导记录)),当MBR被加载到内存中后,BIOS会将控制权交给MBR(MBR在内存中,即running).

 

2.读取MBR的信息(MBR可能是lilo,grub,spfdisk等)

         MBR是一段可执行代码,大小为512字节,该代码的作用是告诉我们的系统如何引导linux,例如"kernel /boot/vmlinuz-2.6.9.-5.EL ro root=LABEL=/",这是一段grub,vmlinuz的是可引导的压缩命令,grub将告诉系统如何加载vmliunz。

 

3.加载内核

          当内核映像被加载到内存之后,内核阶段就开始了,内存映像并不是一个可执行的内核,而是一个经过压缩的内核映像。通常他是一个zlmage(j较小的内核,小于512K)活bzlmage(较大的内核,大于512K)。之后要对内核进行解压,并放入高端内存当中。

 

4.执行init进程,并取得run-level信息.

         当内核完成引导之后,接下来加载init进程。init进程是系统所有进程的起点,它的进程号为1,init进程是所有进程的发起者和控制着。如果init进程出现了问题,那么系统将不可用。init的进程的作用有两个,一是2扮演进程之父,系统中任何进程都为它的子进程,并以它为参照;二是通过inittab文件管理run-leveld的运行级别。

 

5.执行/etc/rc.d/rc.sysinit

         /etc/rc.d/rc.sysinit是执行的第一个脚步,他的作用是初始化linux系统,包括初始化变量,配置网络、检查并修复文件系统等操作。为什么第一个执行的是这个脚步呢?因为在/etc/inittab文件中定义了。

 

6.执行/etc/rc.d/rcX.d/[KS]

        init进程根据inittab文件确定了系统的启动级别。事实上,每个级别都有每个级别命令脚本,这些脚本被保存在/etc/rc.d这个目录下,这个目录下,你会发现有诸如rc3.d、rc5.d等这些文件夹,这些文件夹存放着该级别所需要运行的命令脚本。

 

7.init执行相应的run-level的脚本

         rc.d中的脚本有的是以s开头,有的是以k开头,脚本执行的顺序是从小到大,首先终止以k开头的服务,然后启动以s开头的服务。    

 

8.执行rc.local脚本

         一般情况下,/etc/rc.d/rc.local是作为初始化脚本的最后一个文件,我们可以在这个文件中添加一些执行的脚本命令。

 

9.执行/bin/login程序

          login程序会提示用户输入用户名和密码,并会检查输入的正确与否,正确的将为使用者初始化环境,并将控制权交给shell.

 

===========================================================================

 

                                转载自http://blog.chinaunix.net/u2/64520/showate_2079880.html

 

===========================================================================

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值