在即将开始本文讲解之前,我们先来说一下Linux操作系统的开机流程吧。以下是在网上找到的一张图片,分享给你们。
image-241759
首先Linux开启第一步就是加载BIOS(基本输入输出系统),浅显一点说就是当你接通计算机电源时,首先计算机会加载BIOS信息,可以看出BIOS的重要性linux文本编辑器,以至于在最开始的时侯计算机就要找到它。这是由于在BIOS中包含了好多比较重要的信息,就例如:CPU相关信息、设备启动次序信息、内存信息、pnp信息、时间信息、内存信息、硬盘信息等等。找到这种以后linux系统命令,计算机心中就有数了,就晓得要去找那个硬件设备了。
BIOS信息加载以后,就须要读取MBR了,你们都晓得,c盘上第0扇区第1磁道一般被称为MBR,也称作主引导记录,它上面储存了分区表信息和启动信息,大小固定位512字节。以后便会步入BootLoader,这块是在操作系统内核运行的一小段程序。这一段程序运行以后,我们就可以初始化硬件设备以及完善显存空间的映射图。最终将操作系统的软件环境和硬件环境都放在一个合适的状态。
在以后就是加载系统内核linux 开机启动服务,之后进行系统内核的初始化,初始化这儿是须要用户层init按照inittab文件来设定系统运行等级的。之后init程序执行rc.sysinit,然后便启动了内核模块,执行不同运行级别的脚本程序,执行/etc/rc.d/rc.local,最终执行/bin/login程序,也就是我们正常步入系统以后的登陆界面了。
到这儿Linux操作系统开机过程早已说完了。这么这儿即将开始本篇文章的重点内容,本篇文章重点是要介绍关于Linux启动命令的。使用Linux比较早的人都晓得,在CentOS5和CentOS6系统时,它的初始化进程服务是SystemVinit,在CentOS7系统之后,早已替换掉了熟悉的SystemVinit,而采用的是一个全新的初始化进程服务systemd,所以习惯使用CentOS5和CentOS6的话linux 开机启动服务,在对于CentOS7的使用,可能会非常不适应。systemd初始化进程服务采用了并发启动控制,这促使系统开机时速率有不少的提高。
尽管在最开始替换时,有好多人对它进行吐槽,而且不管如何,CentOS7使用systemd初始化服务进程已然成为事实,我们都晓得Linux是有“运行级别”这个概念的,但由于这一改变,“运行级别”这一概念也不存在了。Linux系统启动时须要进行大量的初始化工作,例如挂载文件分区以及交换分区,还有就是好多开机自启的服务也须要启动,这种也都被看作一个一个的单元(Unit),systemd用目标(target)取代了老系统中的SystemVinit中运行级别的概念。其实运行级别早已被取代,然而虽然大部份人还是更习惯说运行级别。
关于systemd与SystemVinit之间的区别:
SystemVinit运行级别systemd目标名叫做用
runlevel0.target,poweroff.target
死机
runlevel1.target,rescue.target
单用户模式
runlevel2.target,multi-user.target
等同于级别3
runlevel3.target,multi-user.target
多用户文本界面
runlevel4.target,multi-user.target
保留
runlevel5.target,graphical.target
多用户的图形界面
runlevel6.target,reboot.target
重启
emergency
emergency.target
紧急shell
作用详尽说明:
假如习惯使用之前的CentOS5和CentOS6系统,那就比较烦躁了,由于在CentOS5和CentOS6系统中,对于系统服务管理是使用service和chkconfig来进行管理的。而CentOS7中则被替换为了systemctl命令了,具体对诸如下(比如我们启动sshd服务):
CentOS5和CentOS6系统:
CentOS7系统:
关于设置开机启动、不启动、查看服务启动状态对比:
CentOS5和CentOS6系统:
CentOS7系统:
注意:以上两组对比都是一一对应的。