“源产控”系列(一)CentOS 8之初相识

2020/06/27 18:19 下午 posted in  技术 comments

**作者按:**当下国内外软件开发领域,开源队伍的壮大趋势随着微软收购Github达到了新的高度,众多业界巨头例如Google、Facebook、IBM、Oracle、亚马逊、腾讯、阿里等亦在开源社区之中贡献着自己的智慧,并且带动了开源理念与风气。而随着开源的蓬勃发展,国产化软件也势头正猛,以阿里云OceanBase为代表的一系列国产化软件,凭借着它们强大的业务背景和一定体量的业务需求锤炼,成为了国产化软件的排头兵,带动了更多行业领域企业加入这股洪流之中。这两股强大的东风之流行,伴随着宏观经济贸易的不确定性,点燃了国民核心行业核心技术“自主可控”的星星之火。开源、国产化、自主可控,三个议题的碰撞会出现怎样的火花?“源产控”专题就在此应运而生。

慧响技术角“源产控”专题,将聚焦开源、国产化、自主可控三个方向的技术,以操作系统、中间件、数据库、程序应用等为粗分类,更新相关技术的发展趋势、探究技术核心的深度使用、系统总结技术整体架构,为对相关技术的学习者提供可观的资料,亦为个人同步学习总结的笔记,以飨读者。

本系列首文,即本文,以近期更新的开源操作系统CentOS 8的介绍为开篇,对CentOS 8进行一些简要的介绍,未来对开源操作系统CentOS 8,将陆续更新其基本使用总结、特性使用总结等方面的系列文章,敬请期待。

CentOS是什么

下面简介摘自CentOS维基百科词条:

