初学者的Linux内核编程

21

我已经在LINUX上工作了六年,自从我开始使用Linux以来就一直是核心Linux人员。更多地从事基于Redhat/Centos/Fedora的分发系统管理,并具备一些基本的Bash脚本知识。

现在我想深入学习编程,在Linux操作系统或内核空间贡献或创新出新东西(更重要的是在kvm虚拟化前沿,因为我是虚拟化方面的专家)。所以我需要您的指导来开始我的Linux编程职业生涯。目前,我计划从以下顺序开始:

  • C
  • C++
  • Linux内核编程
  • Python
  • Java

请提供一些适合初学者到高级文档的好的网络链接,让我可以开始学习以上语言。

5个回答

22
如果您不懂编程,目前内核对您来说是非常遥远的。学习C语言吧。推荐先学习《C程序设计语言》,之后可以尝试学习优秀的《UNIX环境高级编程》

然后您就可以开始查看内核源代码并阅读一些针对内核的书籍了。根据您想要做什么,学习一些汇编语言也可能是一个好主意。

C++和Java在Linux内核开发中几乎毫无用处(这不是对这两种语言的评价,只是因为Linux是用C语言和汇编语言编写的)。


不想跑题,但如果您能提供一些“内核特定”的书籍名称,我会非常感激。 - arsaKasra

9

7
你可以从Eudyptula Challenge开始学习。该网站介绍说:Eudyptula Challenge是一系列针对Linux内核的编程练习,从最基本的“Hello world”内核模块开始,逐渐提高难度,直到将补丁被合并到主Linux内核源码树中。
你还可以参考The Linux Kernel Module Programming Guide。这也是一个很好的初学者指南。

7

我曾经读过一些资料,说Robert Love的内核编程书对于你想要实现的目标非常有用。 这里是在AMAZON上的链接。


2

虽然我不是内核开发人员,但我认为这个链接可能对您有所帮助。它包含了一些与内核相关的文档。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接