欢迎来到天天文库
浏览记录
ID:42578530
大小:295.30 KB
页数:46页
时间:2019-09-18
《redhat-systemd详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.为什么是systemd(1)关于Linux服务管理Linux系统从启动到提供服务的过程是这样,先是机器加电,然后通过MBR或者UEFI加载GRUB,再启动内核,内核启动服务,然后开始对外服务。SysVinitUpStartsystemd主要是解决服务引导管理的问题。提示:关于systemd的拼写,官方的说法就是systemd,既不是Syetemd,也是不systemD。(2)SysVinit的优缺点SysVinit是最早的解决方案,依靠划分不同的运行级别,启动不同的服务集,服务依靠脚本控制,并且是顺序执行的。SysVin
2、it方案的优点是:原理简单,易于理解;依靠shell脚本控制,编写服务脚本门槛比较低。缺点是:服务顺序启动,启动过程比较慢;不能做到根据需要来启动服务,比如通常希望插入U盘的时候,再启动USB控制的服务,这样可以更好的节省系统资源。(3)UpStart的改进为了解决系统服务的即插即用,UpStart应运而生,在CentOS6系统中,SysVinit和UpStart是并存的,UpStart主要解决了服务的即插即用。服务顺序启动慢的问题,UpStart的解决办法是把相关的服务分组,组内的服务是顺序启动,组之间是并行启动。(4)s
3、ystemd的诞生SysVinit服务启动慢,在以前并不是一个问题,尤其是Linux系统以前主要是在服务器系统上,常年也难得重启一次。有的服务器光硬件检测都需要5分钟以上,相对来说系统启动已经很快了。但是随着移动互联网的到来,SysVinit服务启动慢的问题显得越来越突出,许多移动设备都是基于Linux内核,比如安卓。移动设备启动比较频繁,每次启动都要等待服务顺序启动,显然难以接受,systemd就是为了解决这个问题诞生的。systemd的设计思路是:尽可能的快速启动服务;尽可能的减少系统资源占用。(5)为什么systemd
4、能做到启动很快systemd使用并行的方法启动服务,不像SysVinit是顺序执行的,所以大大节省了系统启动时间。使用并行启动,最大的难点是要解决服务之间的依赖性,systemd的解决办法是使用类似缓冲池的办法。比如对TCP有依赖的服务,在启动的时候会检查依赖服务的TCP端口,systemd会把对TCP端口的请求先缓存起来,当依赖的服务器启动之后,在将请求传递给服务,使两个服务通讯。同样的进程间通讯的D-BUS也是这样的原理,目录挂载则是先让服务以为目录被挂载了,到真正访问目录的时候,才去真正操作。2.SysVinit介绍S
5、ysVinit是systemV风格的init系统,顾名思义,它源于SystemV系列UNIX。它提供了比BSD风格init系统更高的灵活性。是已经风行了几十年的UNIXinit系统,一直被各类Linux发行版所采用。(1)什么是SystemVSystemV,曾经也被称为AT&TSystemV,是Unix操作系统众多版本中的一支。它最初由AT&T开发,在1983年第一次发布。一共发行了4个SystemV的主要版本:版本1、2、3和4。SystemVRelease4,或者称为SVR4,是最成功的版本,成为一些UNIX共同特性的源
6、头,例如”SysV初始化脚本“(/etc/init.d),用来控制系统启动和关闭,SystemVInterfaceDefinition(SVID)是一个SystemV如何工作的标准定义。(2)SysVinit的运行级别SysVinit用术语runlevel来定义"预订的运行模式"。SysVinit检查'/etc/inittab'文件中是否含有'initdefault'项。来告诉init系统是否有一个默认运行模式。如果没有默认的运行模式,那么用户将进入系统控制台,手动决定进入何种运行模式。SysVinit中运行模式描述了系统各
7、种预订的运行模式。通常会有8种运行模式,即运行模式0到6和S或者s。每种Linux发行版对运行模式的定义都不太一样。但0,1,6却得到了大家的一致赞同:0关机1单用户模式6重启通常在/etc/inittab文件中定义了各种运行模式的工作范围。比如RedHat定义了runlevel3和5。运行模式3将系统初始化为字符界面的shell模式;运行模式5将系统初始化为GUI模式。无论是命令行界面还是GUI,运行模式3和5相对于其他运行模式而言都是完整的正式的运行状态,计算机可以完成用户需要的任务。而模式1,S等往往用于系统故障之后的
8、排错和恢复。很显然,这些不同的运行模式下系统需要初始化运行的进程,需要进行的初始化准备都是不同的。比如运行模式3不需要启动X系统。用户只需要指定需要进入哪种模式,SysVinit负责执行所有该模式所必须的初始化工作。(3)SysVinit运行顺序SysVinit巧妙地用脚本,文件命名规则和
此文档下载收益归作者所有