首先是如果你有一个idea,你可以先在社区里与大家讨论,进入RFC(request for commit)阶段,如果直接就去实现自己的idea,可能提交到社区大家并不接受,或着与社区的要求不一样,或者别人也在做这个,自己做重复了,都是应该避免的,所以先在社区里与大家讨论你的idea是必要的。OK!如果大家通过讨论同意了你的idea,你就可以去hack了,当然了,大家会对idea提出一些意见和建议,你要相应的进行采纳。然后把代码贴出来在社区里,此时大家会对你的code进行讨论,一些人会提出批评意见,记住千万不要去攻击对你提出批评意见的人,应该虚心接受,you can say “thanks”,并相应的进行采纳。
哪里出现问题,就去fix bug,然后再提交上来,大家再讨论,对于green hand来说,提交一个patch的过程还是比较困难的,对于一个在社区里比较有声望的人,大家更相信他,patch更容易被采纳。经过反复的讨论,修改,如果你的patch被采纳了,你可以提交给相应的maintainer,记住是subsystem maintainer,而不是linus,linus大人才没时间鸟你呢,其实每个maintainer也很忙的。如过他看在社区里大家通过了,他自己在看看,你的patch就被采纳了。linus有时也会看看社区里的patch,所以一些人也收到了patch回复的邮件,记住不是把patch发给linus,而是他看到了你在社区中的patch,他才没那个时间鸟你呢。Andrew Morton是mm tree的维护者,这个tree包括了一些mm相关的还有其他不属于任何subsystem tree的,都被发到这里来,在一个就是其他的subsytem tree maintainer了。