CentOS6和CentOS7 两者之间的区别

CentOS6和CentOS7 两者之间的区别

CentOS -7-x86_64 -DVD -1708.iso
从 CentOS 7 之后,版本命名就跟发行的日期有关了
CentOS-7 系统是 7.x 版本
x86_64 64 位操作系统
1708 2017 年08 月发表的版本 月发表的版本

sysvinit技术 VS systemd技术

CentOS6,采用了sysvinit的技术
sysvinit技术的特点:
系统第一个进程是init,pid=1(这个大家应该都很熟悉)
init进程是所有进程的起源,不可以kill
大多数linux发行版的init系统是和SystemV相兼容的,被称为sysvinit
代表系统是CentOS5

sysvinit优点:

sysvinit 运行非常良好,概念简单清晰。它主要依赖于 Shell脚本,一步一步启动(CentOS6的启动过程就是个脚本一个脚本启动)

缺点:
按照一定顺序执行 ,启动太慢
很容易 hang住,fstab与nfs挂载问题

个人 PC 机和移动平台,需要便捷,快的系统,所以此技术不被CentOS7使用

这里引入另一个知识点
CentOS6 采用了 Upstart 技术代替 sysvinit 进行引导, Upstart 对 rc.sysinit 脚本做了大量的优化,缩短系统初始时启动间。但 是CentOS6 为了简便管理员的操 作, upstart 的很多特性并没有凸显或者 直接不支持
因此在 CentOS6 中的服务启动脚本还是以原来 SysV 的形式 提供的。
But ,一个应运而生的技术却因为竞争对手太强大被淘汰。
代表系统: CentOS6 ,Ubuntu14 ,从 CentOS7 ,Ubuntu15 开始使用 systemd

CentOS7使用的是systemd

 新系统都会采用的技术( RedHat7 ,CentOS7 ,Ubuntu15 等);
 设计目标是克服 sysvinit 固有的缺点,提高系统启动速度;
 和 Sysvinit 兼容,降低迁移成本;
 最主要优点:并行启动
 Pid 为1的进程是systemd

什么是并发启动,并发启动的原理
解决 socket 依赖 /端口依赖:系统会在服务启动之前先创建了socket供依赖服务查看,而真正的服务启动后直接使用此socket就可以了
在这里插入图片描述

采用了 D-Bus 作为程序之间的通信工具,类似消息队列,可以缓存信息,例如A服务发送请求时向B服务的socket,其实B服务此时还没有启动,这里就要用D-Bus先缓存,

B服务启动后再读取
在这里插入图片描述

解决文件系统依赖:优先启动要用的,其余都延迟启动加载。例如:先启动/ 或者/boot 挂载目录等开机后再启动或者用的时候再启动
在这里插入图片描述

以下是三种技术的启动方式

网卡名称变更:

 传统上, Linux 的网络接口名称为 的网络接口名称为 eth0 、eth1… ,但这些名称并不一定符合实际的硬件插槽等,这可能会导致同网络配置错误(例如,由无意的接口改名引起禁止接口)。 基于 MAC 地址的 udev 规则在虚拟化的环境中并不有用,这里规则在虚拟化的环境中并不有用,这里 的MAC 地址如端口数量一样无常。

如果说,eth0网卡坏了,那么换一个网卡,就不会叫eth0了,因为服务器是根据网卡的mac地址分别的,那么换的网卡可能叫eth3
而CentOS7,是根据网卡的插槽命名的,一般不会有变化.
但是用习惯了eth0我们也是可以更改的,
在安装系统的时候配置:修改内核选项, net.ifnames =0 biosdevname =0

网络配置相关命令:

CentOS7主推使用ip,ss命令. 所以我们用习惯的像ifconfig,netstat,route…这些命令就没有了,不过很神奇的是,CentOS7.4的时候又回来了,不过本文讲的是7.2的系统

我们再安装这些命令
yum -y install net-tools
至于setup,可以用nmtui代替

修改主机名

hostname CentOS7 临时生效
编辑 /etc/hostname 主机名的配置文件变了 不再是/etc/sysconfig/network了
hostnamectl set -hostname [新主机名] #→方法 2,本质还是改配置文件

修改字符集
localectl set -locale zh_CN. UTF-8
编辑 /etc /locale.conf
cat /etc/redhat-release 查看系统版本号
cat /etc/os -release 所有支持 systemd系统的一发行版名称和本号文件。

*CentOS7里不推荐使用/etc/rc.local,但是如果要使用,必须加
chmod +x /etc/rc.d/rc.local
加执行权限,才可以正常使用

运行级别:Runlevel

不再使用熟知的1,2,3,4....这些数字运行级别
如果想查看启动级别使用:systemctl get-default
设置启动级别:systemctl  set-default multi-user.target
运行级别可以通过:
[root@m01 tftpboot]# ls -lh /usr/lib/systemd/system/runlevel*.target
其实修改运行级别就是修改软链接

管理服务:

CentOS6使用:
chkconfig 或 /etc/init 和 service
CentOS7使用:
systemctl进行了统一,兼容 SysV 和LSB的启动脚本,而且能够在进程启动过程中更有效的引导加载服务
image.png

扩展:

systemd-analyze time 查看开机时间

systemd-analyze blame 查看各服务开机启动的时间

systemd-analyze plot > bootime.svg 生成图形界面(需要使用浏览器查看)
在这里插入图片描述

**

著作权归作者所有:来自51CTO博客作者午后冷色调的原创作品,如需转载,请注明出处,否则将追究法律责任

原文:https://blog.51cto.com/12928749/2085646

**

发布了11 篇原创文章 · 获赞 10 · 访问量 238

猜你喜欢

转载自blog.csdn.net/weixin_44057684/article/details/104701355
今日推荐