Linux系统学习之系统启动的5个过程

Linux 系统启动过程shell

Linux系统的启动过程能够分为5个阶段:bash

1. 内核引导服务器

当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(一般是硬盘)来启动。操做系统接管硬件之后,首先读入 /boot 目录下的内核文件。ssh

 fd9239e22d88a1b67206247e87437260.png-wh_

2. 运行initide

init 进程是系统全部进程的起点,你能够把它比拟成系统全部进程的老祖宗,没有这个进程,系统中任何进程都不会启动。init 程序首先是须要读取配置文件 /etc/inittab。spa

nit程序的类型:操作系统

  • SysV: init, CentOS 5以前, 配置文件: /etc/inittab。命令行

  • Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。orm

  • Systemd systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。blog

 8d2fb76c02904a095506a0d93f4d5546.png-wh_

3. 运行级别

许多程序须要开机启动。它们在Windows叫作"服务"(service),在Linux就叫作"守护进程"(daemon)。

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

可是,不一样的场合须要启动不一样的程序,好比用做服务器时,须要启动Apache,用做桌面就不须要。

Linux容许为不一样的场合,分配不一样的开机启动程序,这就叫作"运行级别"(runlevel)。也就是说,启动时根据"运行级别",肯定要运行哪些程序。

5795840015d8c47ffaebac8ecb38f345.png-wh_

Linux系统有7个运行级别(runlevel):

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,不然不能正常启动

  • 运行级别1:单用户工做状态,root权限,用于系统维护,禁止远程登录

  • 运行级别2:多用户状态(没有NFS)

  • 运行级别3:彻底的多用户状态(有NFS),登录后进入控制台命令行模式

  • 运行级别4:系统未使用,保留

  • 运行级别5:X11控制台,登录后进入图形GUI模式

  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,不然不能正常启动

 

4. 系统初始化

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

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

 

/etc/rc.d/rc5.d/中的rc启动脚本一般是K或S开头的链接文件,对于以以S开头的启动脚本,将以start参数来运行。

7a9a71490a6cb256009ca29082e344d0.png-wh_

5. 用户登陆系统

通常来讲,用户的登陆方式有三种:

  • (1)命令行登陆

  • (2)ssh登陆

  • (3)图形界面登陆

文本方式登陆的状况:当咱们看到mingetty的登陆界面时,咱们就能够输入用户名和密码来登陆系统了。

Linux的帐号验证程序是login,login会接收mingetty传来的用户名做为用户名参数。

而后login会对用户名进行分析:若是用户名不是root,且存在/etc/nologin文件,login将输出nologin文件的内容,而后退出。

这一般用来系统维护时防止非root用户登陆。只有/etc/securetty中登记了的终端才容许root用户登陆,若是不存在这个文件,则root能够在任何终端上登陆。

/etc/usertty文件用于对用户做出附加访问限制,若是不存在这个文件,则没有其余限制。

 91e293b04ec7297131c9474db73c81dc.png-wh_

相关文章
相关标签/搜索