Linux的启动流程如下:
1.计算机加载BISO,它其中一项很重要的功能是对自身的健康进行检查,只有在硬件没有问题的情况下,才会运行软件,这种方式叫作‘Power On SelfTest’ (加电自检),简称POST,如果所有的硬件都自检通过,就会发出滴的短声提示,说明硬件正常。
2.加载引导系统,这个动作是BIOS设定的,BISO默认会从硬盘上的第0柱面、第0磁道、第一个扇区中读取被称为MBR的东西,即主引导记录。一个扇区的大小是512个字节,存放的内容是一段引导程序和分区信息,其中引导程序部分在用446个字节,另外64字节是磁盘分区表DPT,最后两个字节是MBR的结束位。由于RedHat、Centos默认会使用Grub作为其引导操作系统的程序,而Grub本身又比较大,所以常见的方式是在MBR中写入Grub的地址,这样系统实际会载入Grub作为操作系统的引导程序。
3.运行Grub,Grub最重要的功能就是根据其配置文件加载kernel镜像,并运行内核加载后的第一个程序/sbin/init。这个程序会根据/etc/inittab来进行初始化工作。
4.linux将根据/etc/inittab中定义的系统初始化配置si::sysinit:/etc/rc.d/rc.sysinit执行/etc/rc.sysinit脚本,该脚本将会设置系统变量、网络配置,并启动swap、设定/proc、加载用户自定义模块、加载内核设置等。
5.根据第三步读到的runlevel值来启动对应的服务,如果值为3,就会运行/etc/rc3.d/下所有的脚本,如果值是5,就会运行/etc/rc5.d/下所有脚本。
6.将运行/etc/rc.local
7.生成终端或X window界面。