Linux系统启动过程详解

目录

  • linux系统启动详细过程
    • 内核引导
    • 启动init程序进入初始化阶段
      • init程序的类型
    • 系统初始化
    • 建立终端
    • 用户登录
  • 关机

linux系统启动详细过程

  1. 通电
  2. bios初始化
  3. grub2磁盘引导阶段(mbr)
  4. 指定boot分区所在分区
  5. grub2文件引导阶段
  6. 启动内核,只读挂载 / 设备
  7. 启动init程序进入初始化阶段(rhel6)
  8. 启动systemd初始化进程
  9. 取 /etc/systemd/ 中的文件(之后都是并行的)
  10. 执行/etc/rc.d/rc.local
  11. 启动程序
  12. 启动登陆环境

可总结为以下五个大的过程:

  • 内核引导
  • 启动init程序进入初始化阶段
  • 系统初始化
  • 建立终端
  • 登录系统

整体流程图:
Linux系统启动过程详解_第1张图片

内核引导

  • 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。
  • BIOS:BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统"。在IBM PC兼容系统上,是一种业界标准的固件接口。BIOS是个人电脑启动时加载的第一个软件。它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。

启动init程序进入初始化阶段

  • init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的boss,没有这个进程,系统中任何进程都不会启动。init 程序首先是需要读取配置文件 /etc/inittab。

init程序的类型

  1. SysV: init, CentOS 5之前, 配置文件: /etc/inittab
  2. Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf
  3. Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system

系统初始化

  • 它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。

建立终端

  • rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。
    init接下来会打开6个终端,以便用户登录系统。

用户登录

  1. 命令行登录
  2. 图形界面登录
  3. 远程ssh登录

关机

  • 正确的关机流程为:sync > shutdown > reboot > halt
  • 关机指令为:shutdown

可以运行如下命令关机:

sync 将数据由内存同步到硬盘中。

shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。

shutdown –h now 立马关机

shutdown –h 20:25 系统会在今天20:25关机

shutdown –h +10 十分钟后关机

shutdown –r now 系统立马重启

shutdown –r +10 系统十分钟后重启

reboot 就是重启,等同于 shutdown –r now

halt 关闭系统,等同于shutdown –h now  poweroff
  • 最稳妥的关机或重启方法:首先运行 sync 命令,把内存中的数据写到磁盘中,防止数据丢失
  • 关机的命令有 shutdown –h now halt poweroff 和 init 0 , 重启系统的命令有 shutdown –r now reboot init 6

参考链接:https://www.runoob.com/linux/linux-system-boot.html.

你可能感兴趣的:(操作系统,linux)