日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Linux內(nèi)核入門(mén)(1)

 飄 陽(yáng) 2010-07-23

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)下表。

目錄 描述
arch 特定架構(gòu)的源代碼
block 塊I/O層
crypto 加密API
Documentation 內(nèi)核源代碼文檔
drivers 設(shè)備驅(qū)動(dòng)
firmware 使用某個(gè)驅(qū)動(dòng)需要的設(shè)備固件
fs VFS和獨(dú)立文件系統(tǒng)
include 內(nèi)核頭
init 內(nèi)核啟動(dòng)和初始化
ipc 進(jìn)程間通信
kernel 核心子系統(tǒng),如調(diào)度器
lib 助手例行程序
mm 內(nèi)存管理子系統(tǒng)和VM
net 網(wǎng)絡(luò)子系統(tǒng)
samples 示例,示范代碼
scripts 用于生成內(nèi)核的腳本
security Linux安全模塊
sound 聲音子系統(tǒng)
usr 早期的用戶空間代碼(叫做initramfs)
tools 輔助Linux開(kāi)發(fā)的工具
virt 虛擬化基礎(chǔ)設(shè)施

在源代碼樹(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ǔ)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多