linux开机引导过程

Linux的开机引导过程抽象为以下四个模块,BIOS,MBR(第一段引导程序),kernel,init。

 

*BIOS(basic input outputsystem),直译过来就是基本输入输出系统,BIOS用于计算机开机时执行系统各部分的自检,并启动引导程序或装载在内存的操作系统。BIOS实际上是一组被固化到硬件上的程序。由于bios并不是硬件,但也不是一个简单的软件,因为他被固化在硬盘上,因此我们称bios为固件,可以抽象的理解为,bios为硬件与软件程序之间的一个接口,为系统提供最基础的控制硬件功能。

 

当我们按下电源键后,电脑首先进入bios自检,即power on self test,在物理层次上对各个设备硬件进行检查,比如电压是否恒定,插线是否接好等。完成这一步骤后,bios就到mbr读取mbr中的内容。Mbr里有三个部分,partition table,magic number,boot loader。Partition指的是分区表,一旦这张表被破坏,硬盘就无法使用。Magic number指的是mbr的起始位置。Boot loader为引导程序,将硬盘中内核的代码加载到内存中,cpu执行内核的代码,从而将控制权交给内核。内核就干两件事,其一:加载所以硬件驱动,其二就是启动一个名为init的进程。

关于init进程,我们首先进入/etc目录查看inittab,

 

inittab中有0-6七个数字,这七个数字就代表了linux的七种运行级别。特别注意的是默认的级别不能为0或者6,不然系统就会陷入无法开机以及反复重启的问题。然后我们进入rc.d目录查看该目录下的文件。


sysinit是一个shell脚本,是任何一个操作系统在启动之前都要执行的脚本,因此如果我们有需要开机自启动的服务的话,就可以将该服务放在这个shell脚本里,他就会默认执行了。刚刚在inittab中注意到默认的运行级别是5,我们一般通过rc目录来判断默认级别是哪个,然后进入到rcN.d目录中查看,N指的就是默认的级别。通常rcN.d里面放了一堆以s和k开头的链接文件。


k表示kill,s表示start,后面接的是进程名,也就是说,当我们默认某个运行级别时,我们就会根据rcN.d中的内容来决定到底哪些进程需要开启,哪些进程需要关闭。这一步骤之后,就到了用户登录界面了。


以上就是linux的开机引导过程。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值