Linux內(nèi)核測試生命周期是怎么樣的

這篇文章主要為大家展示了“Linux內(nèi)核測試生命周期是怎么樣的”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Linux內(nèi)核測試生命周期是怎么樣的”這篇文章吧。

成都創(chuàng)新互聯(lián)專注于津市企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),購物商城網(wǎng)站建設(shè)。津市網(wǎng)站建設(shè)公司,為津市等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

從一次更改開始

內(nèi)核中每一項令人興奮的功能、改進(jìn)和錯誤都始于開發(fā)人員提出的更改。這些更改出現(xiàn)在各個內(nèi)核存儲庫的大量郵件列表中。一些存儲庫關(guān)注內(nèi)核中的某些子系統(tǒng),例如存儲或網(wǎng)絡(luò),而其它存儲庫關(guān)注內(nèi)核的更多方面。  當(dāng)開發(fā)人員向內(nèi)核提出更改或補(bǔ)丁集時,或者維護(hù)者在存儲庫本身中進(jìn)行更改時,CKI 項目就會付諸行動。

CKI 項目維護(hù)的觸發(fā)器用于監(jiān)視這些補(bǔ)丁集并采取措施。諸如 Patchwork 之類的軟件項目通過將多個補(bǔ)丁貢獻(xiàn)整合為單個補(bǔ)丁系列,使此過程變得更加容易。補(bǔ)丁系列作為一個整體歷經(jīng) CKI 系統(tǒng),并可以針對該系列發(fā)布單個報告。

其他觸發(fā)器可以監(jiān)視存儲庫中的更改。當(dāng)內(nèi)核維護(hù)人員合并補(bǔ)丁集、還原補(bǔ)丁或創(chuàng)建新標(biāo)簽時,就會觸發(fā)。測試這些關(guān)鍵的更改可確保開發(fā)人員始終具有堅實(shí)的基線,可以用作編寫新補(bǔ)丁的基礎(chǔ)。

所有這些更改都會進(jìn)入 GitLab CI 管道,并歷經(jīng)多個階段和多個系統(tǒng)。

準(zhǔn)備構(gòu)建

首先要準(zhǔn)備好要編譯的源代碼。這需要克隆存儲庫、打上開發(fā)人員建議的補(bǔ)丁集,并生成內(nèi)核配置文件。這些配置文件具有成千上萬個用于打開或關(guān)閉功能的選項,并且配置文件在不同的系統(tǒng)體系結(jié)構(gòu)之間差異非常大。  例如,一個相當(dāng)標(biāo)準(zhǔn)的 x86_64 系統(tǒng)在其配置文件中可能有很多可用選項,但是 s390x 系統(tǒng)(IBM zSeries  大型機(jī))的選項可能要少得多。在該大型機(jī)上,某些選項可能有意義,但在消費(fèi)類筆記本電腦上沒有任何作用。

內(nèi)核進(jìn)一步轉(zhuǎn)換為源代碼工件。該工件包含整個存儲庫(已打上補(bǔ)?。┮约熬幾g所需的所有內(nèi)核配置文件。 上游內(nèi)核會打包成壓縮包,而 Red Hat 的內(nèi)核會生成下一步所用的源代碼 RPM 包。

成堆的編譯

編譯內(nèi)核會將源代碼轉(zhuǎn)換為計算機(jī)可以啟動和使用的代碼。配置文件描述了要構(gòu)建的內(nèi)容,內(nèi)核中的腳本描述了如何構(gòu)建它,系統(tǒng)上的工具(例如 GCC 和  glibc)完成構(gòu)建。此過程需要一段時間才能完成,但是 CKI 項目需要針對四種體系結(jié)構(gòu)快速完成:aarch74(64 位  ARM)、ppc64le(POWER)、s390x(IBM zSeries)和  x86_64。重要的是,我們必須快速編譯內(nèi)核,以便使工作任務(wù)不會積壓,而開發(fā)人員可以及時收到反饋。

添加更多的 CPU 可以大大提高速度,但是每個系統(tǒng)都有其局限性。CKI 項目在 OpenShift 的部署環(huán)境中的容器內(nèi)編譯內(nèi)核;盡管  OpenShift 可以實(shí)現(xiàn)高伸縮性,但在部署環(huán)境中的可用 CPU 仍然是數(shù)量有限的。CKI 團(tuán)隊分配了 20 個虛擬 CPU  來編譯每個內(nèi)核。涉及到四個體系結(jié)構(gòu),這就漲到了 80 個 CPU!

另一個速度的提高來自 ccache  工具。內(nèi)核開發(fā)進(jìn)展迅速,但是即使在多個發(fā)布版本之間,內(nèi)核的大部分仍保持不變。ccache  工具進(jìn)行編譯期間會在磁盤上緩存已構(gòu)建的對象(整個內(nèi)核的一小部分)。稍后再進(jìn)行另一個內(nèi)核編譯時,ccache  會查找以前看到的內(nèi)核的未更改部分。ccache 會從磁盤中提取緩存的對象并重新使用它。這樣可以加快編譯速度并降低總體 CPU 使用率?,F(xiàn)在,耗時  20 分鐘編譯的內(nèi)核在不到幾分鐘的時間內(nèi)就完成了。

測試時間

內(nèi)核進(jìn)入最后一步:在真實(shí)硬件上進(jìn)行測試。每個內(nèi)核都使用 Beaker  在其原生體系結(jié)構(gòu)上啟動,并且開始無數(shù)次的測試以發(fā)現(xiàn)問題。一些測試會尋找簡單的問題,例如容器問題或啟動時的錯誤消息。其他測試則深入到各種內(nèi)核子系統(tǒng)中,以查找系統(tǒng)調(diào)用、內(nèi)存分配和線程中的回歸問題。

大型測試框架,例如 Linux Test Project(LTP),包含了大量測試,這些測試在內(nèi)核中尋找麻煩的回歸問題。其中一些回歸問題可能會回滾關(guān)鍵的安全修復(fù)程序,并且進(jìn)行測試以確保這些改進(jìn)仍保留在內(nèi)核中。

測試完成后,關(guān)鍵的一步仍然是:報告。內(nèi)核開發(fā)人員和維護(hù)人員需要一份簡明的報告,準(zhǔn)確地告訴他們哪些有效、哪些無效以及如何獲取更多信息。每個  CKI  報告都包含所用源代碼、編譯參數(shù)和測試輸出的詳細(xì)信息。該信息可幫助開發(fā)人員知道從哪里開始尋找解決問題的方法。此外,它還可以幫助維護(hù)人員在漏洞進(jìn)入內(nèi)核存儲庫之前知道何時需要保留補(bǔ)丁集以進(jìn)行其他查看。

以上是“Linux內(nèi)核測試生命周期是怎么樣的”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

當(dāng)前標(biāo)題:Linux內(nèi)核測試生命周期是怎么樣的
URL網(wǎng)址:http://muchs.cn/article0/jpisio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)站改版、網(wǎng)站收錄微信小程序、網(wǎng)站建設(shè)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化