一、POST
计算机要想开机,他必须经过BIOS或UEFI对基本的输入输出硬件设备进行检查,检查内存,CPU,硬盘等等。
二、选择启动顺序(安装时须要选择)
当经过自检后,就须要选择须要用什么引导方式,引导方式大体为:光盘启动、硬盘启动、网络启动、U盘启动,这些只是在安装系统时选择,安装好系统后默认从硬盘启动
三、选择好引导方式后就开始从硬盘的前446字节也就是BootLoader用来引导用户选择启动 的系统或不一样版本内核。
centos5.6中,主要的文件放与/boot/grub/grub.cfg引导内核加载文件和/boot/grub/目录下在stage1,stage1.5,stage2阶段所须要的二进制文件
centos7,文件放在/boot/gub2/grub.cfg引导内核加载文件和/boot/grub/目录下stage1,stage1.5,stage2阶段所须要的二进制文件
四、加载内核
利用grub.cfg文件加载硬件启动程序,以只读的方式加载根文件系统,,而在centos5,6在这一步尚未文件系统,而centos7在这一步开始就已经挂载了xfs文件系统也就是stage2步骤
五、运行用户空间的第一个应用程序
centos5:sysv init 配置文件/etc/inittab
centos6:upstart 配置文件/etc/inittab; /etc/init/.conf(主要)
centos7:systemd 配置文件:/etc/systemd/system;/usr/lib/systemd/system/
在centos5,6的第一个父进程名字仍是init,而在centos7中第一个父进程则变成systemd
六、在centos5主要根据/etc/inittab文件进行配置
初始化运行级别
调用系统初始化脚本(/etc/rc.d/rc.sysinit)进行系统初始化
对应运行级别的脚本目录
捕获某个关键字顺序
定义UPS电源终端/恢复脚本
在虚拟控制台生成getty
在运行级别5初始化X
centos6和centos5基本相似,只是将inittab文件拆分为多个文件,存放在/etc/init/*.conf
根据/etc/inittab文件肯定启动哪一级别,而后根据启动级别按照/etc/rc.d/rc开机将全部S开头的所有开一遍,将全部K开头的所有关一遍来作到根据启动级别启动服务
centos7,则是根据/etc/systemd/system/default.target指向的启动级别,根据运行级别所须要启动的target来启动,并非跟以前版本同样,将每个服务在每个运行级别的目录下放一边,互不干扰,而centos7则是,在当前服务只装当前系统 所必须安装的包,而后一级一级的往上安装,不会出现重复的服务,换句话说,centos7不存在当前的是哪个运行级别这一说法,由于在graphical.target(图形化)模式下也有multi-user.target(以前版本的3模式)。centos
systemd服务是系统启动和服务器守护进程管理器,负责在系统启动或运行时激活系统资源,服务器进程和其余进程,在CentOS7中,在系统启动时,将以前的串行启动服务改变成了并行,因此CentOS7系统比以前系统都要启动的快。
systemd新特性
系统引导时实现服务并行启动
按需启动守护进程(只有在须要该服务时,才会启动该服务)
自动化的服务依赖关系管理(若启动服务有其余依赖的服务,则自动启动依赖服务)
同时采用socket式和D-Bus总线式激活服务
系统状态快照服务器
unit表示不一样类型的systemd对象,经过配置文件进行标识和配置,文件中主要包括含了系统服务、监听socket、保存系统快照以及其它与init相关的信息网络
在centos7中,像以前系统中的/etc/init.d/目录下的文件已经几乎没有了,剩下的服务在管理上也已经不是init在管理,已经改变成systemd在管理。
/usr/lib/systemd/system目录下主要存放着每个服务主要的配置文件相似于以前系统中的/etc/init.d目录
/run/systemd/system目录主要存放着系统执行过程当中所产生的服务脚本,比上面目录优先运行
/etc/systemd/sysyem目录主要存放着管理员创建的执行脚本,相似于以前版本中的/etc/rc.d/rcX.d/目录下的脚本文件,比上面的目录优先级都高socket
使用命令systemctl -t help命令能够查看系统中都有哪些unit类型,文件类型的区别在于后缀名ide
查看当前服务状态命令
systemctl list-unit-files --type service --all
服务状态说明
loaded:unit配置文件已处理
active(running):一次或屡次持续处理运行
active(exited):成功完成一次性配置
active(waiting):运行中,等待一个时间
inactive:不运行
enabled:开机启动
disabled:开机不启动
static:开机不启动,但可被另外一个启动的服务激活
启动服务的变化
在以前系统中的服务管理能够是两种方式
service 服务名 start|stop|restart,也可使用/etc/init.d/服务名 start|stop|restart两种方式,而CentOS7系统中以前的方式还可使用,只是他们所调用的命令已经变成了systemctl
systemctl命令语法
systemctl start|stop|restart 服务名1 服务名2
systemctl命令与以前版本的service命令相比的优势在于systemctl命令能够同时启动多个服务
开机自启服务变化
chkconfig --list 查看当前可用该命令能够控制的服务,不过该命令的实质也是在调systemctl命令
也可使用chkconfig 服务名 on|off改变开启是否自动启动
而大多数服务已经变成使用systemctl enable|disable 服务名来设置开始是否启动使用systemctl is-enabled 服务名来查看开机是否自动启动
而开机自动启动的实质就是在/etc/systemd/system目录下建立一个链接文件
条件式启动服务
若服务已启动则才会重启,不然不作任何操做centos7
systemctl try-restart 服务名rest
重载或重启服务,先加载,在启动对象
systemctl reload-or-restart 服务名blog
重载或条件是重启服务进程
systemctl reload-or-try-restart 服务名
禁用和启用某服务
禁用和启用的实质就是在/etc/systemd/system目录下建立一个连接到/dev/null的软连接使服务不能启动,启用就是将软连接删除
禁用自动和手动启动
systemctl mask 服务名‘
取消禁用
systemctl unmask 服务名
查看服务状态
查看某服务当前是否已激活
systemctl is-active 服务名
查看当前全部已经激活的服务
systemctl list-units -t service
查看全部服务
systemctl list-units -t service -a
查看全部服务开机自启状态
在以前版本中使用的是chkconfig --list而在centos7中则使用systemctl list-unit-files -t service
查看某服务是否开机自启
systemctl is-enabled 服务名
验证当前服务是否活动
systemctl is-actice 服务名
查看服务之间的依赖关系
systemctl list-dependencies 服务名
列出全部单元状态
systemctl或systemctl list-units
只显示服务单元的状态
systemctl -type=servicesystemctl -l status 服务名