国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

《Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》讀書筆記(二十)- 補(bǔ)丁, 開發(fā)和社區(qū)

2024-06-28 13:28:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
《linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》讀書筆記(二十)- 補(bǔ)丁, 開發(fā)和社區(qū)

linux最吸引我的地方之一就是它擁有一個(gè)高手云集的社區(qū), 還有就是如果能=為linux內(nèi)核中貢獻(xiàn)代碼, 一定是一件令人自豪的事情.

下面主要總結(jié)一些和貢獻(xiàn)代碼相關(guān)的主要內(nèi)容.

  • 加入社區(qū)
  • 編碼風(fēng)格
  • 提交補(bǔ)丁
  • 總結(jié)

1. 加入社區(qū)

如果想為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)注:

  1. http://kernelnewbies.org 有很多適合內(nèi)核開發(fā)入門的資源
  2. http://lwn.net linux 新聞周刊

2. 編碼風(fēng)格

社區(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ì)入門者有用的信息, 便于以后查看.


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云南省| 清苑县| 上蔡县| 武夷山市| 清流县| 九龙坡区| 朔州市| 长泰县| 平果县| 阳新县| 金华市| 襄汾县| 毕节市| 伊春市| 班戈县| 涟水县| 新巴尔虎左旗| 台中县| 繁昌县| 扶绥县| 泰兴市| 东阳市| 五原县| 友谊县| 金溪县| 永春县| 石家庄市| 新余市| 汝城县| 盐城市| 甘肃省| 富阳市| 松阳县| 石河子市| 湘潭市| 泸西县| 娄烦县| 策勒县| 青龙| 虞城县| 肃宁县|