BPF 還沒有套件管理員:Song Liu 在 LSFMM+BPF 2026 談函式庫生態系的未來
LWN.net · 2026-07-31
在 2026 年 Linux Storage, Filesystem, Memory-Management, and BPF Summit(LSFMM+BPF,5 月 4 日至 6 日於克羅埃西亞札格雷布舉行)的一場議程中,核心 BPF 維護者 Song Liu 提出一個觀察:開發者組裝複雜 BPF 程式的方式,即將出現快速變化,而目前的 BPF 生態系完全沒有為此做好準備。他沒有帶來具體提案,而是拋出問題,讓與會的核心開發者一起思考 BPF 維護團隊是否該介入、又該如何介入。
背景:BPF 程式是怎麼組裝出來的
BPF(早期稱為 eBPF)程式目前多半以 C 搭配 libbpf 撰寫,並透過 CO-RE(Compile Once – Run Everywhere)機制,利用核心的 BTF 中繼資料,讓同一份編譯產物能跨不同核心版本執行而不必重新編譯。這套機制解決了「一次編譯、到處執行」的可攜性問題,但並沒有解決「程式碼怎麼重用」的問題——目前業界寫 BPF 程式時,大量共用邏輯是靠複製貼上,而不是像一般應用程式那樣 import 一個函式庫。
Song Liu 觀察到,隨著 Aya(Rust 撰寫 BPF 的框架)等專案成熟,越來越多開發者改用 Rust 寫 BPF 程式,而 Rust 生態系天生依賴 crates.io 上大量細粒度套件互相依賴。這與 C/libbpf 時代「單體式撰寫、少量共用」的習慣是兩種完全不同的開發模式。
核心討論:Rust 套件生態系會怎麼衝擊 BPF
Song Liu 預期會出現一個 Rust BPF 套件生態系,也就是開發者把常見的 BPF 邏輯(例如特定的追蹤、過濾、安全檢查片段)包裝成可發布、可版本化、可組合的 crate,供其他專案直接引用。問題在於,BPF 目前沒有真正的套件管理員——沒有官方管道去管理這些函式庫之間的版本相容性、核心 API 依賴、以及跨核心版本的 ABI 穩定性保證。
與會者討論了幾個潛在麻煩:
- 不同 crate 各自依賴不同版本的 kfunc(可從 BPF 呼叫的核心函式),版本衝突時難以除錯
- BTF/CO-RE 的可攜性保證是針對單一編譯單元設計,多個獨立函式庫組合後是否仍然成立,尚無定論
- 驗證器(verifier)對於「拼裝」出的 BPF 程式,複雜度與可驗證性可能大幅提高
會中也提到 kfunc 的持續擴充——2026 年的討論包含是否該新增一批對應常見位元運算 compiler builtin 的 kfunc,與會者對此方向大致認同,這類擴充也被視為當初推動「快速 kfunc 呼叫」機制的原始動機之一。
影響範圍
這場討論沒有產出任何具體的維護者行動項目,Song Liu 本人也承認自己沒有明確提案。對 BPF 維護團隊而言,這是一個提早示警:如果 Rust BPF 函式庫生態系真的如預期般成長,現有以 libbpf/CO-RE 為核心的可攜性與相容性模型可能需要重新檢視,尤其是牽涉到多方函式庫組合時的驗證與 ABI 邊界問題。對於正在用 Aya 等工具寫 BPF 程式的團隊,這也意味著短期內不必期待官方會提供類似 Cargo 或 npm 那樣的正式套件治理機制,程式碼重用仍會依賴社群自發的慣例。
需要說明的是,本文主要依據 LWN 對此議程的報導撰寫;由於該場次沒有公開投影片或錄影連結,也查無對應的 lore.kernel.org 郵件討論串,因此本文以 LWN 的會議報導作為最接近的原始來源。另外,此議程實際發生於 2026 年 5 月的 LSFMM+BPF 峰會,LWN 直到 7 月底才刊出報導,兩者時間點有數月落差,屬於 LWN 常見的會議報導排程延遲。
原始來源:The future of libraries in BPF(LWN.net)、LSFMM+BPF 2026 官方議程頁
Servo 瀏覽器引擎釋出 0.4.0:單月 558 次提交,WebGPU 與版面正確性同步推進
Servo 官方部落格 · 2026-07-31
Rust 撰寫的實驗性瀏覽器引擎專案 Servo 發布 0.4.0 版 Tech Demo,對應部落格文章彙整了 2026 年 6 月份的開發進度,單月合併 558 次 commit,是繼 4 月(534 次)、5 月(391 次)後再創新高。這次更新涵蓋版面渲染正確性、WebGPU 能力、servoshell 測試瀏覽器體驗,以及一系列效能與安全性修補。
核心改動:渲染正確性與安全性
JavaScript 執行環境更新至 SpiderMonkey 140.12.0,修補了包含 CVE-2026-8388、CVE-2026-8391、CVE-2026-8974、CVE-2026-8975 在內的多個安全性問題。版面配置的核心資料結構 BoxFragment 大小從 288 bytes 縮減至 240 bytes(amd64 平台),減少約 17%,這類記憶體佈局優化直接影響大量元素頁面的渲染吞吐量。
可變字型(variable fonts)處理獲得強化,讓 Zulip、Speedtest.net 等網站的文字渲染更準確;文字裝飾線(text decoration)也修正為能跨越元素邊界連續呈現。官方表示這些改動讓 llchess.org 的相容性明顯改善,Google Photos、Cash Converters 等網站也開始正常渲染,Google Maps 與 OpenStreetMap 則是頁面可顯示但互動仍有問題。
WebGPU 與新增 DOM API
WebGPU 是讓網頁直接存取 GPU 進行繪圖與運算的瀏覽器 API,是 WebGL 的後繼者。此次新增:
GPUQueue.copyExternalImageToTexture()GPUDevice.createQuerySet()- Command encoder 的除錯群組(debug group)方法
- 更符合規範的
GPUTexture行為與requestAdapter()
DOM 方面新增了 SharedWorker 實作、console.dir()、Document 與 ShadowRoot 上的 customElementRegistry,以及指標捕捉相關方法 setPointerCapture()、releasePointerCapture()、hasPointerCapture(),加上觸控事件處理與 textStream()。CSS 層則實驗性支援 attr() 函式、裝置尺寸/長寬比/方向/指標/懸停狀態相關的媒體查詢,以及 @font-face 中的 font-feature-settings。
影響範圍:效能與工具鏈
2D canvas 的耗電量降低 23%,版面配置流程透過 NoGC 最佳化減少逾 1% 的額外負擔,圖片解碼與快取也改為非同步處理,多個子系統減少了不必要的記憶體配置。測試用瀏覽器 servoshell 新增檔案拖放支援、頁籤列可水平捲動、全螢幕正確顯示於當前螢幕、`
LWN 報導此次發布時提到,讀者評論區有人指出 Servo「開始能有效渲染真實世界的網頁」,並觀察到它與另一個從零開始的瀏覽器引擎專案 Ladybird 之間的差距正在縮小——對照之下 Ladybird 近期因人力資源集中於 AI 相關開發而暫停外部貢獻,Servo 則持續維持對新貢獻者友善的低門檻任務機制。
原始來源:June in Servo(Servo 官方部落格)、Servo 0.4.0 GitHub Release、Servo 0.4.0 released(LWN.net)
惡意套件接手潮再起,Arch Linux 緊急關閉 AUR 套件領養功能
Arch Linux aur-general 郵件列表 · 2026-07-30
Arch Linux DevOps 團隊於 7 月 30 日在 aur-general 郵件列表發出公告,暫時關閉 AUR(Arch User Repository)的套件領養(package adoption)功能,原因是「近期出現一波惡意套件領養與後續惡意提交的湧入」。這是團隊在同一年內第二次針對 AUR 帳號與套件治理機制祭出限制性措施。
背景:什麼是 AUR 套件領養
AUR 是由社群維護、不受官方審核的套件庫,任何使用者都能上傳建置腳本(PKGBUILD)供他人安裝。當原維護者棄置某個套件(package 進入 orphan 狀態)後,任何其他使用者都可以透過「領養」機制申請接手維護權,繼續更新該套件的建置腳本。這個機制原本是為了避免熱門套件因原作者失聯而停止更新,但也因此成為攻擊者鎖定的入口——只要註冊帳號、申請領養一個有一定安裝量的孤兒套件,就能取得直接修改其建置腳本的權限。
核心事件:惡意載荷與時間軸
根據 LWN 的報導,此波攻擊植入的惡意載荷是一個遠端存取木馬(RAT),會透過 Tor 網路接收指令,並嘗試上傳大量使用者資料。這一輪攻擊影響了數十個 AUR 套件。這並非今年首次類似事件:
- 6 月:Arch Linux 因先前一波攻擊者大量註冊新帳號、領養孤兒套件並推送惡意更新,暫停新帳號註冊
- 7 月 13 日:DevOps 團隊加上部分帳號註冊限制後重新開放註冊
- 7 月 30 日:由於限制不足以阻止新一波領養濫用,直接關閉套件領養功能本身
DevOps 團隊代表 Robin Candau(帳號 Antiz)具名發出的公告內容相當簡短,並未提供受影響套件的完整清單或攻擊細節,僅表示「待狀況釐清後會再發後續公告」,並呼籲使用者回報可疑的領養行為、保持警覺。公告本身以 PGP 簽署並附上金鑰供驗證。
影響範圍
在功能關閉期間,孤兒套件將無法透過領養機制轉移維護權,這代表即使某個受歡迎的孤兒套件出現安全性更新需求,一般使用者也暫時無法透過正常管道接手。LWN 報導中的社群討論則聚焦在治理機制的長期修法方向,例如導入「延遲生效的臨時權杖」——也就是領養申請通過後不立即生效,而是延遲一段時間才給予寫入權限,藉此拖慢自動化攻擊的速度,同時不影響一般人類使用者的正常操作節奏。截至發稿,Arch Linux 尚未公布領養功能何時恢復,也未說明是否會導入類似機制。
原始來源:AUR packages adoption disabled(Arch Linux aur-general 郵件列表)、Arch Linux disables AUR package adoption(LWN.net)