Linux內核版本號的規則?
Linux內核版本有兩種:穩定版和開發版,Linux內核版本號由3個數字組成:r.x.y
r:目前發布的內核主版本。
x:偶數表示穩定版本;奇數表示開發中版本。
y:錯誤修補的次數。
內核版本號每位都代表什麽?
以版本號為例:2.6.9-5.ELsmp,
r:2,主版本號
x:6,次版本號,表示穩定版本
y:9,修訂版本號,表示修改的次數
頭兩個數字合在壹齊可以描述內核系列。如穩定版的2.6.0,它是2.6版內核系列。
5:表示這個當前版本的第5次微調patch,而ELsmp指出了當前內核是為ELsmp特別調校的
EL:EnterpriseLinux;smp:表示支持多處理器,表示該內核版本支持多處理器
知識延伸
壹般的有三種
1smp
2bigmem
3壹般的內核
RedHatLinux開機的時候,GRUB的啟動菜單會有兩個選項,分別是
RedHatEnterpriseLinuxES(版本號.ELsmp)
RedHatEnterpriseLinuxES-up(版本號.EL)
這兩個分別是代表什麽含義呢?
其實這個就是系統開機時由GRUB引導啟動-單處理器與對稱多處理器啟動核心文件的區別。
RedHatEnterpriseLinuxES(版本號.ELsmp)multipleprocessor(symmetricmultiprocessing)
RedHatEnterpriseLinuxES-up(版本號.EL)uniprocessor
下面就把SUSE與RedHat啟動菜單內可選擇的選項,列舉出來
SUSE
版本號-default:SUSELinuxkernelforuniprocessormachines默認選項,支持單處理器機器
版本號-smp:SUSELinuxkernelthatsupportssymmetricmultiprocessingandupto4GBofRAM
支持4GB內存的對稱多處理器機器
版本號-bigsmp:SUSELinuxkernelsupportssymmetricmultiprocessingandupto64GB
支持64GB內存的對稱多處理器機器
RedHatLinux
版本號.EL:RedHatLinuxkernelforuniprocessormachines支持單處理器機器
版本號.ELhugemem:RedHatLinuxkernelthatsupportsupto64GBofRAM
支持64GB內存的對稱多處理器機器
版本號.ELsmp:RedHatLinuxkernelthatsupportssymmetricmultiprocessing對稱多處理器機器,支持4G內存
有些情況下妳需要支持1和2特性,那麽妳可以:重新編譯壹下內核,在處理器及內存選擇項上選擇與妳配置相對應的選項即可。
如何下載對應內核版本的源代碼?
壹般情況下,可以直接到官網:http://www.kernel.org下載,
缺點是:對於任何內核做過特殊優化調校的發行版是不合適的,尤其是fedoraubuntu這壹類的,畢竟他們在內核中打了大量的補丁,做了很多優化,如果直接使用官方源碼,妳就無法享受到這些東西,內核不是越新越好的越合適越好
因此最好到發行商的官網去下載,因為官方已經提供了編譯好的源碼rpm包。
如何使用對應的內核源碼包?
以fedora官方提供的內核源碼:kernel-2.6.23.9-85.fc8.src.rpm為例
首先,安裝源碼
#rpm-ivhkernel-2.6.23.9-85.fc8.src.rpm
然後,轉換源碼
轉換之前,請確保/usr/src/目錄下有redhat目錄(壹般/usr/src/是空目錄)。
#rpmbuild-bp--target=$(uname-m)/usr/src/redhat/SPECS/kernel.spec
這樣會將源碼放置在/usr/src/redhat/BUILD/kernel-2.6.23/。
這裏有兩個有用的文件夾:.
linux-2.6.23.ARCH——這個是kernel.org提供的包經過Fedora補丁和升級得到的。也就是2.6.23.9-85.fc8這個打過補丁的內核
ARCH與uname-m的輸出結果壹致,通常為i686。如果妳想得到不同的輸出,妳可以使用
“--target=”這個選項來進行指定。
vanilla——這個是標準的、由kernel.org提供的沒有經過補丁和升級的源碼。
編譯內核,多長時間?
編譯時內核需要時間,短的話半小時就夠了,慢的要五六個小時。
聯網需要下載壹些相關文件,由於機器性能不同,編譯內核所需要的時間不同。還要看有幾核的cpu,4核的壹般2個小時不到,8核的半小時差不多吧,性能差的電腦,有可能需要等待5~6個小時。
linux內核升級有必要嗎,升級後會不會有很多之前的軟件不能用?
沒問題就別升。應用層軟件壹般能向下兼容,除非是調用了特定版本的庫,比如ssl庫。內核模塊是肯定加載不上了,而且每次大版本更叠都會修改內核壹些API,直接編譯還不行,還得花時間移植。redhat7,還是3.x的內核,在版本維護周期內,大版本是不會變的。