1 .. SPDX-License-Identifier: GPL-2.0 2 3 .. include:: ../disclaimer-zh_TW.rst 4 5 :Original: :ref:`Documentation/process/1.Intro 6 7 :Translator: 8 9 時奎亮 Alex Shi <alex.shi@linux.alibaba.com 10 11 :校譯: 12 13 吳想成 Wu XiangCheng <bobwxc@email.cn> 14 胡皓文 Hu Haowen <2023002089@link.tyut.edu. 15 16 .. _tw_development_process_intro: 17 18 引言 19 ==== 20 21 內容提要 22 -------- 23 24 本節的其餘部分涵蓋了內核開發的 25 各種問題。有很多原因使內核代碼 26 的自動可用性、多種形式的社區支 27 的代碼必須在與GPL兼容的許可證下 28 29 :ref:`tw_development_process` 介紹了開發 30 涵蓋了補丁開發、審查和合並週期 31 鼓勵希望開始內核開發的開發人員 32 33 34 :ref:`tw_development_early_stage` 包括項目 35 參與進來。 36 37 :ref:`tw_development_coding` 是關於編程 38 陷阱。也涵蓋了對補丁的一些要求 39 補丁是正確的。 40 41 :ref:`tw_development_posting` 描述發佈補 42 認真對待,補丁必須被正確格式化 43 建議有助於確保您的工作能被較好 44 45 :ref:`tw_development_followthrough` 介紹了 46 還遠遠沒有完成。與審閱者一起工 47 關於如何在這個重要階段避免問題 48 不要假定任務已經完成。 49 50 :ref:`tw_development_advancedtopics` 介紹了 51 和查看其他人發佈的補丁。 52 53 :ref:`tw_development_conclusion` 總結了有 54 鏈接。 55 56 這個文檔是關於什麼的 57 -------------------- 58 59 Linux內核有超過800萬行代碼,每個 60 免費軟件項目之一。從1991年開始, 61 運行在袖珍數字音樂播放器、臺式 62 它是一種適用於幾乎任何情況的健 63 64 隨着Linux的發展,希望參與其開發 65 希望確保Linux能夠很好地支持他們 66 式系統供應商使用Linux作爲集成產 67 分銷商和其他基於Linux的軟件供應 68 用戶也常常希望修改Linux,使之能 69 70 Linux最引人注目的特性之一是這些 71 改進Linux並影響其開發方向。專有 72 如果有什麼不同的話,那就是內核 73 月內核開發週期可以涉及1000多個開 74 隸屬公司)工作。 75 76 與內核開發社區合作並不是特別困 77 內核工作時遇到了困難。內核社區 78 都要更改數千行代碼的環境中順利 79 過程與專有的開發模式有很大的不 80 81 對於新開發人員來說,內核的開發 82 理由和堅實的經驗。一個不瞭解內 83 試圖拋棄或規避之)會得到令人沮 84 沒有時間幫助那些不願意傾聽或不 85 86 希望閱讀本文的人能夠避免這種令 87 努力會在短時間內得到回報。開發 88 文字應該幫助您或爲您工作的人員 89 90 致謝 91 ---- 92 93 本文檔由Jonathan Corbet <corbet@lwn.net> 94 Johannes Berg, James Berry, Alex Chiang, Rolan 95 Jake Edge, Jiri Kosina, Matt Mackall, Arthur M 96 Andrew Morton, Andrew Price, Tsugikazu Shibata 97 98 這項工作得到了Linux基金會的支持 99 的價值並將其變成現實。 100 101 代碼進入主線的重要性 102 -------------------- 103 104 有些公司和開發人員偶爾會想,爲 105 放入主線內核(“主線”是由Linus T 106 在短期內,貢獻代碼看起來像是一 107 似乎更容易。事實上,保持代碼獨 108 109 爲了說明樹外代碼成本,下面給出 110 討論其中的大部分內容。請考慮: 111 112 - 所有Linux用戶都可以使用合併到主 113 發行版上。無需驅動程序磁盤、 114 支持;這一切將方便所有開發人 115 116 - 當內核開發人員努力維護一個穩 117 不維持穩定的內部接口是一個慎 118 併產出更高質量的代碼。但該策 119 需要持續的維護。維護樹外代碼 120 121 相反,位於主線中的代碼不需要 122 人員也必須修復由於該更改而破 123 了維護成本。 124 125 - 除此之外,內核中的代碼通常會 126 產品的改進可能會令人驚喜。 127 128 - 內核代碼在合併到主線之前和之 129 這個審查過程總是能找到改進代 130 對於在封閉環境中開發的代碼尤 131 樹外代碼是低質量代碼。 132 133 - 參與開發過程是您影響內核開發 134 開發人員有更強的聲音——並且 135 136 - 當單獨維護代碼時,總是存在第 137 這種情況,合併代碼將變得更加 138 不快的選擇:(1)無限期地維護 139 到樹內版本。 140 141 - 代碼的貢獻是使整個流程工作的 142 提供其他內核開發人員使用的功 143 考慮這樣做),那麼您顯然對這 144 最好方法之一。 145 146 上述所有理由都適用於任何樹外內 147 然而,在考慮任何類型的純二進制 148 149 - 圍繞專有內核模塊分發的法律問 150 大多數僅二進制的模塊是內核的 151 許可證(下面將詳細介紹)。本 152 視爲法律建議。封閉源代碼模塊 153 這些模塊的不確定性仍然存在。 154 155 - 二進制模塊大大增加了調試內核 156 嘗試。因此,只分發二進制模塊 157 158 - 對於僅二進制的模塊的發行者來 159 每個發行版和每個內核版本提供 160 可能需要一個模塊的幾十個構建 161 這些模塊。 162 163 - 上面提到的關於代碼評審的所有 164 不可得,因此社區無法對其進行 165 166 尤其是嵌入式系統的製造商,可能 167 相信自己正在商用一種使用凍結內 168 這個論點忽略了廣泛的代碼審查的 169 產品的商業壽命有限,之後必須發 170 良好維護的供應商將能夠更好地佔 171 172 許可 173 ---- 174 175 代碼是根據一些許可證提供給Linux 176 證(GPLV2)的版本2兼容,該版本是 177 着所有代碼貢獻都由GPLv2(可選地 178 許可(New BSD License,譯者注)覆蓋 179 被接受到內核中。 180 181 貢獻給內核的代碼不需要(或請求 182 其原始所有權;因此,內核現在擁 183 184 這種所有權結構也暗示着,任何改 185 可以獲得所有版權所有者的同意( 186 可預見的將來,許可證不大可能遷 187 188 所有貢獻給內核的代碼都必須是合 189 者的代碼。所有貢獻者都需要在他 190 在GPL下與內核一起分發。無法提供 191 內核造成版權相關問題的代碼(例 192 不能被接受。 193 194 有關版權問題的提問在Linux開發郵 195 但請記住,回答這些問題的人不是 196 的法律問題,沒有什麼可以代替諮 197 的答案是一件冒險的事情。 198 199
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.