午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

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

 飄 陽 2010-07-23

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)核源代碼樹分為許多目錄,它們下面又包含許多子目錄,源代碼樹的頂級目錄及其描述參見下表。

目錄 描述
arch 特定架構(gòu)的源代碼
block 塊I/O層
crypto 加密API
Documentation 內(nèi)核源代碼文檔
drivers 設(shè)備驅(qū)動
firmware 使用某個驅(qū)動需要的設(shè)備固件
fs VFS和獨(dú)立文件系統(tǒng)
include 內(nèi)核頭
init 內(nèi)核啟動和初始化
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開發(fā)的工具
virt 虛擬化基礎(chǔ)設(shè)施

在源代碼樹的根目錄下還有很多文件需要說明,COPYING是內(nèi)核許可描述文件(即GNU GPL v2),CREDITS是參與Linux內(nèi)核的開發(fā)人員名單,MAINTAINERS列出了維護(hù)各個子系統(tǒng)和驅(qū)動的個人,Makefile是內(nèi)核Makefile的基礎(chǔ)。

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多