Linux开机启动程序

Linux系统启动过程

  • 内核的引导
  • 运行init
  • 系统初始化
  • 建立终端
  • 用户登录系统
init程序的类型:
       systemd: systemd ,Centos7,配置文件:/usr/lib/systemd/system、/etc/systemd/system

内核引导

​ 当计算机打开电源后,首先是BIOS开机自检,按照BIOS种设置的启动设备(通常是硬盘)来启动。

​ 操作系统接管硬件以后,首先读入/boot目录下的内核文件。

运行init

​ init进程是系统的所以进程的起点,没有这个进程系统种任何进程都不会启动。

​ init程序首先是需要读取配置文件/etc/inittab。

运行级别

​ 许多程序需要开机启动。在Windows种叫做服务(service),在Linux中交战守护进程(daemon)。

​ init进程的一大任务,就是去运行这些开机自启的程序。

​ 但是不同的场合需要启动不同的程序,Linux允许为不同的场合,分配不同的开机启动程序,这就叫做运行级别(runleve)。也就是说,启动时根据运行级别,确定要运行那些程序。

​ Linux系统有7个运行级别:

  • 运行级别0:系统停机状态
  • 运行级别1:单用户工作状态,用于系统维护,禁止远程登录,可以进入后修改密码。
  • 运行级别2:多用户状态(没有NFS)。
  • 运行级别3:完全多用户状态(有NFS),常用级别,登录后进入控制命令行模式。
  • 运行级别4:系统未使用,保留
  • 运行级别5:图形模式
  • 运行级别6:关机重启

系统初始化

​ 在init的配置文件中有这一行,si::sysinit:/etc/rc.d/rc.sysinit 他调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit时一个bash shell的脚本。它主要时完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要运行的重要脚本。

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

建立终端

rc执行完毕后,返回init。这时基本环境已经设置好了,各种守护进程也已经启动了。

init接下来会打开6个终端,以便用户登录。

用户登录系统

  • 命令行登录
  • ssh登录
  • 图形界面登录
原文地址:https://www.cnblogs.com/bb9527/p/14284810.html