Go 1.26 正式發布:Green Tea GC 成為預設、new() 接受表達式、泛型型別可自參
The Go Blog · 2026-02-10
Go 1.26 於 2026 年 2 月 10 日發布,帶來兩項語言語法延伸、Green Tea 垃圾回收器正式轉正,以及多項工具鏈與標準函式庫更新。
Green Tea GC:從 8 KiB span 出發的記憶體塊導向掃描
Green Tea GC 以「記憶體塊為中心」取代原有的「物件為中心」標記清除算法。核心轉變在於:不再逐一掃描物件,而是以 8 KiB 的連續記憶體 span 為單位批次處理。當標記器需要掃描 span 中的多個小物件(≤512 bytes)時,先在 span 的位圖記錄待掃描位置,累積足夠數量後再一次性處理整個 span——改善 CPU 快取局部性,並在 amd64 平台上啟用 SIMD 向量化加速。工作竊取(work-stealing)讓閒置的 GC worker 從忙碌 worker 的本地佇列搶任務,降低全域競爭。官方基準測試顯示 GC 開銷減少 10%~40%,具體增益取決於 heap 大小與物件混合比例。
Green Tea 在 Go 1.24 以實驗性旗標引入,1.25 完成穩定化,1.26 正式設為預設。若需退出,可在建置時加上 GOEXPERIMENT=nogreenteagc。
語言語法延伸
new() 接受表達式操作數:先前 new 的引數僅限於型別字面值,1.26 起可傳入表達式,允許 p := new(initValue) 直接指定初始值,減少多餘的中間變數宣告。
泛型型別可在型別參數列表中自參:過去泛型型別無法在自身的 constraint 中引用自身,限制了遞迴資料結構(如鏈結串列節點、樹節點)的表達。1.26 放寬此限制,允許如下定義:
type Node[T Node[T]] interface {
Next() T
}
工具鏈與標準函式庫
- cgo 基礎開銷降低約 30%,對頻繁呼叫 C 函式的程式效益明顯。
- slice 堆疊分配:編譯器在更多情境下可將 slice backing store 配置於堆疊,減少 GC 壓力。
go fix重寫:採用 Go analysis framework,內建數十個現代化建議修正(modernizer),包含 inline analyzer。- 三個新套件:
crypto/hpke(Hybrid Public Key Encryption,RFC 9180)、crypto/mlkem/mlkemtest(ML-KEM 測試工具)、testing/cryptotest(加密函式測試工具)。
影響範圍
Green Tea GC 對低延遲服務影響最顯著,大型 heap 程式(如資料處理 pipeline)可期待更平滑的 GC 停頓。crypto/hpke 的加入讓 Go 標準函式庫原生支援現代混合加密,無需引入第三方套件。
Linux 7.0 正式發布:Rust 穩定進核心、XFS 自癒架構、ML-DSA 後量子模組簽章
kernel.org / Phoronix · 2026-04-12
Linus Torvalds 於 2026 年 4 月 12 日正式發布 Linux 7.0,版本號跳躍源自 6.19 超過「x.19 就滾版號」慣例。Torvalds 在發布公告中寫道:「我猜 AI 工具持續挖出邊緣案例,這或許會是新常態一段時間。」核心技術面包含三項里程碑。
Rust 穩定化
Linux 7.0 正式終止 Rust 的「實驗性」標籤——此一歷程在 2025 Linux Kernel Maintainers Summit 確定方向,7.0 付諸實施。Rust 驅動程式現可遵循與 C 驅動相同的穩定 API 保證,首批穩定化的 Rust 抽象涵蓋 kernel::sync(Mutex、SpinLock、Arc)、kernel::fs 基礎型別,以及部分 kernel::net 結構。Rust 驅動程式不再需要 RUSTC_BOOTSTRAP 或 unstable feature gate,維護者可直接合入 staging tree。
XFS 自癒架構
XFS 長期以來在 Linux 6.10 合入了線上修復引擎(online repair engine),但需手動觸發。7.0 加入了 xfs_healer 常駐程式:透過 fanotify 監聽核心事件流,自動在背景呼叫 xfs_scrub 進行修復,由 systemd unit 管理生命週期。修復僅會在進行中的維修工作阻擋 umount,正常卸載不受影響。核心端透過 checksum 與一致性檢查持續監控中繼資料,偵測到不一致時將事件推送至 fanotify 佇列。大記憶體塊分配時間從 3.6 秒降至 0.43 秒,主因是 memory management 子系統重構。
ML-DSA 後量子模組簽章
Linux 7.0 加入 ML-DSA(CRYSTALS-Dilithium,FIPS 204)作為核心模組驗證的數位簽章算法,同時移除基於 SHA-1 的模組簽章方案。ML-DSA 是 NIST 在 2024 年後量子標準化流程中通過的三個演算法之一,專為數位簽章設計,對抗 Shor 演算法量子攻擊。現有以 SHA-1 簽署的模組在升至 7.0 後將無法載入,需重新以 SHA-256 或 ML-DSA 簽署。
影響範圍
- Ubuntu 26.04 LTS(2026-04-23 發布)以 Linux 7.0 為預設核心。
- Intel Nova Lake 與 AMD Zen 6 硬體支援同步落地。
- SHA-1 模組簽章移除對部分企業 OOT(out-of-tree)驅動商影響較大,需更新簽章流程。
原始來源:kernel.org、Phoronix: Linux 7.0 Released、XFS Online Fsck Design