努力
加油

CentOS 8.3 相比 7.6 增加了哪些新功能?

首先得纠正一个核心前提:CentOS 8 系列(包括 8.3)和 CentOS 7 系列属于两个完全不同的生命周期分支,且两者的底层架构、包管理器以及生态逻辑都有巨大差异。

更重要的是,CentOS 8 已于 2021 年 12 月 31 日停止维护(EOL)。如果你现在还在生产环境使用 CentOS 8.3,或者考虑从 7 迁移到 8,请务必注意这一风险。目前主流趋势是转向 Rocky Linux、AlmaLinux 或 Oracle Linux 等 RHEL 下游发行版,或者直接拥抱 Ubuntu/Debian 生态。

不过,既然你问的是“增加了哪些新功能”,我们可以从技术演进的角度,客观对比 CentOS 8 (基于 RHEL 8) 相比 CentOS 7 (基于 RHEL 7) 的主要变化和新特性。这些变化不仅仅是功能增加,更是架构层面的重构。

1. 包管理系统:从 RPM/YUM 到 DNF

这是最直观的变化。CentOS 7 使用 yum,而 CentOS 8 默认使用 DNF (Dandified YUM)。

  • 优势:DNF 解决了依赖解析速度慢的问题,支持模块化安装,内存占用更合理。
  • 兼容性:虽然命令名仍是 yum(它是 dnf 的软链接),但底层逻辑已变。例如,yum-config-manager 的行为在某些场景下与旧版略有不同。
  • 模块流(Modularity):引入了 AppStream 仓库概念,允许在同一系统上并行安装不同版本的应用程序(如 Python 3.6, 3.8, 3.9)。这在 CentOS 7 中是不支持的,你需要通过 IUS/CentOS SCLo 等第三方源来实现类似功能。

2. 容器化原生支持:Podman & Buildah

CentOS 7 时代,Docker 是绝对主力,但 Docker 需要守护进程(daemon),存在权限和安全问题。

  • CentOS 8 的变化:默认不再预装 Docker,而是推广 Podman(无守护进程的容器引擎)和 Buildah(构建镜像工具)。
  • 意义:这标志着 Red Hat 生态向 Kubernetes 原生和 OCI 标准靠拢。Podman 兼容 Docker 命令,可以无缝替换,但更安全、更适合在容器中运行容器(nested containers)。
  • 注意:如果你习惯用 Docker,依然可以通过 dnf install docker-ce 安装社区版,但官方推荐路径是 Podman。

3. 文件系统与存储:Btrfs 成为可选默认,XFS 强化

  • CentOS 7:默认文件系统是 XFS,稳定但功能相对基础。
  • CentOS 8:
    • Btrfs:首次作为可选文件系统引入,并启用了子卷(subvolume)、快照(snapshot)等高级功能。虽然生产环境仍建议谨慎使用,但它为未来提供了更多灵活性。
    • LVM 增强:对 LVM 的逻辑卷管理进行了优化,支持更快的快照创建和克隆。

4. 安全机制:SELinux 策略更新与 FIPS 合规

  • SELinux:CentOS 8 的 SELinux 策略更加精细,默认策略集更大,覆盖更多应用。同时,引入了 libsemanage 的改进,使得策略管理更高效。
  • FIPS 140-2:CentOS 8 原生支持 FIPS 模式,满足XX和高安全等级行业的需求。CentOS 7 也支持,但配置更为复杂。
  • 加密套件:默认启用 TLS 1.2+,禁用不安全的 SSL/TLS 协议和弱加密算法。

5. 内核与硬件支持:新硬件驱动与虚拟化改进

  • 内核版本:CentOS 7 使用 3.10.x 内核,CentOS 8 使用 4.18.x 内核(后续小版本会更新到更高)。这意味着对 Intel 第 8/9/10 代 CPU、NVMe SSD、USB 3.1/3.2 等新硬件的支持更好。
  • 虚拟化:
    • KVM/QEMU:升级至 QEMU 4.x,支持更好的 GPU 直通(VFIO)和 NUMA 感知调度。
    • Libvirt:版本更高,API 更完善,支持更多虚拟机类型。

6. 网络栈:NetworkManager 成为唯一权威

  • CentOS 7:network-scripts 是主流,NetworkManager 并存但非强制。
  • CentOS 8:废弃了 network-scripts,全面转向 NetworkManager。所有网络配置必须通过 NM 或其命令行工具 nmcli 管理。这意味着传统的 /etc/sysconfig/network-scripts/ifcfg-* 文件不再被推荐使用,迁移成本高。

7. 开发语言环境:Python 3 正式入主

  • CentOS 7:默认 Python 2.7,Python 3 需额外安装。
  • CentOS 8:默认提供 Python 3.6(可通过模块流切换其他版本),并移除了一些 Python 2 的依赖。这对现代 Web 开发(Django, Flask 等)更友好。

8. 时间同步:Chrony 默认取代 NTP

  • CentOS 7:默认使用 ntpd。
  • CentOS 8:默认使用 Chrony,它在处理网络延迟波动、虚拟机时钟漂移方面表现更好,尤其适合云环境和数据中心。

总结与建议

特性 CentOS 7 CentOS 8
包管理器 YUM DNF (兼容 yum)
容器方案 Docker (守护进程) Podman/Buildah (无守护进程)
默认 Shell Bash Bash (Zsh 可选)
Python 版本 2.7 (主要) 3.6+ (主要)
网络配置 ifcfg-scripts NetworkManager
时间同步 NTPD Chrony
生命周期 EOL: 2024 年 6 月 EOL: 2021 年 12 月 (已终止)

关键提醒:

  1. CentOS 8 已死:不要在新项目中使用 CentOS 8。它的结束意味着没有安全补丁。
  2. CentOS 7 也将终结:CentOS 7 将于 2024 年 6 月 30 日正式 EOL。即使它比 CentOS 8 活得久一点,也不应作为长期选择。
  3. 替代方案:
    • 如果你想保持 RHEL 兼容性:Rocky Linux 8/9、AlmaLinux 8/9、Oracle Linux 8/9。
    • 如果你偏好 Debian/Ubuntu 风格:Ubuntu LTS、Debian Stable。
    • 如果你关注轻量级和快速启动:Alpine Linux、Fedora Server(短周期,适合开发者)。

结论:CentOS 8 相比 7 的主要“新增”不是简单的功能堆砌,而是现代化转型——拥抱容器化、模块化软件供应链、更强的安全基线和对新硬件的支持。但由于其生命周期已结束,这些“新功能”仅具有历史参考价值,不应指导当前的生产选型。