开机启动流程

bios开机自检 bios开机自检在哪里_开机启动

  • 我们开机后,首先会进行开机自检,而开机自检是由BIOS程序完成的
  • BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统",它是个人电脑启动时加载的第一个软件。它是一组固化到计算机内主板上一个ROM芯片(read only memory --只读的存储器)上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS(是一个存储参数配置的芯片)中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。此外,BIOS还向作业系统提供一些系统参数。系统硬件的变化是由BIOS隐藏,程序使用BIOS功能而不是直接控制硬件。现代作业系统会忽略BIOS提供的抽象层并直接控制硬件组件。
  • 然后,BIOS程序会读取CMOS芯片里的参数,检测CPU、内存、磁盘等硬件是否存在,检测完成没有问题的话,会对boot启动顺序做检查,当我们装好了系统的时候,默认第一是从磁盘启动的,这样比较快。
  • 再然后会找到磁盘中的MBR(主引导记录),它在我们磁盘最开始的位置,然后启动grub2引导程序,至此,BIOS就退出了历史舞台。

bios开机自检 bios开机自检在哪里_开机启动_02

  • 然后grub2会从boot分区里面找到vmlinuz(内核程序文件)和initramfs(解压后形成初始化的文件系统)加载到内存中,至此,内核就启动起来了。
  • 然后内核会启它的第一个进程Systemd,然后会启动我们对应运行级别的服务:
    运行级别(centos6里概念)
    在centos6里有哪些运行级别? runlevel
    0 --》关机
    1 —》单用户模式 --》破密码
    2 --》多用户模式,不能使用NFS功能
    3 --》完全多用户模式 multi-user --》CLI 字符界面
    4 --》没有用
    5 --》图形界面 graphical --》GUI界面
    6 --》重启
    运行级别是centos6里面的概念,在7和8里面已经没有了,只有# multi-user.target: analogous to runlevel 3 #graphical.target: analogous to runlevel 5两种模式,但是相关的命令还可以用;
    对应级别服务:
[root@localhost ~]systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

当我们设置某个服务开机启动的时候,实际上就是在/etc/systemd/system/multi-user.target.wants/下创建了一个链接文件,所有在该目录下的服务开机都会自动运行(默认运行级别是3)

bios开机自检 bios开机自检在哪里_centos_03

  • 再然后会执行/etc/rc.local和/etc/fstab这两个文件里面的内容,其中/etc/fstab是帮我们挂载分区,形成真正的文件系统。
  • 再然后就会启动我们的Login登陆程序,进行用户名和密码的检查,检测通过后就会执行图片中的四个文件里的内容——开机启动成功。