IT门户, 中国互联网人工智能物联网行业资讯平台--公众IT

当前位置:公众IT > 技术文章 >

新闻来源:互联网资料整理       发布时间:2023/4/5 22:54:21       共计:4595 浏览

这是一个非常笼统的问题,你们必须沿着向内核贡献高质量代码这条路径努力走下去。 linux内核是一个庞大而复杂的项目,它在不断发展,跟上新技术并改进已经存在的代码,在许多情况下已经是最高质量的贡献了。 对于一个如此庞大的项目,您可能都无法深入了解整个系统。 像艾伦·考克斯(Alan Cox)那样,很少有极有才华的黑客能够献出生命中的大部分时间。

您可以将内核视为三个不同的部分。

第一个领域是设备驱动程序,它占整个代码库的很大一部分。 如果您以前有在其他平台上开发驱动程序的经验,那么过渡到linux内核就不会太困难。 使用相同的总线(例如USB)阅读您感兴趣的相似设备的驱动程序代码。

第二个领域是核心内核子系统,例如CPU调度,中断处理,I / O,文件系统和内存管理。 这些领域特别艰巨(有些比其他领域还要艰巨)。 如果您是操作系统的新手,建议花几个月的时间对内核进行深度研究,包括购买一些通用的操作系统书籍,我推崇的书籍包括:

  • Stallings, William. Operating Systems: Internals and Design Principles
  • Silberschatz, Abraham. Operating System Concepts.
  • Tannenbaum, Andrew S. Modern Operating Systems.

是的,英文版的书籍,想进入Linux内核殿堂,英语只是前进路上的一个必要小工具,通过书籍掌握原理才是目的!

无论您是要深入Linux,BSD,FreeDOS,Minix还是任何其他内核,如果不具备操作系统基础知识和内部知识,您将不会走得太远。 充分了解计算机体系结构也很重要。 您至少应该知道诸如为何在上下文切换时需要使用无标签的高速缓存进行TLB刷新,或处理器字大小与内存寻址能力之间的相关性之类的事情。 我建议一些书:

  • Hennessy, John L. Computer Architecture: A Quantitative Approach.
  • Patterson, David A. Computer Organization and Design.

第三个领域是所有内核黑客都应该了解并掌握的常规技术: 算法和数据结构。 其中包括同步(原子操作,自旋锁,信号量等),链表,树,内核对象和搜索功能等。

除了LKML,阅读代码并了解理论基础之外,我发现Robert Love的Linux Kernel Development书籍是最好的信息来源。 当然,您还必须精通编写系统级C代码。

回到问题,并假设您是一个新手,从小处做起,从事您个人感兴趣的事情,保持耐心,坚持不懈,最重要的是: 玩得开心!

很多都是在为公司做事开始搞内核的。国内华为,腾讯,字节,阿里等都大量部署Linux 内核在生产环境,需要加新功能,解决问题或者改进性能。慢慢就入门了。

版权说明:
本网站凡注明“公众IT 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
您可以扫描右侧微信二维码联系我们。
·上一条: | ·下一条:
同类资讯
网站首页 关于我们 联系我们 合作联系 会员说明 新闻投稿 隐私协议 网站地图