Linux內(nèi)核入門(mén)如何獲取Linux內(nèi)核源代碼 下載Linux內(nèi)核當(dāng)然要去官方網(wǎng)站了,網(wǎng)站提供了兩種文件下載,一種是完整的Linux內(nèi)核,另一種是內(nèi)核增量補(bǔ)丁,它們都是tar歸檔壓縮包。除非你有特別的原因需要使用舊版本的Linux內(nèi)核,否則你應(yīng)該總是升級(jí)到最新版本。 使用Git 由Linus領(lǐng)頭的內(nèi)核開(kāi)發(fā)隊(duì)伍從幾年前就開(kāi)始使用Git版本控制系統(tǒng)管理Linux內(nèi)核了(參考閱讀:什么是Git?),而Git項(xiàng)目本身也是由Linus創(chuàng)建的,它和傳統(tǒng)的CVS不一樣,Git是分布式的,因此它的用法和工作流程很多開(kāi)發(fā)人員可能會(huì)感到很陌生,但我強(qiáng)烈建議使用Git下載和管理Linux內(nèi)核源代碼。 你可以使用下面的Git命令獲取Linus內(nèi)核代碼樹(shù)的最新“推送”版本: $ git clone git://git./pub/scm/linux/kernel/git/torvalds/linux-2.6.git 然后使用下面的命令將你的代碼樹(shù)與Linus的代碼樹(shù)最新?tīng)顟B(tài)同步: $ git pull 安裝內(nèi)核源代碼 內(nèi)核包有GNU zip(gzip)和bzip2格式。Bzip2是默認(rèn)和首選格式,因?yàn)樗膲嚎s比通常比gzip更好,bzip2格式的Linux內(nèi)核包一般采用linux-x.y.z.tar.bz2形式的文件名,這里的x.y.z是內(nèi)核源代碼的具體版本號(hào),下載到源代碼包后,解壓和抽取就很簡(jiǎn)單了,如果你下載的是bzip2包,運(yùn)行: $ tar xvjf linux-x.y.z.tar.bz2 如果你下載的是gzip包,則運(yùn)行: $ tar xvzf linux-x.y.z.tar.gz 無(wú)論執(zhí)行上面哪一個(gè)命令,最后都會(huì)將源代碼解壓和抽取到linux-x.y.z目錄下,如果你使用Git下載和管理內(nèi)核源代碼,你不需要下載tar包,只需要運(yùn)行g(shù)it clone命令,它就會(huì)自動(dòng)下載和解壓。 內(nèi)核源代碼通常都會(huì)安裝到/usr/src/linux下,但在開(kāi)發(fā)的時(shí)候最好不要使用這個(gè)源代碼樹(shù),因?yàn)獒槍?duì)你的C庫(kù)編譯的內(nèi)核版本通常也鏈接到這里的。 應(yīng)用補(bǔ)丁 Linux內(nèi)核開(kāi)發(fā)人員會(huì)將自己的修改做成補(bǔ)丁與其它人員分享,而且補(bǔ)丁是增量的,增量補(bǔ)丁是從一個(gè)內(nèi)核樹(shù)移動(dòng)到另一個(gè)內(nèi)核樹(shù)的有效方法,不用下載完整的內(nèi)核包就可以升級(jí)內(nèi)核,不僅可節(jié)省帶寬,也節(jié)省了內(nèi)核升級(jí)時(shí)間,應(yīng)用補(bǔ)丁之前先進(jìn)入內(nèi)核源代碼樹(shù)所在目錄,然后運(yùn)行: $ patch –p1 < ../patch-x.y.z 注意,補(bǔ)丁包也有明確的版本號(hào),這里的版本號(hào)與Linux內(nèi)核源代碼的版本號(hào)要一致,內(nèi)核和補(bǔ)丁版本號(hào)不一致時(shí),強(qiáng)制應(yīng)用補(bǔ)丁會(huì)引起意想不到的后果。 內(nèi)核源代碼樹(shù)介紹 內(nèi)核源代碼樹(shù)分為許多目錄,它們下面又包含許多子目錄,源代碼樹(shù)的頂級(jí)目錄及其描述參見(jiàn)下表。
在源代碼樹(shù)的根目錄下還有很多文件需要說(shuō)明,COPYING是內(nèi)核許可描述文件(即GNU GPL v2),CREDITS是參與Linux內(nèi)核的開(kāi)發(fā)人員名單,MAINTAINERS列出了維護(hù)各個(gè)子系統(tǒng)和驅(qū)動(dòng)的個(gè)人,Makefile是內(nèi)核Makefile的基礎(chǔ)。 |
|
來(lái)自: 飄 陽(yáng) > 《我的圖書(shū)館》