Skip to content

OpenCloudOS Stream 版本说明

OpenCloudOS Stream 是 OpenCloudOS 社区联合伙伴共同研发的自主可控的上游版本,其内核及用户态软件均基于社区 Upstream 独立演进、自编译,自主选型和维护,不再依赖任何发行版,完全自主可控。通过内核,用户态软件的全面优化和打磨,为用户和业务提供更先进、更高性能的基础环境和服务能力,彻底解决 CentOS 断供的问题。

下载

下载 OpenCloudOS Stream 23,请访问链接

源码仓库:- https://gitee.com/opencloudos-stream

OpenCloudOS Stream 23 新特性汇总

安全启动与引导

dracut 057

  • 解决由于内核的并行设备探测导致的不稳定行为
  • 添加 aarch64 uefi 支持,引入 connman 支持模块
  • 支持带 .zst 后缀的 ZSTD 压缩固件

grub2 2.06

  • 支持 Virtual LAN;
  • ARM 支持 EHCI,DMA,DTB 驱动支持
  • 支持 UUID,PARTUUID;
  • 支持包含 Open Firmware text representation 的 NVMe 设备;
  • 添加对 F2FS(flash-friendly file system)的支持;
  • 支持稀疏节点的文件系统;
  • 支持 RAID-5 或 RAID-6,RAID1C34 的文件系统,读取 / 启动 / 恢复;
  • 全架构支持 TPM(可信平台模块);
  • 支持 RISC-V 架构;

systemd 251

  • sd-boot 从原来的 PCR 8 升级到支持 TPM PCR 12
  • 支持 cgroup v2 更多特性
  • 支持 cgroup v2 BPF 相关逻辑
  • 支持 GPT Discoverable Partitions Specification 相关特性
  • 新增每次升级时触发所有设备 udev 规则
  • 选项 CPUAffinity = 支持 numa
  • udev 规则支持 PCI 和 USB 设备的 auto-suspend
  • 新增 userdb 相关特性
  • 新增工具 systemd-network-generator、systemd-sysext、systemd-repart 等来控制系统拓展层级、更好地支持 GPT 等
  • 新增网络设备命名规则 “keep”
  • 系统资源限制 RLIMIT_NOFILE 设置为 1024(soft)和 4096(hard)
  • 将 / dev 的最大默认 inodes 数量从 64K 提高到 1M,将 / tmp 的从 400K 提高到 1M
  • 现在在 x86_64 上偏向使用 RDRAND 指令集

内核

Kernel 6.1,带给社区最新成果体验:

  • MGLRU支持,降低内存扫描与回收所占用CPU时间,同时提高内存冷热判断精度,显著提升大内存压力场景下系统性能。
  • Maple Tree 支持,Cacheline 对齐的Btree实现,缓解多进程并发场景下的内存管理关键数据结构竞争问题,提升系统性能。
  • Rust编程语言初始支持,提供基础功能实现。
  • Folios,简易高效大页内存管理方案,带来multi-page Folios完整支持,众多真实负载场景性能提升达到10%。新增shmem Filio支持。
  • io_uring,新一代异步IO框架全功能支持。新增zerocopy sendmsg、non-zerocopy sendto、async work schedule、iopoll io_uring/nvme passthrough等功能。
  • Tiered memory - 分层内存系统支持,包括具有不同性能特性的多层内存系统。新增冷热页识别及层级迁移算法、层级信息用户态展示方案等。

提供坚实的云原生基座支持:

  • CGroupFS,简洁易用的系统级容器资源视图隔离方案,整体提升容器隔离性。
  • Cgroup性能优化,增加了可靠的PSI V1支持,将大量V2专属接口适配到V1,提供BufferIO控制等功能。
  • 容器级别内存细粒度分类限制回收功能,增强容器可用性。

其他功能支持:

  • 基于Livepatch的x86_64与ARM64平台热补丁功能支持,降低downtime,提高成功率。
  • Kdump内核转储适配与能力增强等。
  • 支持 RISC-V 64 架构。

架构支持

ARM
  • 支持新SoC:MTK、Qcom为主
  • 联发科Helio X10 MT6795 - M4U/IOMMU支持
  • perf: 内核支持通过SVE函数进行dwarf unwinding
  • Yitian710:添加DDR子系统驱动PMU驱动
  • sysreg:为SVE EBF16添加hwcap
  • iommu:支持M1 Pro/Max DART
