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