Kernel Newbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login
  • FAQ

  • Upstream Merge Guide

  • Kernel Janitors

  • Kernel Mentors

Wiki bits

  • Site Editors

  • Navigation Menu

  • WikiWall

  • Hosted

Navigation

  • RecentChanges
  • FindPage
  • HelpContents
Revision 5 as of 2010-05-28 12:31:06
KernelNewbiesTW:
  • UpstreamMerge

Kernelnewbies網站的這個部份本意是如何讓程式碼併入上層核心的手冊, 由Linus Torvalds維護和可以從kernel.org取得的的核心樹.

合併至上游程式碼有什麼好處?

合併你的原始碼至上游要花費精力,貢獻和時間. 過程並不容易, 因為Linus接受程式碼進入他的版本時, 他冒著這一輩子得維護該程式碼的風險. 如果品質差的程式碼被接受, 維護Linux核心會變得非常睏難. 這些理由還有更多意指讓程式碼收入Linux核心門坎相對的提高.

然而, 讓你的程式碼收入核心也有許多的好處.

可維護性

追上上游核心變更是艱巨任務, 每次上游核心一變更要花費開發者數天或是好幾個禮拜的時間. 存在上游的程式碼沒有這樣的議題存在, 因為核心開發人員頃向簡化查找原始碼和修補受到預定發佈API變更影響的驅動程式. 這樣一來讓空出你的開發人員作更重要的工作.

普遍存在

你的原始碼將被出現在每一個Linux發行版本裡. 這關係著如果你想販賣你的硬體給每個Linux使用者. 不再需要遊說讓你的修補程式成為發行版本的一部份(困難), 你可以只要求他們切換設定選項(容易).

品質控制

世界上某些最好的開發者將隨著你的原始碼作良好整理, 這可能會有幾天或數個禮拜的尷尬時期, 但是最後程式碼往往運作更好且更容易維護. 在某些案例上遊開發者讓網路和儲存驅動程式增加30%速度, 使得應體更吸引顧客.

How to merge code upstream

Merging code into the upstream kernel can be a daunting process to the uninitiated. However, with the right strategy in mind, you won't get lost on your way to upstream acceptance.

    • /MergingStrategy strategies for merging code upstream.

    • /WhatNotToDo what you should never do if you want to merge upstream.

    • /GettingFlamed Oh no! The kernel developers said bad things about me, my code and my cat! What do I do now?

Helpful documents from the kernel tree:

    • /SubmittingDrivers how to submit device drivers to the linux kernel.

    • /SubmittingPatches how to submit patches to the linux kernel.

    • /SubmitChecklist a checklist for submitting code upstream.

Other documents on getting patches upstream:

    • The Perfect Patch
    • http://linux.yyz.us/patch-format.html

    • The Linux Driver Project
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01