首先,先介绍一下CentOS7的镜像,本文中,我们使用的是CentOS7.2的镜像
CentOS7的下载地址可以从以下这个地址下载
http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
CentOS -7-x86_64 -DVD -1708.iso
从 CentOS 7 之后,版本命名就跟发行的日期有关了。
? CentOS-7 系统是 7.x 版本
? x86_64 64 位操作系统,并且从 7以后不再提供 以后不再提供 32 位镜像。 位镜像。
? 1708 2017 年08 月发表的版本 月发表的版本
介绍完CentOS7以后,我们开始了解6和7这两个系统到底有什么区别,熟悉了CentOS6系统以后不会用7?其实不难,接下来我们介绍两个系统到底有哪些区别
区别一
sysvinit技术 VS systemd技术
CentOS6,采用了sysvinit的技术
sysvinit技术的特点:
- 系统第一个进程是init,pid=1(这个大家应该都很熟悉)
- init进程是所有进程的起源,不可以kill
- 大多数linux发行版的init系统是和SystemV相兼容的,被称为sysvinit
- 代表系统是CentOS5
sysvinit的优缺点
优点:
- SysVinitSysVinit SysVinit 运行非常良好,概念简单清晰。它主要依赖于 Shell脚本,一步一步启动(CentOS6的启动过程就是个脚本一个脚本启动)
缺点:
- ①按照一定顺序执行 ,启动太慢
- ②很容易 hang住,fstab与nfs挂载问题
个人 PC 机和移动平台,需要便捷,快的系统,所以此技术不被CentOS7使用
这里引入另一个技术
? CentOS6 采用了 Upstart 技术代替 sysvinit 进行引导, Upstart 对 rc.sysinit 脚本做了大量的优化,缩短系统初始时启动间。但 是CentOS6 为了简便管理员的操 作, upstart 的很多特性并没有凸显或者 直接不支持,因此在 CentOS6 中的服务启动脚本还是以原来 SysV 的形式 提供的。
? But ,一个应运而生的技术却因为竞争对手太强大被淘汰。
? 代表系统: CentOS6 ,Ubuntu14 ,从 CentOS7 ,Ubuntu15 开始使用 systemd
以上所述是CentOS6的启动技术
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
运行级别可以通过:
[[email protected] tftpboot]# ls -lh /usr/lib/systemd/system/runlevel*.target
lrwxrwxrwx 1 root root 15 Mar 1 18:53 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx 1 root root 13 Mar 1 18:53 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx 1 root root 17 Mar 1 18:53 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx 1 root root 17 Mar 1 18:53 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx 1 root root 17 Mar 1 18:53 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx 1 root root 16 Mar 1 18:53 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx 1 root root 13 Mar 1 18:53 /usr/lib/systemd/system/runlevel6.target -> reboot.target
其实修改运行级别就是修改软链接
区别七
管理服务:
CentOS6使用:
chkconfig 或 /etc/init 和 service
CentOS7使用:
systemctl进行了统一,兼容 SysV 和LSB的启动脚本,而且能够在进程启动过程中更有效的引导加载服务
最后附加一个命令
systemd-analyze time 查看开机时间
systemd-analyze blame 查看各服务开机启动的时间
systemd-analyze plot > bootime.svg 生成图形界面(需要使用浏览器查看)
可以通过统计的信息,管理服务
OK,CentOS7和CentOS6的区别大概就那么多了,其实了解了这几个区别后,CentOS7就不难了
原文地址:http://blog.51cto.com/12928749/2085646