2012-04-04 159 views
1

我對Linux內核版本號有些困惑。我注意到許多Linux發行版都沒有使用最新的內核,實際上我已經看到了一些使用2.4版本的內核。是否有一個原因?除了年齡之外,是否有2.4,2.6,3.2之間的差異?使用舊內核有什麼安全隱患?Linux內核版本號?

回答

3

不同的內核具有不同的功能和改進,發行版的開發人員會查看他們將支持的功能,然後根據該內核的最穩定支持來決定使用哪個內核。

這是分銷開發商決定使用哪一個,他們會選擇他們感到滿意的。

這是軟件開發的一個特點,就像詢問Java 1.1和Java 1.7是什麼以及與年齡不同有什麼區別......答案很多。

大多數內核和軟件也會有一個安全補丁計劃,並且如果您不知道安全問題,他們永遠不會修復,而是由用戶來維護系統的補丁並保持最新。

0

隨着內核的改進/改變,它們可能會打破早期版本的期望。如果一個發行版變得不穩定,因爲在新版本的內核下有太多的軟件發生故障,開發者可能會選擇使用較早的版本,直到軟件能夠處理新內核中的更改爲止。

3

在主要版本(例如2.4和2.6)之間,引入了新功能並且舊功能已過時,最終導致內核二進制文件不兼容。

如果您依賴某些不屬於主線內核的內核模塊,這一點很重要(例如,它是專有的,原作者不提供更新的模塊;或者它是開源的(但從未將其納入內核),沒有人願意花時間遷移代碼)

也是一個新的主版本可能會顯着改變系統行爲。我記得當從2.4切換到2.6時,許多需要低延遲音頻(這是我的背景,原諒我)的人會留在舊內核中,因爲新調度算法在某些情況下表現更差。

+0

+1提到二進制不兼容 – Hamzahfrq 2014-10-19 17:02:51

1

有一個human-readable changelog for the Linux Kernel

有些人採取「如果有效 - 不要改變它」的態度。所以,運行一個較舊的內核會產生安全隱患 - 但也存在升級可能會導致某些問題的風險。

0

通常情況下,二進制映像在版本號的第一部分或第二部分更改的內核之間可能不可移植。所以爲了從2.4升級到2.6,很大一部分庫和可執行文件也需要升級/重新編譯。如果您使用封閉的源應用程序/驅動程序,這可能是一個特殊問題。

大多數Linux發行商將根據對附加功能的安全影響/需求來支持新版內核版本的端口修補程序。如果您無法定期升級整個系統,那麼您需要找到一個明確支持長支持週期並具有良好的後端移植歷史記錄(例如RHEL,SuSE)的發行版。

1

我希望下面的頁面將幫助我們理解Linux版本編號系統: http://www.linfo.org/kernel_version_numbering.html

的搭扣,從http://www.tldp.org/FAQ/Linux-FAQ/kernel.html#linux-versioning

的Linux版本號遵循一個長期傳統。每個版本都有三個數字,即X.Y.Z.只有在發生真正重大的變化時,「X」纔會增加,這使得爲一個版本編寫的軟件不再能夠正確運行。這種情況很少發生 - 在Linux的歷史中,它只發生過一次。

的「Y」告訴你哪個發展「系列的」你是在一種穩定的內核將永遠在這個位置上的偶數,而開發的內核永遠有一個奇數。

的「Z」指定哪個你有內核的確切版本,它遞增每個發佈。