eBPF 是一個能夠在內核運行沙箱程序的技術,提供了一種在內核事件和用戶程序事件發生時安全注入代碼的機制,使得非內核開發人員也可以對內核進行控制。隨著內核的發展,eBPF 逐步從最初的數據包過濾擴展到了網絡、內核、安全、跟蹤等,而且它的功能特性還在快速發展中,早期的 BPF 被稱為經典 BPF,簡稱 cBPF,正是這種功能擴展,使得現在的 BPF 被稱為擴展 BPF,簡稱 eBPF。
如今 eBPF 被廣泛應用在云原生、可觀測、性能調優、安全、硬件加速等領域,并且其應用場景還在快速擴展,各種場景基于 eBPF 技術的創新 idea 呈現井噴現象,eBPF 的時代已經來臨。
eBPF 技術現狀
雖然 eBPF 技術應用呈現井噴現象,但是開發、發布、安裝等相關的基礎技術出現碎片化現象,導致技術成果無法快速平移至行業客戶生產環境;相似 eBPF 技術應用在重復實踐。這些問題阻礙 eBPF 技術的普及與推廣。
如下圖所示,總結目前 eBPF 的開發、發布方式基本可以劃分成 2 種技術路線:
開發態、運行態分離(典型代表 libbpf)
優點:ELF 文件形式(或者鏈接進應用程序)發布,運行時輕量化,適合生產環境大規模應用。
缺點:應用技術門檻高,且不具備可移植性(比如高內核版本的 eBPF 程序無法移植至低內核版本中)。
開發態、運行態融合(典型代表 BCC)
優點:源碼形式發布天然具備可移植性;封裝抽象運行時,提供高級語言 API,降低開發難度。
缺點:運行時重型化,對生產環境要求較高(需要安裝開發態一系列工具);高度抽象后,降低使用靈活度,不適合大型應用開發。
這兩種技術路線都存在弊端,隨著 eBPF 技術的發展,出現 BumbleBee 、eunomia-bpf 等項目致力于綜合這兩類技術路線的優點,但依舊缺乏對 eBPF 基礎技術的整體規劃。
eBPF 發展展望
eBPF summit 2022 《The future of eBPF in the Linux Kernel》展望了 eBPF 的發展方向,具體的演進方向包括幾個方面:
更完備的編程能力:當前 eBPF 的編程能力存在一些局限性(比如不支持變量邊界的循環,指令數量受限等),演進目標提供圖靈完備的編程能力。
更強的安全性:支持類型安全,增強運行時 Verifier,演進目標是提供媲美 Rust 的安全編程能力。
更廣泛的移植能力:增強 CO-RE,加強 Helper 接口可移植能力,實現跨體系、平臺的移植能力。
更強的可編程能力:支持訪問/修改內核任意參數、返回值,實現更強的內核編程能力。
概括其演進目標是希望將 eBPF 打造成一款針對內核(包括硬件)運行時的安全編程語言,通過該語言構建 eBPF 軟件,用來承載內核(或硬件)的能力。演進結果產生一個有趣現象:按照傳統軟件類型劃分方式,我們很難將 eBPF 軟件歸類成應用軟件或是系統軟件。所以,干脆將其定義成一種獨立軟件形態:內核態服務(eBPF as Service)。
eBPF Service 形態
建立 eBPF 行業標準的思路
eBPF 軟件有別于系統軟件、應用軟件,從軟件自身特點而言,其應具備符合其自身特點的開發、編譯、打包、發布、安裝、升級等工具系列。
當前 eBPF 的開發框架、發布形式發展迅速,但也存在一些問題,包括跨版本移植能力、多場景支持能力、開發易用性、服務可獲得性等問題。openEuler 可編程內核 SIG 希望標準化 eBPF 軟件相關基礎技術(包括打包、發布、安裝、升級等),方便 eBPF 技術在各行業、場景的推廣。為此,由多家企業/高校在 openEuler 社區倡議建立行業標準,通過標準化發布將內核定制能力、硬件卸載能力向社區用戶提供性能加速、安全加固、智能觀測等服務。
預計我們將在 12 月份組織一次線上 meetup,當前參與企業/組織包括天翼云、深信服、華為、西郵、中山大學、中科馭數、信通院、銳捷等,希望國內對 eBPF 技術有訴求、規劃的廠商加入本次 meetup,建立 eBPF 技術相關標準,為 eBPF 技術應用、科研提供較好的基礎平臺。
具體討論范圍劃分成三個方向:
eBPF runtime:負責提供具備可移植性的軟件安裝能力,軟件熱升級能力,包管理等能力。
eBPF Development Kit:負責提供一站式開發、調試、編譯工具,提供具備跨體系、平臺移植能力的軟件包發布能力。
eBPF Service HUB:負責提供 eBPF Service 集市化管理,提供 eBPF Service 推送、分發等能力。
openEuler 可編程內核 SIG 目標
openEuler 可編程內核 SIG 目標之一就是推動 eBPF as Service 標準化工作,將內核能力、硬件加速能力服務化、集市化,惠及更多的社區用戶。
與此同時,openEuler 社區會將行業標準內的一些基礎軟件、技術標準推送至 Linux 上游社區,加強 eBPF 技術生態建設,提升國內 eBPF 技術在上游社區影響力。
審核編輯:湯梓紅
-
編程
+關注
關注
88文章
3674瀏覽量
94723 -
云原生
+關注
關注
0文章
255瀏覽量
8180 -
openEuler
+關注
關注
2文章
325瀏覽量
6205
原文標題:openEuler 倡議建立 eBPF 軟件發布標準
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
軟通動力亮相openEuler Developer Day 2025
openEuler Developer Day 2025成功舉辦
潤和軟件亮相openEuler Developer Day 2025
回顧2024年度潤和軟件與openEuler的精彩瞬間
軟通動力亮相openEuler Summit 2024
DEKRA德凱受邀出席openEuler Summit 2024
潤和軟件亮相操作系統大會openEuler Summit 2024
全球6G創新發展合作倡議發布
潤和軟件參與openEuler社區操作系統安全主題技術交流
第二屆openEuler生態大會圓滿結束
中軟國際參加openEuler 24.03 LTS版本發布會
潤和軟件攜手業界伙伴在openEuler社區成立IDE-SIG
openEuler 24.03 LTS Meetup:聚焦AI、嵌入式與分布式創新
潤和軟件受邀參與openEuler 24.03 LTS發布
openEuler 24.03 LTS正式發布,首個AI原生開源操作系統

評論