android 4.4 linux 内核版本,稳定内核版本和更新 | Android 开源项目 | Android Open Source Project...
由于之前的內(nèi)核開(kāi)發(fā)模型(每 2-3 個(gè)月發(fā)布一次新版本)被認(rèn)為無(wú)法滿足大多數(shù)用戶的需求,Linux 內(nèi)核穩(wěn)定版模型于 2005 年隨之誕生。用戶希望實(shí)際用到在 2-3 個(gè)月內(nèi)提交的錯(cuò)誤修復(fù)程序,但 Linux 發(fā)行方發(fā)現(xiàn),如果沒(méi)有內(nèi)核社區(qū)的反饋,很難確保內(nèi)核保持最新?tīng)顟B(tài)。一般情況下,努力確保各個(gè)內(nèi)核的安全并及時(shí)集成最新的錯(cuò)誤修復(fù)程序?qū)Ω鞣蕉圆粌H任務(wù)艱巨,而且令人頗感困惑。
穩(wěn)定的內(nèi)核版本直接基于 Linus Torvalds 的版本,一般每周發(fā)布一次,具體取決于各種外部因素(處于一年中的哪個(gè)時(shí)間、可用的補(bǔ)丁程序、維護(hù)人員的工作量等)。穩(wěn)定版本的編號(hào)開(kāi)頭為內(nèi)核版本編號(hào),末尾再添加一個(gè)數(shù)字。例如,Linus 發(fā)布了 4.4 內(nèi)核,則基于此內(nèi)核的穩(wěn)定內(nèi)核版本編號(hào)為 4.4.1、4.4.2、4.4.3,依此類推。表示穩(wěn)定內(nèi)核版本樹(shù)時(shí),該序列號(hào)通常簡(jiǎn)寫為 4.4.y。每個(gè)穩(wěn)定內(nèi)核版本樹(shù)由一位內(nèi)核開(kāi)發(fā)者維護(hù),該開(kāi)發(fā)者負(fù)責(zé)為該版本挑選所需的補(bǔ)丁程序以及管理審核/發(fā)布流程。
穩(wěn)定內(nèi)核的維護(hù)期限為當(dāng)前開(kāi)發(fā)周期。Linus 發(fā)布新內(nèi)核后,上一個(gè)穩(wěn)定內(nèi)核版本樹(shù)就會(huì)停止維護(hù),用戶必須轉(zhuǎn)為使用新發(fā)布的內(nèi)核。
長(zhǎng)期穩(wěn)定內(nèi)核
這種新的穩(wěn)定版本流程在采用一年之后,很多不同的 Linux 用戶都表示希望延長(zhǎng)對(duì)內(nèi)核的支持,而不只是幾個(gè)月時(shí)間。因此,長(zhǎng)期支持 (LTS) 內(nèi)核版本應(yīng)運(yùn)而生,第一個(gè) LTS 內(nèi)核 (2.6.16) 在 2006 年發(fā)布。從那時(shí)起,每年都會(huì)選擇一個(gè)新的 LTS 內(nèi)核,并且內(nèi)核社區(qū)會(huì)為該內(nèi)核提供最少 2 年的維護(hù)支持。
在撰寫本文之時(shí),LTS 內(nèi)核版本為 4.4.y、4.9.y 和 4.14.y,并且每周發(fā)布一個(gè)新內(nèi)核。為了滿足某些用戶和發(fā)行方的需求,內(nèi)核開(kāi)發(fā)者會(huì)額外維護(hù)一些較舊的內(nèi)核,但會(huì)延長(zhǎng)發(fā)布周期。如需有關(guān)所有長(zhǎng)期穩(wěn)定內(nèi)核、內(nèi)核負(fù)責(zé)方以及維護(hù)時(shí)長(zhǎng)的信息,請(qǐng)?jiān)L問(wèn) kernel.org 版本頁(yè)面。
LTS 內(nèi)核版本每天平均會(huì)接納 6-8 個(gè)補(bǔ)丁程序,而常規(guī)穩(wěn)定內(nèi)核版本每天則接納 10-15 個(gè)補(bǔ)丁程序。考慮到相應(yīng)開(kāi)發(fā)內(nèi)核版本的當(dāng)前時(shí)間和其他外部不定因素,每個(gè)版本的補(bǔ)丁程序數(shù)量也會(huì)有所不同。LTS 內(nèi)核的版本越舊,對(duì)應(yīng)的補(bǔ)丁程序數(shù)量就越少,這是因?yàn)楹芏嘧钚碌腻e(cuò)誤修復(fù)程序與舊版內(nèi)核無(wú)關(guān)。不過(guò),內(nèi)核版本越舊,向后移植那些需要采納的更改就越難,這是因?yàn)榇a庫(kù)發(fā)生了變化。因此,雖然采納的總體補(bǔ)丁程序數(shù)量比較少,但維護(hù) LTS 內(nèi)核所需的工作量要高于維護(hù)常規(guī)穩(wěn)定內(nèi)核所需的工作量。
穩(wěn)定內(nèi)核補(bǔ)丁程序規(guī)則
對(duì)于哪些內(nèi)容可添加到穩(wěn)定內(nèi)核版本方面,相關(guān)規(guī)則自穩(wěn)定內(nèi)核版本模型推出后幾乎沒(méi)有發(fā)生任何變化,這些規(guī)則可總結(jié)為以下幾點(diǎn):
必須明顯正確無(wú)疑且經(jīng)過(guò)測(cè)試。
不得超過(guò) 100 行。
必須只修復(fù)一個(gè)問(wèn)題。
修復(fù)的必須是已得到報(bào)告的問(wèn)題。
可以是新的設(shè)備 ID 或硬件 quirk,但不可以添加重大新功能。
必須已合并到 Linus Torvalds 代碼樹(shù)中。
最后一條規(guī)則“必須已合并到 Linus Torvalds 樹(shù)中”可防止內(nèi)核社區(qū)遺漏修復(fù)程序。該社區(qū)不希望那些不在 Linus Torvalds 樹(shù)中的修復(fù)程序進(jìn)入穩(wěn)定內(nèi)核版本,以使升級(jí)的任何用戶都絕不會(huì)遇到回歸問(wèn)題。這樣可避免給維護(hù)穩(wěn)定開(kāi)發(fā)分支的其他項(xiàng)目人員帶來(lái)諸多問(wèn)題。
內(nèi)核更新
Linux 內(nèi)核社區(qū)以前曾向其用戶群承諾,任何升級(jí)都不會(huì)破壞當(dāng)前在上一個(gè)版本中運(yùn)行正常的任何功能。這個(gè)承諾如今依然有效。回歸確實(shí)會(huì)發(fā)生,但屬于優(yōu)先級(jí)最高的錯(cuò)誤,要么快速對(duì)其進(jìn)行修復(fù),要么從 Linux 內(nèi)核樹(shù)快速還原那些導(dǎo)致回歸的更改。
這一承諾既適用于穩(wěn)定內(nèi)核的漸增式更新,也適用于每 3 個(gè)月進(jìn)行一次的大規(guī)模重要更新。不過(guò),內(nèi)核社區(qū)只能對(duì)已合并到 Linux 內(nèi)核樹(shù)的代碼做出此承諾。如果在合并到設(shè)備內(nèi)核的任何代碼中,有任何代碼不在 kernel.org 版本中,則均屬于未知代碼,社區(qū)無(wú)法規(guī)劃(甚至考慮)與這些代碼的互動(dòng)。
由于各版本之間發(fā)生了大量更改(每個(gè)版本有 10000-14000 項(xiàng)更改),因此包含大型補(bǔ)丁程序集的基于 Linux 的設(shè)備在更新到新版內(nèi)核時(shí)可能會(huì)遇到嚴(yán)重問(wèn)題。由于 SoC 補(bǔ)丁程序集的體積大、對(duì)架構(gòu)專用內(nèi)核代碼(有時(shí)甚至是核心內(nèi)核代碼)的修改較多,在更新到新版內(nèi)核時(shí)尤其容易出現(xiàn)問(wèn)題。因此,大多數(shù) SoC 供應(yīng)商開(kāi)始使用 LTS 版本對(duì)其設(shè)備進(jìn)行標(biāo)準(zhǔn)化,使這些設(shè)備能夠直接從 Linux 內(nèi)核社區(qū)接收錯(cuò)誤和安全更新。
安全
在發(fā)布內(nèi)核時(shí),Linux 內(nèi)核社區(qū)幾乎從不將具體更改聲明為“安全修復(fù)程序”。這是因?yàn)榇嬖谝粋€(gè)基本問(wèn)題,那就是在開(kāi)發(fā)錯(cuò)誤修復(fù)程序時(shí)難以確定其是否為安全修復(fù)程序。此外,很多錯(cuò)誤修復(fù)程序要經(jīng)過(guò)很長(zhǎng)時(shí)間之后才能確定為與安全相關(guān),因此內(nèi)核社區(qū)強(qiáng)烈建議始終接納已發(fā)布的所有錯(cuò)誤修復(fù)程序。
注意:如需詳細(xì)了解 Linus Torvalds 關(guān)于安全修復(fù)程序的聲明,請(qǐng)參閱相關(guān)電子郵件會(huì)話。
內(nèi)核社區(qū)收到安全問(wèn)題的報(bào)告時(shí),便會(huì)盡快進(jìn)行修復(fù)并將相應(yīng)代碼公開(kāi)推送到開(kāi)發(fā)樹(shù)和穩(wěn)定版本。如上所述,這些更改幾乎從來(lái)都不會(huì)被描述為“安全修復(fù)程序”,而是看起來(lái)與內(nèi)核的其他錯(cuò)誤修復(fù)程序別無(wú)二致。這樣做是為了讓相關(guān)方能夠在問(wèn)題報(bào)告者將相應(yīng)問(wèn)題公諸于世之前更新其系統(tǒng)。
如需詳細(xì)了解如何向內(nèi)核社區(qū)報(bào)告安全錯(cuò)誤以使其盡快得到解決和修復(fù),請(qǐng)參閱《Linux 內(nèi)核用戶和管理員指南》(www.kernel.org) 中的安全錯(cuò)誤部分。
由于內(nèi)核團(tuán)隊(duì)不會(huì)公布安全錯(cuò)誤,因此 Linux 內(nèi)核相關(guān)問(wèn)題的 CVE 編號(hào)通常在修復(fù)程序合并到穩(wěn)定開(kāi)發(fā)分支后的幾周、幾個(gè)月甚或幾年后發(fā)布。
確保系統(tǒng)安全
部署使用 Linux 的設(shè)備時(shí),強(qiáng)烈建議制造商采納所有 LTS 內(nèi)核更新,在適當(dāng)?shù)臏y(cè)試表明更新沒(méi)有什么問(wèn)題后,將其推送給用戶。這樣做有多項(xiàng)優(yōu)勢(shì):
內(nèi)核開(kāi)發(fā)者已整體審核發(fā)布的版本,而不是單獨(dú)審核各個(gè)組件。
很難(即使能夠)確定哪些補(bǔ)丁程序修復(fù)的是“安全”問(wèn)題,哪些修復(fù)的不是安全問(wèn)題。幾乎所有 LTS 版本都至少包含一個(gè)已知的安全修復(fù)程序,以及很多暫時(shí)“未知”的安全修復(fù)程序。
如果測(cè)試表明有問(wèn)題,則內(nèi)核開(kāi)發(fā)者社區(qū)會(huì)迅速采取應(yīng)對(duì)措施以解決問(wèn)題。
如果在更改的代碼中,嘗試僅過(guò)濾出您運(yùn)行的那些代碼,會(huì)導(dǎo)致內(nèi)核樹(shù)無(wú)法與未來(lái)的上游版本正確合并。
總結(jié)
以上是生活随笔為你收集整理的android 4.4 linux 内核版本,稳定内核版本和更新 | Android 开源项目 | Android Open Source Project...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 放假了,回家了
- 下一篇: 深度linux magento,linu