嘿,各位开发者和运维小伙伴们,大新闻!CentOS Stream 9 已经正式发布了。你可能会想:“哦,又一个新版本而已嘛。” 欸,这次可真不一样!CentOS Stream 9 不仅仅是版本号的升级,它背后代表着一种开发模式的转变,并且带来了一大波激动人心的新功能和变化。
简单来说,CentOS Stream 不再是 RHEL (Red Hat Enterprise Linux) 的下游复刻版,而是变成了 RHEL 的上游开发版。 这意味着,我们在 CentOS Stream 9 上看到的新功能,就是未来 RHEL 9 的样子。 它变成了一个滚动更新的发行版,让我们能更早地接触到企业级 Linux 的最新技术。
对于喜欢尝鲜、希望与 RHEL 生态保持同步的开发者和运维人员来说,这绝对是个好消息。但这也意味着它可能不像以前的 CentOS Linux 那样适合需要极度稳定、数年不动的生产环境。
好了,闲话不多说,让我们撸起袖子,看看 CentOS Stream 9 到底给我们带来了哪些“硬核”更新!
1. 内核与工具链:打好坚实的基础
操作系统的核心就是内核和工具链,这块的升级是重中之重。
- Linux 内核 5.14: CentOS Stream 9 搭载了 Linux 5.14 内核。 新内核带来了对最新硬件更好的支持、性能优化以及一堆新特性。
- GCC 11 & Glibc 2.34: 编译器和标准库也全面升级,现在默认使用 GCC 11.2 和 Glibc 2.34。 这意味着我们可以使用更多现代 C++ 的新特性,并且能获得更好的编译性能。
- cgroup v2 成为默认: 控制组(cgroup)v2 现在是默认的资源管理方式。 相比 v1,它提供了更统一、更清晰的资源控制模型,无论是限制 CPU、内存还是 I/O,都变得更加简单。
案例:体验新的 C++ 特性
得益于 GCC 11,我们可以轻松使用 C++20 的一些特性。比如,写一个简单的程序来感受一下:
// hello.cpp
#include <iostream>
#include <string>
#include <span>
void print_strings(std::span<const std::string> strings) {
for (const auto& s : strings) {
std::cout << s << " ";
}
std::cout << std::endl;
}
int main() {
std::string messages[] = {"Hello,", "CentOS", "Stream", "9!"};
print_strings(messages);
return 0;
}
现在,我们用新版的 g++ 来编译它:
# 安装必要的开发工具
sudo dnf install gcc-c++
# 编译 C++20 代码
g++ -std=c++20 -o hello hello.cpp
# 运行
./hello
输出将会是:Hello, CentOS Stream 9!。这个 std::span 就是 C++20 带来的新东西,在以前的老版本编译器里可没这么方便。
2. 开发者狂喜:语言和工具集全面升级
如果你是开发者,那这部分绝对会让你兴奋。几乎所有的主流编程语言和工具都更新到了一个非常现代的版本。
- Python 3.9: Python 3.9 成为了系统默认的 Python 版本,并且官方彻底移除了 Python 2。 是时候和历史遗留问题说再见了!
- PHP 8.0: 带来了 JIT 编译器等大量性能改进和新语法。
- Node.js 16: 提供了最新的 V8 JavaScript 引擎和稳定的 API。
- Ruby 3.0: 性能和并发能力都有了显著提升。
- OpenJDK 17: 使用最新的 Java 长期支持(LTS)版本。
- 数据库: MariaDB 10.5, MySQL 8.0, PostgreSQL 13, Redis 6.2。
- Web 服务器: Nginx 1.20, Apache httpd 2.4.48。
案例:感受 Python 3.9 的新语法
Python 3.9 带来了一个很方便的特性:字典合并操作符 |。
# a.py
dict1 = {"name": "CentOS Stream", "version": 8}
dict2 = {"version": 9, "status": "awesome"}
# 使用新的合并操作符
merged_dict = dict1 | dict2
print(merged_dict)```
直接在 CentOS Stream 9 的终端里运行:
```bash
python3 a.py
你会得到输出:{'name': 'CentOS Stream', 'version': 9, 'status': 'awesome'}。是不是比以前用 update() 方法或者字典解包 ** 更简洁直观了?
3. 网络管理大变天:告别 ifcfg 和 iptables
注意!这块的变化对系统管理员来说非常重要,以前的很多习惯可能要改改了。
-
network-scripts被移除: 经典的/etc/sysconfig/network-scripts/ifcfg-*配置文件和ifup/ifdown命令正式退役。现在,网络配置完全由 NetworkManager 接管。 -
iptables-nft被弃用: 虽然iptables命令还能用(通过iptables-nft这个兼容层),但官方已经明确表示不推荐了。新的防火墙标准是 nftables。
案例 1:使用 nmcli 配置静态 IP
忘记修改 ifcfg-eth0 文件吧,现在我们用命令行工具 nmcli 来搞定。
# 假设你的网卡名是 eth0
# 1. 查看设备连接名
nmcli connection show
# 2. 修改连接配置,设置静态 IP (假设连接名是 'Wired connection 1')
sudo nmcli connection modify 'Wired connection 1' \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8,1.1.1.1"
# 3. 重新加载连接使其生效
sudo nmcli connection up 'Wired connection 1'
# 4. 验证配置
ip addr show eth0
nmcli 功能非常强大,虽然初看起来有点复杂,但熟悉之后会比手动改配置文件高效得多。
案例 2:用 nftables 替换一个 iptables 规则
假设我们以前用 iptables 来允许 SSH 流量进入:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
现在用 nftables,语法是这样的:
# 1. 创建一个表
sudo nft add table inet filter
# 2. 在表中添加一个链
sudo nft add chain inet filter input { type filter hook input priority 0 \; }
# 3. 添加规则
sudo nft add rule inet filter input tcp dport 22 accept
# 4. 保存规则以便重启后生效
sudo systemctl enable nftables.service
sudo nft list ruleset > /etc/nftables/nftables.conf
nftables 的语法更现代化,结构也更清晰,并且性能更好。是时候开始学习它了!
4. 安全第一:更现代、更严格的安全策略
- OpenSSL 3.0: 升级到 OpenSSL 3.0,默认禁用了很多老旧且不安全的加密算法,比如 TLS 1.0/1.1。 这让系统默认就处在一个更安全的基础上。
- SSH 禁止 root 密码登录: 出于安全考虑,默认配置下,你不能再直接使用 root 用户和密码通过 SSH 登录系统了。
- SELinux 性能提升: SELinux 的性能得到了显著提升,内存消耗也更少。 同时,彻底禁用 SELinux 的方式也变了,在
/etc/selinux/config中设置SELINUX=disabled不再能完全禁用它,你需要通过修改内核启动参数selinux=0来实现。
5. 桌面与多媒体体验革新
- GNOME 40: 桌面环境升级到了 GNOME 40,带来了全新的活动视图和水平工作区布局,视觉效果和交互体验都焕然一新。
- PipeWire 成为默认: PipeWire 成为了默认的音频和视频处理服务,取代了 PulseAudio 和 JACK。 它旨在统一 Linux 的音视频处理,提供更好的性能和对 Flatpak 等现代化应用更好的支持。
总结
CentOS Stream 9 是一次脱胎换骨的更新。它变得更现代、更强大、更安全,也更贴近企业级 Linux 的发展前沿。
划重点:
- 定位改变: 它是 RHEL 9 的“预演版”,滚动更新。
- 工具链升级: Kernel 5.14、GCC 11,为性能和新特性打下基础。
- 开发者友好: 主流编程语言和工具全面升级到新版本。
- 网络管理变革: 必须使用 NetworkManager 和 nftables。
- 安全基线更高: 默认禁用不安全的协议和登录方式。
对于开发者、运维工程师以及所有希望紧跟 Linux 技术潮流的人来说,CentOS Stream 9 是一个绝佳的选择。但如果你的首要任务是维护一个数年不变的稳定生产环境,那么 Rocky Linux 或 AlmaLinux 可能会是更好的选择。
现在,你准备好拥抱这个全新的 CentOS Stream 9 了吗?赶紧去下载镜像体验一下吧!