我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。
关闭 8 年前。
我总是被内核黑客和嵌入式系统的世界所吸引。
有没有人有关于开始弄乱这些东西的好教程(+容易获得的硬件)?
诸如用于编写驱动程序的工具包之类的东西,它们带有良好的文档并且价格合理?
谢谢!
最佳答案
如果您对内核开发完全陌生,我建议不要从硬件开发开始,而是使用一些“纯软件”内核模块,如 proc 文件/sysfs 或更复杂的示例文件系统/网络开发,在 uml 上开发/vmware/virtualbox/... machine 所以让你的机器崩溃不会有太大的伤害 :) 对于嵌入式开发,你可以使用小型 ARM 开发套件或小型 Via C3/C4 机器,或任何可以烧录的旧 PC使用您的自制 USB/PCI/任何设备。
一个好的起点可能是Kernelnewbies.org - 它为内核开发人员提供了大量链接和有用信息,还提供了一系列易于实现的任务,供初学者使用。
一些值得阅读的书:
Understanding the Linux Kernel - 一个很好的引用,详细介绍了内核子系统的设计
Linux Device Drivers - 写得更像是一个包含大量示例代码的教程,重点是让您了解并解释 linux 内核的关键方面。它介绍了内核模块的构建过程和基础知识。
Linux Kernel Module Programming Guide - 一些更多的介绍性 Material
如前所述,查看 linux 代码总是一个好主意,尤其是 Linux 内核 API 往往会经常更改... LXR 提供了非常好的浏览界面 - lxr.linux.no
要了解内核构建过程,此链接可能会有所帮助:
Linux Kernel Makefiles (kbuild)
最后但同样重要的是,浏览内核源代码分发的文档目录!
下面是一些从内核开发类(class)中偷来的有趣练习:
https://stackoverflow.com/questions/60763/
相关文章:
linux - RealUID,保存的 UID,有效的 UID。这是怎么回事?
c - Linux内核代码中的 "EXPORT_SYMBOL"是什么意思?
linux - 让 Tk 看起来像一个原生 Linux 应用程序
linux - 当我在脚本中使用它时,无法关闭带有 echo "^]"的 scpi(telnet)
python - 如何在 Linux 上使用 Python 检查进程是否仍在运行?
linux - 应用程序如何在运行时解析为不同版本的共享库?
linux - 如何找出哪个进程正在消耗 "wait CPU"(即 I/O 阻塞)