linux最吸引我的地方之一就是它擁有一個(gè)高手云集的社區(qū), 還有就是如果能=為linux內(nèi)核中貢獻(xiàn)代碼, 一定是一件令人自豪的事情.
下面主要總結(jié)一些和貢獻(xiàn)代碼相關(guān)的主要內(nèi)容.
如果想為linux貢獻(xiàn)代碼, 那么加入linux社區(qū)是必須的, 加入了社區(qū), 不僅可以及時(shí)內(nèi)核的最新消息, 而且可以及時(shí)和社區(qū)內(nèi)有經(jīng)驗(yàn)的內(nèi)核開發(fā)者交流經(jīng)驗(yàn).
同時(shí)也是提交代碼和討論代碼的地方, 了解社區(qū)的規(guī)則, 融入社區(qū)環(huán)境之中, 才能更好的學(xué)習(xí)內(nèi)核, 體會(huì)內(nèi)核開發(fā)的樂(lè)趣和成就感.
內(nèi)核社區(qū)說(shuō)白了就是內(nèi)核郵件列表(LKML linux kernel mail list)
訂閱郵件列表的網(wǎng)址: http://vger.kernel.org/vger-lists.html 這里面有l(wèi)inux相關(guān)的各種郵件列表
關(guān)于內(nèi)核的郵件列表是: http://vger.kernel.org/vger-lists.html#linux-kernel
除了郵件列表之外, 還有2個(gè)本書作者推薦的網(wǎng)站也適合linux內(nèi)核新手去關(guān)注:
社區(qū)給我們提供了學(xué)習(xí)和貢獻(xiàn)內(nèi)核的地方, 但是為了避免不必要的麻煩(被別人指責(zé)或者無(wú)人理睬), 首先得好好了解一些內(nèi)核代碼的編碼風(fēng)格.
linux的編碼風(fēng)格都記錄在 Documentation/CodingStyle 內(nèi)核開發(fā)前要好好研讀以下, 之后有時(shí)間我會(huì)整理到博客中.
3. 提交補(bǔ)丁準(zhǔn)備工作都完成之后, 就可以開始內(nèi)核開發(fā)之旅了 :)
只要堅(jiān)持不斷的學(xué)習(xí)和嘗試, 總有一天會(huì)為了內(nèi)核貢獻(xiàn)自己的代碼, 這時(shí)候, 就需要了解如何提交代碼, 也就是內(nèi)核補(bǔ)丁.
如果是發(fā)現(xiàn)了BUG或者有改善, 可以將BUG的描述或者改善代碼發(fā)送給對(duì)應(yīng)的維護(hù)者.(內(nèi)核各個(gè)子系統(tǒng)的維護(hù)者信息在內(nèi)核代碼根目錄下的 MAINTAINERS 文件中)
生成BUG或者改善代碼的補(bǔ)丁有2種方法:
1. 用diff命令創(chuàng)建補(bǔ)丁
# 生成patchdiff -urN linux-old/ linux-new/ > my-patch # 比對(duì)整個(gè)內(nèi)核代碼文件夾ORdiff -u linux-old/some/file linux-new/some/file > my-patch # 比對(duì)某個(gè)文件# 應(yīng)用patch, 應(yīng)用了patch之后, linux-old 和 linux-new 中的代碼就一樣了cd linux-oldpatch -p1 < ../my-patch # 這個(gè)命令是進(jìn)入linux內(nèi)核代碼根目錄內(nèi)執(zhí)行的# PS. 還有個(gè)很有用的工具 diffstatdiffstat -p1 my-patch # 列出補(bǔ)丁所引起的變更的統(tǒng)計(jì)(加入或移去的代碼行)
2. 用git命令創(chuàng)建補(bǔ)丁
# 提交修改的或新增的代碼git commit -a # 提交所有修改的代碼ORgit commit linux-src/some/file.c # 提交某個(gè)修改的代碼ORgit add linux-src/some/new-file.c # 把新增的文件加入版本庫(kù)git commit -a # 提交新增的文件# 生成patchgit format-patch -N # N 是正整數(shù), 這條命令生成最后N次提交產(chǎn)生的補(bǔ)丁ORgit format-patch -1 # 最后1次提交產(chǎn)生的補(bǔ)丁# 應(yīng)用patch: 和第一種方法一樣4. 總結(jié)
本章的內(nèi)容都是和提交內(nèi)核patch有關(guān), 我還是內(nèi)核的入門者, 沒(méi)有社區(qū)的經(jīng)驗(yàn), 更別說(shuō)提交內(nèi)核patch的經(jīng)驗(yàn)了.
這篇筆記只是簡(jiǎn)單記錄一些對(duì)入門者有用的信息, 便于以后查看.
新聞熱點(diǎn)
疑難解答
圖片精選