x86
  • bpf: x86: 在trampoline程序中支持注册内结构参数
  • crypto: x86/sha512 - 基于CPU特性的负载
  • intel_idle: 添加AlderLake平台支持
  • iommu/amd: 增加通用IO页表框架对v2页表的支持
  • mm: x86: 添加 CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG
  • KVM: VMX: 支持更新的eVMCSv1版本
LOONGARCH
  • 添加BPF JIT支持
  • 添加kdump支持
  • 添加kexec支持
  • 添加perf event支持

编译器及开发环境

GCC 12.2.0

  • 切换为 TGCC(1. 反馈编译优化, 贴合业务特性提升效果;2. LTO 链接优化;3. 基于业务运行特征实施函数重排 / 基本块重排)
  • 支持 ShadowCallStack sanitizer(仅 aarch64)
  • 默认编译的 c++ 版本选项为 17,实现一部分 C++23 特性
  • 支持 armv9,支持 loongarch

Clang 14.0.5

  • 支持 OpenCL 2021。
  • 支持更多的 RISCV 和 ARM 处理器型号,支持 ARM V9 指令集。
  • 支持 X86 的 AVX512-FP16 指令

LLVM 14.0.5

  • 添加了对 Armv9-A、Armv9.1-A 和 Armv9.2-A 架构的支持。
  • 多项 RISCV 指令从实验性变为正式。
  • 增加支持 x86 AVX512-FP16 指令

automake 1.16.5

  • 增加支持 zstd
  • 支持 python3

vim 8.2

  • 新增 bvimgrep 命令。
  • 允许带有‘@’字符的 KEYMAP。

