三年前,我大学的时候开始用 Linux ,并且热衷于发掘一个不一样的桌面环境。 我的教授向我介绍了 Ubuntu 操作系统,我当即在我的电脑上构建了 Ubuntu + Windows 的双系统。
在接下来三个月内,我完全放弃了 Windows ,并在了解了 RPM Package Manager 后转向了 Fedora 。 我也尝试过使用更加稳定的 Debian 系统,但在2017年初,我意识到 Arch Linux 才能满足我对最新软件包的所有需求。我给我的 Arch Linux 装上了 KDE 桌面,并根据我自己的使用需求做了多项自定义。
与其使用现成的统一安装程序,我一直对 Linux 黑客和终端更感兴趣。这促使我去探索 Linux 内核树,并找到了为社区做贡献的方式。
向 Linux 内核提交我的首个补丁是一次令人惊叹的体验。2018年2月的第二个星期,我花了大约一个小时的时间克隆了最新的 Linux 内核源代码树,并用了几乎一整晚的时间编译和构建 4.15 Arch Linux 内核。我参照 KernelNewbies 指南并阅读了《 Linux 设备驱动程序》 第三版的前三章。本书介绍了设备驱动程序以及特定类型,并示范了如何在运行时将它们作为模块插入/删除。书中的示例代码帮助我创建了一个 Hello World 驱动程序,并尝试了 insmod 和 rmmod 命令(后续章节中的代码示例有一点点过时)。这样,我便开始了向 Linux 内核提交补丁的旅途。
许多人建议我在成为内核贡献者之前阅读有关操作系统和 Linux 内核开发的书籍;另一些人则提倡遵循 KernelNewbies 的指南并使用漏洞查找工具来修复错误。我采取了后者的建议,因为我发现围绕错误代码的探索和试验是学习和理解内核代码的最佳方式。
我对 Linux 内核的第一次修补,是通过在 vt6656 驱动程序目录上运行 checkpatch.pl 脚本来去除“内存不足”警告。在增添更新日志并更新修补程序后,我于2月10日提交了第一个补丁。此后,我在2月12日收到了 Greg Kroah-Hartman 的一封电子邮件,告知我的修补程序已添加到下一分期的分支, 而且准备并入下一个主要内核版本中。
我的建议是,你可以从很简单的补丁开始,因为就算只有一两行的修补,都会激励你做出更多贡献。请记住,重要的是质量而不是数量。在向驱动程序的 TODO 列表做出贡献前之前, 你应该掌握设备驱动程序和操作系统的丰富知识。做贡献的快感会让你继续精进。
本文由 LinuxStory 志愿者 杜雨桐 翻译,更多详情请查看原文。
原文链接:https://opensource.com/article/18/4/submitting-my-first-patch-linux-kernel
本文链接:https://linuxstory.org/submitting-my-first-patch-linux-kernel
转载请注明来自 LinuxStory ,否则必究相关责任!