Alibaba Cloud Linux 4(簡稱 Alinux 4)是阿里雲打造的 Linux 伺服器作業系統發行版,基於龍蜥社區 Anolis OS 23 版本進行開發和深度定製。本文介紹 Alinux 4 相對 Alinux 3 在產品定位、模組/組件、核心能力、軟體包等方面的主要區別,供 Alinux 3 使用者在評估升級、做相容性分析和遷移規劃時參考。
產品定位與推薦情境
Alinux 4 不再追求 CentOS 相容替代,而是採用全新的 6.6 版本核心並對核心工具鏈版本進行重新選型。其設計目標是面向異構算力支援、AI 算力最佳化、AI 營運可觀測以及系統智能進化等方向。
產品代際定位對比
維度 | Alibaba Cloud Linux 3 | Alibaba Cloud Linux 4 |
發布年份 | 2021 年 4 月 | 2025 年 7 月 |
上遊基礎 | Anolis OS 8 | Anolis OS 23 |
CentOS 相容 | 核心目標 | 不再承載 CentOS 相容替代 |
核心動力 | 替代 CentOS、阿里雲 8 代執行個體使能 | AI 驅動、異構算力、智能進化 |
核心版本 | 5.10(ANCK) | 6.6(ANCK) |
包管理 | dnf(相容 yum) | dnf(同 Alinux 3,新一代倉庫結構) |
典型組件名 | al8 | alnx4 |
推薦使用情境
Alinux 4 推薦在以下情境使用:
Agent 負載情境:支援作為 Agent Runtime,提供安全防護及 Token 節省能力,全面支援阿里雲及開源 Sandbox 架構運行環境的部署和調優,在啟動速度和負載密度有獨特優勢。
9 代及以後通算執行個體:可提供核心級的效能最佳化和特性使能。
訓練及推理情境:可提供訓練及推理套件,實現訓推情境的最佳化加速。
國產執行個體類型:符合安全合規的要求,提供長達 13 年的生命週期維護。
全量組件對比情況
經過對 Alinux 3(3.13 版本基準)與 Alinux 4(4.0.2 版本基準)組件比對,相同組件佔比約 58%。整體差異分布如下:
組件情況 | 組件個數 | 說明 |
Alinux 4 繼承 | 1706 | 其中 1666 個組件完全相同,剩餘 40 個為更換了組件名/提供者的同等能力組件。 |
Alinux 4 不再提供 | 1191 | 較多為多語言支援和 modules 包。 |
Alinux 4 新增 | 1109 | 多為產品策略和生態範圍支援。其中 257 個為 perl 語言支援包,427 個為 python 語言支援包,40 個為 ocaml 支援和 gcc 多版本支援。 |
全量組件對比情況見Alinux3 和 Alinux4 全量組件對比清單.xlsx。
模組/組件版本區別
系統功能變化說明
能力 | Alibaba Cloud Linux 3 | Alibaba Cloud Linux 4 | 差異說明 |
包管理 | dnf-4.7.0 | dnf-4.16.2 | 使用上無差別:同時提供 dnf 和 yum。高版本在安全、簽名驗證和效能方面進行了最佳化。 |
網路設定 | NetworkManager-1.40.16 | NetworkManager-1.44.2 | 預設增強容器網路與 WireGuard、DNS-over-TLS。 |
網路資料包過濾 | nftables-1.0.4 | nftables-1.0.8 | 進一步收斂 iptables 相容層。 |
預設容器運行時 | podman-4.9.4 | moby-28.3.3 / containerd-1.7.29 | 更換 docker 提供者,同時提供可用的 containerd 組件。 |
Java 發行版 | OpenJDK 1.8/11/17/21(社區版) | Alibaba Dragonwell 1.8/11/17/21/25 | 額外提供 25 版本的 JDK,預設通過 Dragonwell 實現 OpenJDK 加速。 |
預設 Python | python3.6(額外支援 3.11) | python3.11 | 3.11 具有明顯的系統最佳化,包括 specializing adaptive interpreter、內聯緩衝等。 |
OpenSSL | OpenSSL 1.1.1(相容舊 ABI) | OpenSSL 3.0.12(預設)/ OpenSSL 1.1.1q(同時提供) | OpenSSL 3.0.12 提供 FIPS 140-3、provider 架構、TLS 1.3 優先。 |
Cgroup | 預設啟用 Cgroup V1 | 預設啟用 Cgroup V2 | 依賴 cgroup v1 的工具需適配。 |
注意:Alinux 4 預設提供cgroup v2與OpenSSL 3.0,使用舊版本 OpenSSL ABI(如libssl.so.1.1)的二進位需要重新編譯或安裝相容包;依賴 cgroup v1 路徑的容器編排或監控工具需適配為 cgroup v2 統一層級。
組件升級說明
組件 | 類別 | Alinux 3 | Alinux 4 | 主要變更點 |
kernel | 核心 | 5.10 | 6.6 | ANCK 6.6 引入 io_uring 增強、ext4 效能最佳化、large folio、MGLRU、EEVDF/sched_ext、cgroup v2 cpuset 等大量上遊能力。 |
glibc | 基礎 | 2.32 | 2.38 | 支援 Linux 5.8–6.3 新系統調用;最佳化 ARM64/RISC-V;malloc 增強;VDSO 加速。 |
libc++ | 基礎 | 15.0.7 | 17.0.6 | C++20 最佳化、C++23 引入新功能;容器與格式化最佳化。 |
libstdc++ | 基礎 | 10.2.1 | 12.3.0 | C++20 最佳化、C++23 初期支援;安全執行緒調整。 |
libvirt | 虛擬化 | 8.0.0 | 9.10.0 | 虛擬化棧整體升級,對接更新 qemu。 |
qemu | 虛擬化 | 6.2.0 | 8.2.0 | 支援新硬體平台與 virtio 增強;包名由 qemu-kvm 改為 qemu。 |
GCC | 編譯器 | 8.5 | 12.3 | C++20/23 完善、static analyzer、新 ISA 指令集。 |
systemd | 系統管理 | 239 | 254 | 統一 cgroup v2、Portable Services、Credential、BPF、OOM Policy 等。 |
OpenSSL | 安全 | 1.1.1 | 3.0.12 | FIPS 140-3、provider 架構、TLS 1.3 優先。 |
containerd | 容器 | 未提供 | 1.7.29 | 新增獨立 containerd 組件。 |
moby | 容器 | 未提供(僅 podman) | 28.3.3 | 新增 moby(Docker 開源引擎)。 |
核心新增重點特性
儲存
io_uring
相比 5.10,6.6 核心在非同步 IO 架構 io_uring 上持續增強:
特性 | 說明 |
Async buffered writes | 在 fast path 增加 buffered 寫支援,xfs 測試 ~3x 效能提升。 |
Task work lock contention | spin lock 改為 lockless list,多線程 task_work_add 效能提升約 20%。 |
Multishot completion batching | multishot 完成事件複用 IO_URING_F_COMPLETE_DEFER,RPS 由 8.3 M/s 提升到 19.3 M/s(~2.3x)。 |
SQ/CQ caching 最佳化 | io_uring nop micro benchmark 提升約 9%。 |
新增能力 | multishot accept/recvmsg/timeout、網路零拷貝、passthrough 直通、使用者態塊驅動 ublk 等。 |
ext4
覆蓋塊分配、inode 預分配、並發與鎖、可擴充性等多方面:
特性 | 說明 |
Improve delalloc buffer write performance | 移除 delalloc 寫流程中不必要的 journal 操作,UnixBench 提升約 73%。 |
Speedup orphan file handling | 引入 orphan file 替代 ondisk linked list,128 線程 micro benchmark 操作時間下降約 40%。 |
Improve fast_commit performance | ext4_fc_commit_dentry_updates 由 O(n²) 最佳化為 O(n),fs_mark 多目錄小檔案情境提升約 171x。 |
DIO 共用 inode lock 覆蓋預分配塊 | 預分配塊覆蓋寫改為 i_data_sem 保護,4k 多線程 DIO 寫效能約 4x 提升。 |
Inode preallocation list → rbtree | 尋找複雜度 O(n) → O(log n),sparse 寫入提升 1x ~ 2x。 |
Speed up delalloc append write | 追加寫情境延遲 i_disksize 更新,32 線程並發追加約 34% 提升;Kafka 2.6.2 實測吞吐 +10%。 |
Enable large folio for regular files | 基於 buffer head 在 mballoc/write_begin/writeback 上做 folio 改造,buffer IO 讀寫最多約 1.2x 提升。 |
記憶體
記憶體子系統覆蓋成本最佳化、大記憶體管理、軟硬協同等方向。
記憶體成本最佳化
特性 | 說明 |
HVO(HugeTLB vmemmap optimization) | 釋放 hugetlb 大頁中不使用的 tail page struct,1T 大小的 1G hugetlb 可節省 16G 記憶體。 |
DAMON(Data Access Monitor) | 基於區間採樣和自適應區間調整,主動回收冷記憶體。 |
MGLRU 冷記憶體回收 | 更輕量級的記憶體 aging 與冷記憶體主動回收方案。 |
tmpfs 零頁填充 | tmpfs 疏鬆檔案零頁複用,避免佔用額外實體記憶體。 |
大記憶體管理(Large folio + Lock Scalability)
AI 與虛擬化大記憶體情境下,6.6 核心預設開啟 Large folio,支援 ARM contiguous PTE、AMD THP,降低 TLB miss;徹底解決 5.10 時代僅能 workaround 的 mmap_lock scalability 問題。
記憶體軟硬協同最佳化
特性 | 說明 |
Memory tiering | 支援異構 CXL/PMEM 記憶體自動冷熱分層管理。 |
Migration batch TLB flushing | 批量化 TLB IPI,最佳化遷移路徑效能。 |
NUMA balancing 支援大頁 | large folio 也參與 NUMA balance,訪問本地大頁提升業務效能。 |
程式碼片段多副本(duptext) | 將遠程節點程式碼片段複製到本地節點,避免跨 NUMA 訪問。 |
調度
特性 | 說明 |
EEVDF | 基於虛擬截止時間的調度,相比 CFS 在保證吞吐不變的同時,讓延遲敏感任務響應更快。 |
sched_ext | 新增 ext 調度類,通過 eBPF 程式實現自訂調度策略,針對不同業務情境定製最優調度器。 |
PSI 增強 | per cgroup PSI 統計開關、irq/softirq 負載統計、非特權 poll psi event。 |
cgroup v2 cpuset 隔離 | 新增 isolated 模式(cpuset 範圍內不做負載平衡,適合 DPDK 等獨佔情境)。 |
Group Identity 2.0 | 基於 CFS/EEVDF 的細粒度調度最佳化,簡單高效規避超執行緒爭搶。 |
Group Balance 2.0 | 解決 CPU share 化模式下親和域問題與 cache/TLB 競爭幹擾的動態調度方案。 |
差異化組件歸類分析
Alinux 4 不再提供的組件
共 1191 個組件,按引入原因分布如下:
190 個多語言格式支援包:Alinux 4 僅支援中英文,其他語言暫不支援。
108 個 Module 包(DNF Modular):Alinux 4 目前未支援 module 包形式。
36 個驅動組件(kmod-*):Alinux 4 暫未提供,正在商議後續計劃。
30 個 mingw 編譯工具鏈:Alinux 4 未提供 mingw 交叉編譯環境。
42 個 gcc 多版本:gcc-toolset-12/13 等;Alinux 4 已切換預設 gcc 版本。
34 個 OCaml 支援:Alinux 4 未引入 OCaml 生態。
9 個 Red Hat 產品組件:Alinux 4 為自研產品,無需引入。
806 個其他應用組件:尚未明確分類,需應用側逐項確認。
升級建議:業務方在遷移前請使用 rpm -qa 匯出現有 Alinux 3 執行個體的軟體包清單,與上述類別對比;如依賴 module 包、gcc 多版本工具鏈、mingw、OCaml、kmod-*、Red Hat 產品組件,需提前評估替代方案。Alinux 4 上發生變更的組件
共 40 個組件在 Alinux 4 中以等價能力但不同包名/提供者形式存在。常見替換關係如下:
原 Alinux 3 組件 | Alinux 4 等價提供者 | 說明 |
SDL 1.2.15 | sdl12-compat 1.2.68 | SDL 1.2 → SDL 2 相容層 |
device-mapper-multipath 0.8.4 | multipath-tools 0.9.5 | 提供者更換 |
fipscheck 1.5.0 | libkcapi-fipscheck 1.4.0 | FIPS 校正改用 libkcapi |
glassfish-annotation-api / servlet-api | jakarta-annotations / jakarta-servlet | JavaEE → Jakarta EE 命名空間遷移 |
hardlink 1.3 | util-linux-core 2.39.1 | 合并到 util-linux-core |
java-1.8.0/11/17-openjdk | java-1.8.0/11/17-alibaba-dragonwell | 預設 OpenJDK 替換為 Dragonwell |
python3.11-* 系列(17 項) | python3-* 對應包 | 包名歸一 |
qemu-kvm 6.2.0 | qemu 8.2.0 | 包名由 qemu-kvm 改為 qemu |
shadow-utils 4.6 | shadow 4.14.3 | 包名調整 |
system-lsb 4.1 | lsb-release 3.2 | 提供者變更 |
Alinux 4 新增專屬組件(1109 項)
Alinux 4 相對 Alinux 3 新增的專屬組件主要分佈於以下方向:
427 個 Python 語言生態包:圍繞 python 3.11 預設運行時新增的 python3-* 模組。
257 個 Perl 語言生態包:配合 perl 5.36 升級新增的 CPAN 模組打包。
40 個 OCaml 與 gcc 多版本支援:通過其他途徑提供新版工具鏈。
385 個其它生態/產品策略包:來自 Anolis 23 / 龍蜥社區生態擴充。
相容性與遷移建議
適用情境判斷
建議如下情境優先評估升級到 Alinux 4:
業務情境 | 升級收益 |
AI 訓練/推理(大模型、vLLM、SGLang) | 6.6 large folio、Uncached IO、Cachefs、全棧 Profiling、分布式推理最佳化。 |
異構/國產硬體(海光、兆芯、鯤鵬、飛騰、國產 GPU) | Alinux 4 是阿里雲國產化路線的下一代核心底座,原生使能。 |
9 代及以後的執行個體 | 新增指令集、平台驅動、調度最佳化。 |
大規模容器/混部 | cgroup v2 預設、PSI per-cgroup、cpuset isolated、Group Identity/Balance 2.0。 |
對 OpenSSL 3.0、Python 3.11、GCC 12+ 有強需求 | 現代化基礎設施開箱即用。 |
相容性高風險項
OpenSSL 3.0:舊版
libssl.so.1.1二進位不再預設提供,需重新編譯或安裝相容包。cgroup v2 預設:依賴 cgroup v1 路徑的容器編排、監控 Agent 需適配。
Java 預設 Dragonwell:業務如嚴格依賴 OpenJDK 行為或 vendor 字串,需在 OpenJDK / Dragonwell 之間顯式指定。
Python 預設 3.11:Python 3.6 編譯的 C 擴充、依賴 distutils 的舊指令碼需要適配。
Module 包不再支援:使用 DNF Modular 的部署指令碼需改造。
kmod-* 驅動:部分硬體驅動(ena、bnxt、hns3 等)目前在 Alinux 4 上未提供,需評估業務影響。
包名變更:
qemu-kvm → qemu、shadow-utils → shadow、system-lsb → lsb-release、python3.11-* → python3-*等命名空間遷移需要更新部署指令碼。
推薦遷移路徑
盤點:在 Alinux 3 執行個體上執行
rpm -qa > alinux3-pkglist.txt,對照本文差異化組件歸類分析進行差異分析。替換:對變更組件,在部署指令碼裡調整為 Alinux 4 等價包名。
評估:對"待逐項確認(806 個)"的組件,在測試環境驗證其必要性。
試驗:優先在 AI、混部、國產硬體情境的非核心業務上試驗 Alinux 4。
規模化:試驗穩定後再分批替換核心業務,必要時採用容器化作為過渡。