Linux的启动流程,回答面试官自用

技术分享

对于Linux的启动流程,是一个很复杂的过程

下面我来介绍一下:

    1、当我们按下电源键通电后,我们的BIOS会去检查硬件(CPU、显卡、硬盘、光驱等等)是否有问题,取得主机的各项硬件配置后,就会去找启动设备,这里说的就是硬盘,找到硬盘的MBR,这时候就将控制权交到MBR中

    2、MBR的功能就是去找到安装在MBR的grub菜单,也就是Boot loader,随后grub就把系统的kernel(内核)给引导出来了

    3、当boot loader读取到kernel文件后,会将内核加载到内存中,此时内核会取代BIOS的功能,重新检查一次硬件,在硬件驱动成功后,kernel会主动调用init进程

    4、接着就会初始化系统了,init会取得/etc/inittab的信息,获取系统的运行级别

    5、init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(网络、时区等)

    6、init执行run-level的各个服务等

    7、init执行/etc/rc.d/rc.local文件

    8、init执行终端机模拟程序mingetty来启动login进程,最后就是等待用户登陆


①BIOS:Basic Input Output System,基本输入输出系统。

    它是一个韧体,写在主板上的一个ROM芯片的程序,CMOS就是ROM芯片,是一个硬件,要与之区别

②MBR:Master Boot Record,主引导记录。在硬盘的0柱面、0磁头、1扇区,称为主引导扇区

    有512个字节:主引导程序(Boot loader)占446个字节

                 分区表信息:占64字节

                 结束校验位:2字节(固定为22AA)

③GRUB:Grand Unified Bootloader,多重操作系统的启动管理器。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数

/etc/inittab:这个配置文件会去默认运行哪个级别的系统,id:5:initdefault: 意思是默认运行5级别的系统

⑤/etc/rc.d/rc.sysinit:会设置主机名,启动网络服务,加载外部设备(鼠标、键盘)反正就是加载各项系统服务,设置系统环境。

本文出自 “小旭” 博客,请务必保留此出处http://loopholes.blog.51cto.com/9445813/1621294

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。