内核优点抽象隐藏内核提供一种硬件抽象的方法来完成对硬件操作,因为这些操作是非常复杂的,硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单
源代码管理历史上,从来没有出现过用于Linux内核的正式的源代码管理或修正控制系统
实际上,很多开发者实现了他们自己的修正控制器,但是并没有官方的LinuxCVS档案库,让LinusTorvalds检查加入代码,并让其他人可以由此获得代码

修正控制器的缺乏,常常会使发行版本之间存在“代沟”,没有人真正知道加入了哪些改变,这些改变是否能很好地融合,或者在即将发行的版本中哪些新内容是值得期待的
通常,如果更多的开发者可以像了解他们自己所做的改变一样了解到那些变化,某些问题就可以得到避免
非常有必要使用一个实时的、集中的档案库来保存对Linux内核的最新更新
每一个被内核接受的改变或者补丁都被作为一个改变集被追踪
终端用户和开发者可以保存他们自己的源文件档案库,并根据需要可以通过一个简单的命令用最新的改变集进行更新
对开发者来说,这意味着可以始终使用最新的代码拷贝
测试人员可以使用这些逻辑的改变集合来确定哪些变化导致了问题的产生,缩短调试所需要的时间
甚至那些希望使用最新内核的用户也可以直接利用实时的、集中的档案库,因为一旦他们所需要的部件或缺陷修复加入到内核中,他们就可以马上进行更新
当代码融合到内核时,任何用户都可以提供关于这些代码的即时反馈和缺陷报告
并行开发随着Linux内核的成长,变得更加复杂,而且吸引更多开发者将注意力集中到内核的特定方面的专门开发上来,出现了另一个开发Linux方法的有趣改变
在2.3内核版本的开发期间,除了由LinusTorvalds发行的主要的一个内核树之外,还有一些其他的内核树
在2.5的开发期间,内核树出现了爆炸式的增长
由于使用源代码管理工具可以保持开发的同步并行进行,这样就可能实现开发的部分并行化
为了让其他人在他们所做的改变被接受之前可以进行测试,有一些开发需要并行化
那些保持自己的树的内核维护者致力于特定的组件和目标,比如内存管理、NUMA部件、改进扩展性和用于特定体系结构的代码,还有一些树收集并追踪对许多小缺陷的纠正
这种并行开发模型的优点是,它使得需要进行重大改变的开发者,或者针对一个特定的目标进行大量类似改变的那些开发者可以自由地在一个受控环境中开发,而并不影响其他人所用内核的稳定性
当开发者完成工作后,他们可以发布针对Linux内核当前版本的补丁,以实现到此为止他们所完成的改变
这样,社区中的测试人员就可以方便地测试这些改变并提供反馈
当每一部分都被证明是稳定的之后,那些部分可以单独地,或者甚至同时全部地,融合到主要Linux内核中
(内核结构图相册部分图片来源:)代码覆盖分析新工具为内核提供了代码覆盖分析的功能
覆盖分析表明,在一个给定的测试运行时,内核中哪些行代码被执行
更重要的是,覆盖分析提示了内核的哪些部分还根本没有被测试到
这个数据是重要的,因为它指出了需要再编写哪些新测试来测试内核的那些部分,以使内核可以得到更完备的测试
大量信息在为将来的2.6Linux内核进行开的过程中,除了这些自动化的信息管理方法之外,开放源代码社区的不同成员还收集和追踪了数量惊人的信息
例如,在KernelNewbies站点上创建了一个状态列表,来保持对已经提出的内核新部件的追踪
这个列表包含了以状态排序的条目,如果它们已经完成了,则说明它们已经包含在哪个内核中,如果还没有完成,则指出还需要多长时间
列表上很多条目的链接指向大型项目的Web站点,或者当条目较小时,链接指向一个解释相应部件的电子邮件信息的拷贝
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。