ITBear旗下自媒體矩陣:

開源歐拉 openEuler 將推動(dòng)建立 eBPF 軟件發(fā)布標(biāo)準(zhǔn)

   時(shí)間:2022-12-06 09:36:01 來源:IT之家編輯:茹茹 發(fā)表評(píng)論無障礙通道

12 月 5 日消息,據(jù) openEuler 發(fā)布,eBPF 是能夠在內(nèi)核運(yùn)行沙箱程序的技術(shù),提供了一種在內(nèi)核事件和用戶程序事件發(fā)生時(shí)安全注入代碼的機(jī)制,使得非內(nèi)核開發(fā)人員也可以對(duì)內(nèi)核進(jìn)行控制。隨著內(nèi)核的發(fā)展,eBPF 逐步從最初的數(shù)據(jù)包過濾擴(kuò)展到了網(wǎng)絡(luò)、內(nèi)核、安全、跟蹤等,而且它的功能特性還在快速發(fā)展中,早期的 BPF 被稱為經(jīng)典 BPF,簡稱 cBPF,正是這種功能擴(kuò)展,使得現(xiàn)在的 BPF 被稱為擴(kuò)展 BPF,簡稱 eBPF。

如今 eBPF 被廣泛應(yīng)用在云原生、可觀測(cè)、性能調(diào)優(yōu)、安全、硬件加速等領(lǐng)域,并且其應(yīng)用場(chǎng)景還在快速擴(kuò)展。

雖然 eBPF 技術(shù)應(yīng)用呈現(xiàn)井噴現(xiàn)象,但是開發(fā)、發(fā)布、安裝等相關(guān)的基礎(chǔ)技術(shù)出現(xiàn)碎片化現(xiàn)象,導(dǎo)致技術(shù)成果無法快速平移至行業(yè)客戶生產(chǎn)環(huán)境;相似 eBPF 技術(shù)應(yīng)用在重復(fù)實(shí)踐。這些問題阻礙 eBPF 技術(shù)的普及與推廣。

如下圖所示,總結(jié)目前 eBPF 的開發(fā)、發(fā)布方式基本可以劃分成 2 種技術(shù)路線:

開發(fā)態(tài)、運(yùn)行態(tài)分離(典型代表 libbpf)

優(yōu)點(diǎn):ELF 文件形式(或者鏈接進(jìn)應(yīng)用程序)發(fā)布,運(yùn)行時(shí)輕量化,適合生產(chǎn)環(huán)境大規(guī)模應(yīng)用。

缺點(diǎn):應(yīng)用技術(shù)門檻高,且不具備可移植性(比如高內(nèi)核版本的 eBPF 程序無法移植至低內(nèi)核版本中)。

開發(fā)態(tài)、運(yùn)行態(tài)融合(典型代表 BCC)

優(yōu)點(diǎn):源碼形式發(fā)布天然具備可移植性;封裝抽象運(yùn)行時(shí),提供高級(jí)語言 API,降低開發(fā)難度。

缺點(diǎn):運(yùn)行時(shí)重型化,對(duì)生產(chǎn)環(huán)境要求較高(需要安裝開發(fā)態(tài)一系列工具);高度抽象后,降低使用靈活度,不適合大型應(yīng)用開發(fā)。

目前 eBPF 的開發(fā)、發(fā)布方式

這兩種技術(shù)路線都存在弊端,隨著 eBPF 技術(shù)的發(fā)展,出現(xiàn) BumbleBee 、eunomia-bpf 等項(xiàng)目致力于綜合這兩類技術(shù)路線的優(yōu)點(diǎn),但依舊缺乏對(duì) eBPF 基礎(chǔ)技術(shù)的整體規(guī)劃。

eBPF summit 2022 《The future of eBPF in the Linux Kernel》展望了 eBPF 的發(fā)展方向,具體的演進(jìn)方向包括幾個(gè)方面:

更完備的編程能力:當(dāng)前 eBPF 的編程能力存在一些局限性(比如不支持變量邊界的循環(huán),指令數(shù)量受限等),演進(jìn)目標(biāo)提供圖靈完備的編程能力。

更強(qiáng)的安全性:支持類型安全,增強(qiáng)運(yùn)行時(shí) Verifier,演進(jìn)目標(biāo)是提供媲美 Rust 的安全編程能力。

更廣泛的移植能力:增強(qiáng) CO-RE,加強(qiáng) Helper 接口可移植能力,實(shí)現(xiàn)跨體系、平臺(tái)的移植能力。

更強(qiáng)的可編程能力:支持訪問 / 修改內(nèi)核任意參數(shù)、返回值,實(shí)現(xiàn)更強(qiáng)的內(nèi)核編程能力。

概括其演進(jìn)目標(biāo)是希望將 eBPF 打造成一款針對(duì)內(nèi)核(包括硬件)運(yùn)行時(shí)的安全編程語言,通過該語言構(gòu)建 eBPF 軟件,用來承載內(nèi)核(或硬件)的能力。演進(jìn)結(jié)果產(chǎn)生一個(gè)有趣現(xiàn)象:按照傳統(tǒng)軟件類型劃分方式,我們很難將 eBPF 軟件歸類成應(yīng)用軟件或是系統(tǒng)軟件。所以,干脆將其定義成一種獨(dú)立軟件形態(tài):內(nèi)核態(tài)服務(wù)(eBPF as Service)。

eBPF Service 形態(tài)

IT之家了解到,openEuler 可編程內(nèi)核 SIG 希望標(biāo)準(zhǔn)化 eBPF 軟件相關(guān)基礎(chǔ)技術(shù)(包括打包、發(fā)布、安裝、升級(jí)等),方便 eBPF 技術(shù)在各行業(yè)、場(chǎng)景的推廣。為此,由多家企業(yè) / 高校在 openEuler 社區(qū)倡議建立行業(yè)標(biāo)準(zhǔn),通過標(biāo)準(zhǔn)化發(fā)布將內(nèi)核定制能力、硬件卸載能力向社區(qū)用戶提供性能加速、安全加固、智能觀測(cè)等服務(wù)。

具體討論范圍劃分成三個(gè)方向:

eBPF runtime:負(fù)責(zé)提供具備可移植性的軟件安裝能力,軟件熱升級(jí)能力,包管理等能力。

eBPF Development Kit:負(fù)責(zé)提供一站式開發(fā)、調(diào)試、編譯工具,提供具備跨體系、平臺(tái)移植能力的軟件包發(fā)布能力。

eBPF Service HUB:負(fù)責(zé)提供 eBPF Service 集市化管理,提供 eBPF Service 推送、分發(fā)等能力。

openEuler 可編程內(nèi)核 SIG 目標(biāo)

openEuler 可編程內(nèi)核 SIG 目標(biāo)之一將推動(dòng) eBPF as Service 標(biāo)準(zhǔn)化工作,將內(nèi)核能力、硬件加速能力服務(wù)化、集市化,惠及更多的社區(qū)用戶。與此同時(shí),openEuler 社區(qū)會(huì)將行業(yè)標(biāo)準(zhǔn)內(nèi)的一些基礎(chǔ)軟件、技術(shù)標(biāo)準(zhǔn)推送至 Linux 上游社區(qū),加強(qiáng) eBPF 技術(shù)生態(tài)建設(shè)。

舉報(bào) 0 收藏 0 打賞 0評(píng)論 0
 
 
更多>同類資訊
全站最新
熱門內(nèi)容