KernelDevViewpoint (显然是一个严肃的源代码)使内核开发看起来像是一种可访问的艺术。据他们说:
与流行的观点相反,内核开发人员很少需要了解微积分级别的数学知识。您需要精通基本算术,并且必须了解布尔代数才能处理设备驱动程序。许多内核开发人员在工作中学到的一项技能是在代码所做的工作中构建状态机的能力。(...)
和
内核开发人员的技术技能包括C编程语言的经验和Git知识。
这是内核开发的基础吗?基本算术,布尔代数,C和Git?
显然,我不希望在十天内阅读"C“(或其他类似的书)并开始为Linux内核的开发做出贡献,但是,我想知道获得这样做的技能有多难呢?
发布于 2013-11-27 00:07:18
这是内核开发的基础吗?基本算术,布尔代数,C和Git?
我从未对内核项目做出过贡献,但除非您正在处理某些部分,如线程锁、安全性等,否则您不需要高级数学。您需要知道如何与其他人一起工作,如何有效地沟通,以及如何使用带有公共存储库的版本控制系统,例如Git。你必须学习团队精神,并期望得到建设性的批评。在我所做的项目中,单元测试是很重要的,大部分时间都是单元测试和文档。
在许多项目上,不需要经过一层或多层的评审,就不能提交项目的更新。你必须通过证明你的技能来赢得信任。在大型项目中,不希望掌握所有的代码,您很可能会在工作的某个部分变得很好,并随着时间的推移学习其他部分。你会看到很多不同的风格和技能水平,除非他们有一套好的标准可遵循。
正如你所看到的,在好的项目中有很多的制衡,这不仅仅是编码。如果您认为您可以作出贡献,请更改并提交更新。希望它一开始就会被拒绝,然后听从评论,做出改变,很快你就会成为团队的一员。你得花很多时间。
发布于 2013-11-27 00:34:05
尽管消息来源是值得尊敬的。我会说你只需要基本的算术,布尔代数,C和Git,这是一个粗略的概括。当您看到代码时,几乎所有的东西都简化为简单的普通C代码。但是代码实现了一些比基本算术要复杂得多的东西。下面是一些例子:
https://softwareengineering.stackexchange.com/questions/219606
复制相似问题