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