shell

  • bash 5.1.16

  • 新增可加载内置命令:asort,mktemp、accept、mkfifo、csv、cut/lcut、seq 等。

  • shell 现在尝试在退出时取消链接所有 FIFO,无论消费过程是否已经完成。
  • `bind -x' 现在支持不同编辑模式的不同绑定和键盘映射。
  • 将历史记录写入 syslog 现在可以处理比 syslog max 更长的消息通过使用序列号写入多条消息来确定长度。
  • bash-completion

  • 对 nmap、openssl、ssh-keygen、gcc 等命令提供更多的支持;新支持 gssdp-discover、xvfb-run、influx、dmypy、carton、scrub、ecryptfs-migrate-home、chmod、json_xs 等

  • 优化丰富了测试模块

emacs 27.2

  • 裁剪了 GUI,现在只有终端编辑模式
  • 内置支持任意大小的整数
  • 原生支持 JSON 解析

ed 1.18

  • 在命令选项输入有误时提示 “ed --help” 的显示内容。
  • 配置选项 “--datadir” 已重命名为 “--datarootdir” 以遵循 GNU 标准。
  • 提示字符串的长度限制已被删除。
  • shell 转义命令(!)现在刷新标准输出,以便修改后的命令即使标准输出已完全输出,也始终在执行之前打印缓冲(例如,文件)。
  • 在交互模式下,如果出现致命错误,ed 现在将最终退出状态设置为 1。

编程语言

编程语言 - C/C++-boost 1.79.0

  • 新增 C++20 支持
  • 完善对于 RISC-V LP64D 支持

编程语言 - JAVA 8/11/17

  • 默认 JDK 发行版切换为 KonaJDK(针对大数据、云计算场景,增加大堆 GC 优化、内存资源成本优化、启动加速、性能诊断工具等特性)
  • 默认版本升级为 KonaJDK11

编程语言 - LUA 5.4.4

  • 新的垃圾回收模式
  • 常量支持
  • 新增 to-be-closed 变量

编程语言 - RUST 1.63.0

  • 版本升级到 1.63.0

编程语言 - perl 5.36.0

  • perl 版本升级到 5.36.0:
  • 新增 Unicode 14.0 支持
  • 新增浮点异常信号支持
  • 新增可变长的后行断言(lookbehind)支持
  • 新增 bultin 核心模块
  • 新增 try/catch/finally 异常处理机制
  • C11 TLS 特性支持,线程化 perl 构建场景性能提升
  • 特定场景下标量创建速度提升 30%
  • 语言环境操作线程安全支持
  • Hash 表 key 分配性能提升

编程语言 - python 3.10

  • python 版本升级到 3.10

  • python-pyparsing 支持左侧递归解释器,增加对 python -W 支持

  • python-asn1crypto 增加 sMIME 实现
  • python-decorator 恢复支持 Sphinx
  • python-pexpect 支持自定义 ssh 命令
  • python-pip 实现新的依赖解析器,支持 PEP600,支持安装软件包时选择其他 python 版本,支持 PEP 517(pyproject.toml 构建系统,且为默认方式)
  • python-setuptools 支持 pyproject.toml,且优先级高于 setup.py(根据 PEP 621)
  • 性能提升

  • python-pexpect 处理大量数据时显著的性能提升

  • python-pip 提升解析性能
  • 重要功能改善

  • python-pycparser 改善对 C11 支持

  • python-setuptools 增强离线测试功能
  • python3.10 增强 riscv 支持
  • 安全加固

  • 修复 CVE-2013-0340、CVE-2021-3426、CVE-2020-14343

存储、文件及设备管理

逻辑卷管理 lvm2 2.03.16

  • 增强了大容量设备的支持能力
  • 增强了缓存创建失败情形下路径恢复能力
  • 部分命令进行了性能优化及功能增强

文件系统工具 e2fsprogs 1.46.5

  • 命令 resize2fs 支持的最大 inode 数量增大到 2^32
  • 新增了对 fast_commit (COMPAT_FAST_COMMIT) 特性的支持
  • 新增了对 stabe_inodes (COMPAT_STABLE_INODES) 特性的支持
  • chattr 和 lsattr 新增了对'x' 属性的支持
  • 部分命令进行了优化,提升了执行速度

分区工具 parted 3.5

  • parted 从 3.2 升级至 3.5 版本:
  • 在 -script 模式中增加 -fix,以自动修复备份 GPT header 不在磁盘末端等问题
  • 在标记为 MSDOS 的磁盘上增加使用交换分区标志
  • 在 script 模式下设置时,允许分区名称为空字符串
  • 增加 -json 命令行开关,将磁盘的细节输出为 JSON
  • 增加对使用 linux-home 标志的 Linux home GUID 的支持

安全能力

SELinux

  • 在 semanage port 命令中支持 “dccp” 和“sctp”协议;
  • 支持 IPv4/IPv6 地址嵌入;
  • 添加了对 DMTF 标准 DSP0236 定义的组件传输协议(MCTP)的支持;
  • 约束表达式中允许使用列表;
  • 在二进制策略中实现存储文件名转换的优化,更加节省空间;
  • 提供了内核策略优化的可选支持,可为某些策略(例如 Android)节省策略编译时间;
  • getconlist: 设置多级参数释放内存;
  • 通过同步数据以防止 SELinux 模块存储中出现空文件;
  • 对 nodecon 语句中的虚假 IP 地址或网络掩码进行警告;

audit 服务

  • kernel syscall 版本支持:从 v5.5 升级到 v5.16;
  • libev 升级:从 4.25 升至 4.33;
  • 新增支持:ausyscall 支持 32/64-bit,新增支持 armv8l 架构;
  • auparse 更新:优化 lib 库效率,对内核新增 syscall 和 event 类型的支持;

sssd 服务

  • 新增 PAM 模块 pam_sss_gss,该模块使用 GSSAPI 进行身份认证
  • 新增 infopipe 方法 FindByValidCertificate(),该方法接受证书作为输入,根据配置的 CA 对其进行验证,并在成功时输出用户路径
  • 新增对 IPA 提供者的用户 subuid 和 subgid 范围的支持以及相应的 shadow-utils 插件

安全加密

  • cryptsetup
  • 支持外部 LUKS 令牌插件;
  • 新增 SSH 远程令牌支持;
  • 使用 Argon2id 作为默认的 LUKS2 PBKDF 算法实现;
  • 新增对 Blake2b 和 Black2s 哈希算法的支持。
  • gnupg2
  • 支持使用 OCB 或 EAX 的 AEAD 加密模式。
  • 支持 DFN 颁发的密钥
  • 支持 Telesec ESIGN 应用程序
  • 使用 TPM 2.0 来保护私钥
  • 提升 gpg 加密,解密等过程的速度
  • 使用管道进行解密,避免内存耗竭
  • 支持使用 openpgp 进行 ssh-agent 身份验证
  • 强制为 ed448 和 cv448 算法创建版本 5 密钥
  • 支持多种类型的智能卡
  • gpgme
  • 支持导出密钥和子密钥
  • 支持 WKD 查找,无需隐式导入
  • 增加撤销密钥签名的功能函数,弃用信任列表功能
  • 新增 keylist 模式,保证引擎返回 keygrip
  • 支持 Native 消息传递以及新的 Javascript 代码
  • libkcapi
  • 增加对国密 SM3 和 SM4 算法的支持;
  • pinentry
  • 改进了 QT,支持对密码的多种操作
  • 提升 QT pinetry 的易用性,支持 Caps Lock 提示,支持密码格式化
  • 将 Qt 5 添加到 pinentry 的可用变体列表中。
  • 添加 genpin 支持
  • 支持系统行编辑
  • 将有关 tty 模式等的信息添加到 “getinfo ttyinfo”
  • nettle
  • 新增 pbkdf2_sha384 和 pbkdf2_hmac_sha512;
  • 支持 bcrypt 密码哈希算法;
  • 在 PowerPC 架构上对对称加密和圆锥曲线加密算法做了显著的性能优化;
  • 支持 Curve448 和 ED448 签名算法,支持 CFB8 对称加密模式,支持 CMAC 对称分组加密算法;
  • 支持大端 ARM 架构系统。
  • libgcrypt
  • 添加 SM3 ARM/AArch64 汇编实现
  • 提升 FIPS 模式下各个特性
  • 为 aarch64 、amd64 和 i386 添加 straight-line speculation hardening
  • 优化 AES aarch64-ce 汇编实现
  • 为 GCM-SIV 添加 armv8/pmull 加速的 POLYVAL
  • 添加自动扩展 secmem 功能
  • 添加针对定时攻击的缓解措施。
  • 添加对带填充的密钥包装(KWP)的支持。
  • 添加 x86_64 VAES/AVX2 加速实现
  • libgpg-error
  • 更新和升级了翻译功能
  • 支持 GNU C 库 2.34 或更高版本。
  • 添加单线程时的锁定测试。
  • 升级和改进 arg 解析器
  • libxcrypt
  • 增加对 yescrypt、scrypt 和 gost-yescrypt 三种新哈希算法的支持;
  • 支持 Elbrus-2000(ek2) 架构(俄罗斯自研 CPU);
  • 在配置脚本中支持 Python 3.11;
  • 在配置文件中添加 Fedora 和 Debian 的哈希算法集合。

安全可信

  • ima-evm-utils
  • 增加对椭圆曲线加密算法的支持;
  • 增加对 PKCS#11 标准的支持;
  • 支持多个 TPM bank 的 IMA 度量结果验证;
  • tpm2-tss
  • 增加对国密 SM2、SM3 和 SM4 算法的支持;
  • 兼容 OpenSSL 3.0.0;
  • 支持更多新的 TPM 命令调用;
  • 增加对 SWTPM-TCTI(TPM 命令传输接口)的支持。

安全基础库

  • pam 1.5.2
  • 将 HMAC 算法更改为可调用 openssl 而非捆绑 sha1。
  • 新模块 pam_faillock:多重身份验证失败后用于锁定。
  • 新模块 pam_setquota:会话启动时设置或修改磁盘配额。
  • 新模块 pam_usertype:用于判断 uid 是否处于登录状态。
  • 支持 (gost-)yescrypt 哈希方法。
  • gnutls 3.7.6
  • 新增 API 以实现 QUIC 传输协议;
  • 提供对一系列加密运算的加速;
  • 支持 RFC8879 定义的证书压缩标准。
  • openssl 3.0.5
  • 支持内核 TLS 协议(KTLS);
  • 引入 “提供者”(Provider)概念,支持以编程方式或配置文件指定用于给定应用程序的算法实现;
  • 基于 SHA1 的签名证书将不被认证 client 和 server 信任;

网络服务

nftables 1.0.4

  • 支持集合元素的运行时自动合并;
  • 规则集优化 -o/--optimize 选项的增强 允许将多个 NAT 规则合并到映射中;
  • 支持 ip 和 tcp 选项以及集合中的 sctp 块
  • 802.1ad (QinQ) 支持;
  • cgroupsv2 支持;

iptables 1.8.8

  • 改善在匹配 IP/MAC 时的表现,旧 iptables 不会识别掩码;
  • 完整的匹配支持,包括混合 MAC 和 MAC+IP 的集合 条目

postfix 3.7.2

  • 支持 lmdb,tls 和 pcre2 库
  • 随机化初始内存中的哈希表,以防御哈希冲突
  • 升级防御功能防止远程客户或者服务器控制 SMTP 和 LMTP 流量
  • 支持线程反弹,这允许邮件阅读器在与原始邮件相同的电子邮件线程中显示未送达、延迟送达或成功送达通知。

网络工具

  • arpwatch
  • 通过增加哈希表的大小来加速 arp.dat 解析
  • curl
  • 使用 msh3 添加对 QUIC 和 HTTP/3 的支持
  • 默认启用多路复用
  • 支持并行传输
  • 支持通配符主机
  • 添加 zstd 解码支持
  • 添加 SHA256 指纹支持,安全传输上支持 CURLINFO_CERTINFO
  • ethtool
  • 添加对 OSFP 收发器模块的支持
  • 添加 QSFP-DD 支持
  • 在子命令中添加对统计信息的支持
  • 添加对转储统计信息的支持
  • ipcalc
  • 改进 json 输出, 添加 -j/--json 输出模式以使用 JSON 格式打印信息。
  • 根据 RFC3021 设置广播地址
  • 将 IANA IPv6 专用地址注册支持更新到 2019-09-13
  • 将 IANA IPv4 专用地址注册表更新至 2020-04-06
  • iputils
  • 禁用 setcap 和 setuid,防止 ARP 中毒
  • 在使用 SOCK_RAW 套接字时,对标识符字段使用随机值而不是 PID。
  • tcpdump
  • 增加了对新网络协议如:Arista, Autosar SOME/IP, IEEE 802.15.9, IPoIB, SLL2, vsockmon, MACsec, OpenFlow 1.3, PTP, ZEP 等的支持
  • 增加 remote capture 特性

数据库支持

gdbm 1.23

  • 桶缓存从平衡树切换到哈希表,加快刷新磁盘上更改的存储桶;
  • gdbm_setopt 提供自动缓存、获取目录深度、最大密钥数等新选项;
  • 在支持它的系统上预读内存映射区域;
  • 在数据库重组期间保留锁定类型。

libtdb 1.4.7

  • 提升了并行查询、高度并发的工作负载、分区表、逻辑复制和清理许多性能;
  • 采用 B-tree 索引更新的管理效率更高,减少了索引膨胀;
  • 实现了管道多个查询的能力,提高高延迟连接的吞吐量;

sqlite 3.39.0

  • 内置 JSON 支持
  • 数据库文件容量增加到 281 TB
  • 减少 CPU 2.3% 使用
  • 操作 schema 时消耗更少内存
  • 针对恶意破坏数据库运行的 SQL 命令增强了稳健性。

mariadb-connector-c 3.3.1

  • 支持 Zstd 格式
  • 支持半同步复制
  • 支持大于 255 字符长度密码
  • 支持 openssl 3.0

基础库

glibc 2.35

  • 可靠性特性
  • aarch64 架构提供了包括 BTI(branch targetidentification) 和 PAC-RET(pointer authentication for return addresses) 在内的分支保护安全加固;
  • 内存分配相关接口通过 PTRDIFF_MAX 设置了上限,避免潜在的溢出误申请过大内存的行为。提高了可靠性
  • 新增异步信号安全函数 fork 族函数_Fork,用以满足用户的异步信号安全需求
  • 新功能扩展
  • 1、Unicode 编码支持到 14.0.0,支持编码范围更广
  • 2、提供新的 tunable 环境变量满足功能和性能上的灵活运用,具体为:
    • glibc.pthread.stack_cache_size 配置线程栈 cache 大小
    • glibc.rtld.dynamic_sort 选择 DSO 排序算法
    • glibc.malloc.hugetlb 通过与内核的大页配置相配合,提高系统性能
  • userspace-rcu
  • 增加对 RISC-V 架构的支持

glib2 2.72

  • 添加新 API:对齐内存分配的跨平台 API、异步文件移动 API、通知内存压力情况 API
  • 升级到 Unicode 字符数据库 v12.1

libcap 2.64

  • 引入库 libpsx,可以模拟所有 pthread 的 POSIX 系统调用
  • 新的内核功能:CAP_BPF(extended Berkeley Packet Filters)
  • 支持 Go 模块抽象,支持指定构建的 go 二进制文件
  • libcap 和 cap 包的线程安全性的改进

openldap 2.6.2

  • 添加了对 OpenSSL 3.0 的 slapo-autoca、slapo-otp、libldap、slapd 支持

解压缩基础库

  • lz4 1.9.3
  • ARM64 上解压缩速度最高提升 20%
  • BD4 压缩的数据,解压速度最高提升 70%
  • lz4frame 格式压缩的数据解压速度最高提升 40%
  • zstd 1.5.2
  • 更快的压缩解压缩速度,重平衡中间压缩 level
  • 改进的 high-level 压缩率
  • long distance 模式 2 倍以上的提速,小块的解压缩速度提升,更快的目录压缩
  • zlib 1.2.12
  • 加速 CRC-32 计算,ARMv8 上使用硬件 CRC-32 指令

软件包管理

软件包管理与更新

  • 新增 rpm 的增量更新能力
  • 新增对 loongarch 的支持
  • 更丰富的控制命令、参数,更细致的控制
  • 仓库元数据读取更高效,功能更稳定
  • 对 Python3.10 更好的支持

图形库及语言字体支持

gtk3 3.24.34

  • 字体提供了更多灵活的设置,如设置 OpenType 字体、允许选择 OpenType 字体变体等
  • emoji 功能更丰富,如支持 Emoji 的完成弹出窗口、支持删除快捷键等
  • 允许从屏幕上挑选颜色
  • 同时支持 gtk-text-input 和 text-input-unstable-v3 作为输入协议

libjpeg-turbo 2.1.3

  • 在支持 AVX2 指令的 CPU 上性能优化
  • 龙芯(MIPS)平台性能优化
  • 优化 ARM64 性能
  • java 绑定仅支持 x64

libpng 1.6.37

  • 优化 ARM 上性能

freetype 2.12.1

  • 支持彩色分层的轮廓字形(例如,可扩展的表情符号字形)
  • 支持 WOFF 2 字体

harfbuzz 4.2.1

  • 支持 Unicode 15 support
  • 支持彩色字体
  • 支持 “GDEF”、“GSUB” 和“GPOS”表中超过 65535 个字形的字体,完全支持从 4.0.0 版本开始的 “glyf” 表中超过 65535 个字形
  • 加载和子集字体的速度加快,尤其是在处理 CFF 表时,对某些字体进行子集化快 3 倍

文档支持

ctags 5.9

  • 全新版本的 Universal Ctags,与 Exuberant Ctags 不兼容
  • 解析器上进行一系列扩展升级
  • 字符解析更加严格

expat 2.4.8

  • 升级:支持更多的命令和软件平台
  • 安全:升级对网络攻击的抵御,提升软件安全性

hunspell 1.7.1

  • 提升 suggestion 性能
  • 改进 Hunspell 命令行
  • 提供更多支持,合并 Weblate 翻译的功能

man-db 2.10.2

  • 显著提升性能
  • 新增为快速批量转换而设计的 man-recode 程序
  • 支持更多国家语言

libcomps 0.1.18

  • 使用新的 cmake 宏进行构建
  • 解决内存泄露和资源泄露问题

texinfo 6.8

  • 改进内部模块,提升解析速度
  • 支持压缩目录
  • 语言新增特性

json-c 0.16

  • 提升解析速度
  • 减少内存使用
  • 增加多个新功能函数,添加对无符号 64 位整数 uint64_t 的支持

漏洞管理

OpenCloudOS Stream 的 bug 追踪系统:

使用 OpenCloudOS Stream 版本遇到和任何问题,诚挚欢迎社区的用户、开发者朋友多提宝贵建议。我们还有很多需要改进和完善的地方。