CentOS(Community Enterprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux(RHEL)依照开放源代码规定发布的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。CentOS 对上游代码的主要修改是为了移除不能自由使用的商标。2014年,CentOS宣布与Red Hat合作,但CentOS将会在新的委员会下继续运作,并不受RHEL的影响。

比较通俗直白一点的说法,CentOS是Red Hat发行的商业版RHEL的开源替代版,也是作为Linux服务器使用的比较主流的开源操作系统之一。

CentOS第一次接触在2014年,也就是CentOS与Red Hat宣布合作的那一年。印象比较深的也是那一年发行的CentOS 7,由于其与Red Hat合作后,将RHEL 7的一些新特性例如systemd等引入,导致与其CentOS 6一些操作差距过大,再加上新系统教程较少,在系统上折腾了很久,也因此印象深刻。

截止本文撰稿,CentOS最新版本是CentOS 8-2004,其RHEL基础版为RHEL 8.2

CentOS 8的新特性

关于CentOS 8,主要的特性介绍如下:

CentOS项目是对Red Hat Enterprise Linux的100%兼容的重建,完全符合Red Hat的重新发布要求,并发布了一个新版本:CentOS 8.0.1905,适用于所有受支持的体系结构。

紧随CentOS Linux 7.7发行版之后,CentOS Linux 8现已正式发布,新版本基于Red Hat Enterprise Linux 8.0源,这意味着它具有混合云时代的所有强大的新特性和增强功能。

CentOS 完全遵守 Red Hat 的再发行政策,并且致力与上游产品在功能上完全兼容。CentOS 对组件的修改主要是去除 Red Hat 的商标及美工图。

该版本还包含全新的 CentOS Streams,Centos Stream 是一个滚动发布的 Linux 发行版,它介于 Fedora Linux的上游开发和 RHEL 的下游开发之间而存在。你可以把 CentOS Streams 当成是用来体验最新红帽系 Linux 特性的一个版本,而无需等太久。

CentOS 8 主要改动和 RedHat Enterprise Linux 8是一致的,基于Fedora 28和内核版本 4.18, 为用户提供一个稳定的、安全的、一致的基础,跨越混合云部署,支持传统和新兴的工作负载所需的工具。此次发布的亮点包括:

发行版

通过 BaseOS和应用流 (AppStream) 仓库发布.

AppStream是对传统 rpm格式的全新扩展,为一个组件同时提供多个主要版本

软件管理

YUM 包管理器基于 DNF 技术,提供模块化内容支持,增强了性能,并且提供了设计良好的 API 用于与其他工具集成

Shell 和命令行工具

RHEL 8 提供了版本控制工具: Git 2.18Mercurial 4.8, 和 Subversion 1.10.

动态编程语言、Web 和数据库服务器

Python 3.6 是默认的 Python 环境,有限支持 Python 2.7

Node.js 是在 RHEL 最新包含的,其他动态语言更新包括: PHP 7.2, Ruby 2.5, Perl 5.26, SWIG 3.0

RHEL 8 提供的数据库服务包括:MariaDB 10.3, MySQL 8.0, PostgreSQL 10, PostgreSQL 9.6, 和 Redis 5.

RHEL 8 提供Apache HTTP Server 2.4 以及首次引入的Nginx 1.14.

Squid 版本升级到 4.4 ,同时也首次提供Varnish Cache 6.0.

桌面环境

GNOME Shell 升级到 3.28.

GNOME 会话和显示管理使用 Wayland 作为默认的显示服务器,而 RHEL 7 默认的 X.Org server 依然提供

安装程序以及镜像的创建

Anaconda 安装程序可使用 LUKS2 磁盘加密,支持 NVDIMM 设备.

Image Builder 工具可以创建不同格式的自定义系统镜像,包括满足云平台的各种格式

支持使用硬件管理控制台 HMC 从 DVD 安装,同时也提供 IBM Z 主机的 Support Element (SE)

内核

扩展 Berkeley Packet Filtering (eBPF) 特性使得用户空间的各个点上附加自定义程序,包括 (sockets, trace points, packet reception) ,用于接收和处理数据。目前该特性还处于特性预览阶段

BPF Compiler Collection (BCC), 这是一个用来创建高效内核跟踪和操作的工具,目前处于技术预览阶段

文件系统和存储

LUKS version 2 (LUKS2) 格式替代旧的 LUKS (LUKS1) 格式. dm-crypt 子系统和 cryptsetup 工具现在使用 LUKS2 作为默认的加密卷格式

安全

默认的系统级的 加密策略, 用于配置核心加密子系统,覆盖 TLS, IPsec, SSH, DNSSEC, 和 Kerberos 协议。增加全新命令update-crypto-policies, 管理员可以轻松切换不同模式: defaultlegacyfuture, 和 fips.

支持智能卡和硬件安全模块 (HSM) 的 PKCS #11

网络

nftables 框架替代 iptables 作为默认的网络包过滤工具

firewalld 守护进程使用 nftables 作为默认后端

支持 IPVLAN 虚拟网络驱动程序,用于连接多个容器

eXpress Data Path (XDP), XDP for Traffic Control (tc), 以及 Address Family eXpress Data Path (AF_XDP), 可作为部分 Berkeley Packet Filtering (eBPF) 扩展特性,目前还是技术预览阶段.

虚拟化

在RHEL8中创建的虚拟机中,现在支持并自动配置更现代的基于PCI Express的计算机类型(Q35)。这在虚拟设备的功能和兼容性方面提供了多种改进。

现在可以使用RHEL8Web控制台(也称为“驾驶舱”)创建和管理虚拟机。

qemu仿真器引入了沙箱功能,它为系统调用qemu可以执行的操作提供了可配置的限制,从而使虚拟机更加安全。

编译器和开发工具

GCC 编译器更新到 8.2 版本,支持更多 C++标准,更好的优化以及代码增强技术、提升警告和硬件特性支持

不同的代码生成、操作和调试工具现在可以处理 DWARF5 调试信息格式(体验阶段)

核心支持 eBPF 调试的工具包括BCC, PCP, 和 SystemTap.

glibc 库升级到 2.28 支持 Unicode 11, 更新的 Linux 系统调用,关键提升主要在 DNS stub resolver 、额外的安全加强和性能提升

RHEL 8 提供 OpenJDK 11OpenJDK 8,<span> </span>IcedTea-Web, 以及不同 Java 工具,如 AntMaven, 或 Scala.

高可用和集群

Pacemaker 集群资源管理器更新到最新版本 2.0.0, 修复了一系列 bug 以及功能做了提升

pcs 配置系统完全支持 Corosync 3, knet, 和节点名称

相关链接

CentOS 8 官方发行说明:

https://lists.centos.org/pipermail/centos-announce/2019-September/023449.html

完整的 RedHat 8 发行说明请看

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.0_release_notes/overview

目前来看,CentOS 8的修改相比CentOS 6->7的修改来说,在系统管理层次上,完善相对变动要多不少,加上云管环境的逐步推广,也加上了云的特性。