成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何提交你的第一個Linux內核補丁

系統 Linux
Linux 內核是最大且變動最快的開源項目之一,它由大約 53,600 個文件和近 2,000 萬行代碼組成。在全世界范圍內超過 15,600 位程序員為它貢獻代碼,Linux 內核項目的維護者使用了如下的協作模型。

 [[246052]]

學習如何做出你的*** Linux 內核貢獻,以及在開始之前你應該知道什么。

Linux 內核是***且變動最快的開源項目之一,它由大約 53,600 個文件和近 2,000 萬行代碼組成。在全世界范圍內超過 15,600 位程序員為它貢獻代碼,Linux 內核項目的維護者使用了如下的協作模型。

本文中,為了便于在 Linux 內核中提交你的***個貢獻,我將為你提供一個必需的快速檢查列表,以告訴你在提交補丁時,應該去查看和了解的內容。對于你貢獻的***個補丁的提交流程方面的更多內容,請閱讀 KernelNewbies 的***個內核補丁教程

為內核作貢獻

第 1 步:準備你的系統。

本文開始之前,假設你的系統已經具備了如下的工具:

  • 文本編輯器
  • Email 客戶端
  • 版本控制系統(例如:git)

第 2 步:下載 Linux 內核代碼倉庫。

  1. git clone -b staging-testing
  2. git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git

復制你的當前配置:

  1. cp /boot/config-`uname -r`* .config

第 3 步:構建/安裝你的內核。

  1. make -jX
  2. sudo make modules_install install

第 4 步:創建一個分支并切換到該分支。

  1. git checkout -b first-patch

第 5 步:更新你的內核并指向到***的代碼。

  1. git fetch origin
  2. git rebase origin/staging-testing

第 6 步:在***的代碼庫上產生一個變更。

使用 make 命令重新編譯,確保你的變更沒有錯誤。

第 7 步:提交你的變更并創建一個補丁。

  1. git add <file>
  2. git commit -s -v
  3. git format-patch -o /tmp/ HEAD^

主題是由冒號分隔的文件名組成,跟著是使用祈使語態來描述補丁做了什么。空行之后是強制的 signed off 標記,***是你的補丁的 diff 信息。

下面是另外一個簡單補丁的示例:

接下來,從命令行使用郵件(在本例子中使用的是 Mutt)發送這個補丁:

  1. mutt -H /tmp/0001-<whatever your filename is>

使用 get_maintainer.pl 腳本,去了解你的補丁應該發送給哪位維護者的列表。

提交你的***個補丁之前,你應該知道的事情

  • Greg Kroah-Hartmanstaging tree 是提交你的 ***個補丁 的***的地方,因為他更容易接受新貢獻者的補丁。在你熟悉了補丁發送流程以后,你就可以去發送復雜度更高的子系統專用的補丁。
  • 你也可以從糾正代碼中的編碼風格開始。想學習更多關于這方面的內容,請閱讀 Linux 內核編碼風格文檔
  • checkpatch.pl 腳本可以幫你檢測編碼風格方面的錯誤。例如,運行如下的命令:perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • 你可以去補全開發者留下的 TODO 注釋中未完成的內容:find drivers/staging -name TODO
  • Coccinelle 是一個模式匹配的有用工具。
  • 閱讀 歸檔的內核郵件
  • 為找到靈感,你可以去遍歷 linux.git 日志去查看以前的作者的提交內容。
  • 注意:不要與你的補丁的審核者在郵件頂部交流!下面就是一個這樣的例子:

    錯誤的方式:

    1. Chris,
    2. Yes lets schedule the meeting tomorrow, on the second floor.
    3.  
    4. > On Fri, Apr 26, 2013 at 9:25 AM, Chris wrote:
    5. > Hey John, I had some questions:
    6. > 1. Do you want to schedule the meeting tomorrow?
    7. > 2. On which floor in the office?
    8. > 3. What time is suitable to you?

    (注意那***一個問題,在回復中無意中落下了。)

    正確的方式:

    1. Chris,
    2. See my answers below...
    3.  
    4. > On Fri, Apr 26, 2013 at 9:25 AM, Chris wrote:
    5. > Hey John, I had some questions:
    6. > 1. Do you want to schedule the meeting tomorrow?
    7. Yes tomorrow is fine.
    8. > 2. On which floor in the office?
    9. Let's keep it on the second floor.
    10. > 3. What time is suitable to you?
    11. 09:00 am would be alright.

    (所有問題全部回復,并且這種方式還保存了閱讀的時間。)

  • Eudyptula challenge 是學習內核基礎知識的非常好的方式。

想學習更多內容,閱讀 KernelNewbies 的***個內核補丁教程。之后如果你還有任何問題,可以在 kernelnewbies 郵件列表 或者 #kernelnewbies IRC channel 中提問。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2014-07-24 14:35:26

Linux內核模塊

2009-10-23 09:21:08

2023-09-28 13:21:32

2020-11-10 07:11:23

Linux內核補丁

2022-10-17 10:28:05

Web 組件代碼

2013-01-14 09:44:58

JavaScriptJSJS框架

2018-01-31 15:45:07

前端Vue.js組件

2011-08-29 15:12:24

UbuntuLinux模塊

2010-02-26 15:38:29

Linux內核版本

2022-11-15 08:49:15

2017-11-16 14:31:21

LinuxLinux LiteLinux 4.14

2013-12-19 09:46:04

垃圾收集器

2020-09-21 08:01:35

Git操作系統Linux

2019-12-31 08:00:00

DebianLinuxApple Swift

2016-08-24 15:12:41

LXDLinux容器

2016-08-05 12:58:44

GitLinux開源

2023-06-01 08:24:08

OpenAIChatGPTPython

2020-07-07 07:55:53

web app數據科學機器學習

2021-03-24 08:00:44

項目Vue 3Typescript

2010-07-30 14:50:38

Flex項目
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品一区亚洲午夜久久久 | 中文成人无字幕乱码精品 | 国内精品久久久久久久 | 欧美日韩三级 | 久久高清国产视频 | 91欧美精品成人综合在线观看 | 青春草国产 | 毛片一级片 | 一级特黄色毛片 | 精品国产乱码久久久久久88av | 精品自拍视频在线观看 | 国产日韩一区二区三免费高清 | 亚洲欧美日韩网站 | 午夜电影福利 | 亚洲欧美综合精品另类天天更新 | 有码在线| 国产精品视频播放 | 欧美性jizz18性欧美 | 做a视频在线观看 | 91在线视频观看免费 | 青青草av在线播放 | 最新午夜综合福利视频 | 国产亚洲精品久久久久久豆腐 | 四季久久免费一区二区三区四区 | 精品在线一区二区 | 国产精品不卡视频 | 中文字幕一区二区三区四区五区 | 国产精品高潮呻吟久久av野狼 | 成人激情视频在线观看 | 欧美日韩国产一区二区三区 | 欧美在线国产精品 | 日韩电影一区 | 欧一区二区 | 久久久视频在线 | 在线播放第一页 | 日韩免费成人av | 日本黄色大片免费 | 91精品国产综合久久久亚洲 | 特黄特色大片免费视频观看 | 亚洲精品国产偷自在线观看 | 久久高清亚洲 |