1. 程式人生 > >CentOS7和CentOS6具體有哪些區別?我來分析分析,CentOS7上手不是問題

CentOS7和CentOS6具體有哪些區別?我來分析分析,CentOS7上手不是問題

CentOS7和CentOS6的區別

首先,先介紹一下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

運行級別可以通過:

[root@m01 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就不難了



CentOS7和CentOS6具體有哪些區別?我來分析分析,CentOS7上手不是問題