gpt4 book ai didi

linux-device-driver - Linux内核设备驱动程序编程

转载 作者:行者123 更新时间:2023-12-03 07:55:57 25 4
gpt4 key购买 nike

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

7年前关闭。




Improve this question




我想学习linux内核设备驱动程序编程。所以任何人都可以在这里发布好的教程页面或链接。我是 linux 内核环境的新手。我已经搜索过它,但我不知道如何开始以及阅读哪一个以便于理解基础知识。提前致谢。

最佳答案

取决于你现在的技能。如果您是 真的 Linux 新手,也许您应该从 Advanced Linux Programming 开始用户空间系统编程.通过这个免费资源,您将深入了解 Unix 系统调用和其他概念,例如信号、进程/线程等。如果您在内核方面进行开发,这是必须的(了解用户空间 API),因为内核的角色是以安全的方式为用户提供服务。

否则一本经常被引用的书是 Linux Device Drivers, Third Edition (LDD3)。请记住,此版本是在 Linux 2.6.10 时编写的,从那时起有些事情发生了变化。 This article显示了随着 2.6 的演变(直到 2.6.31,所以不是很有用)的差异。我应该提到martinezjavier/ldd3 ,其中包含为更新的内核更新的 LDD3 示例驱动程序(感谢 42n4 指出这一点)。

另一本不常被引用的有趣书是Essential Linux Device Drivers .您不会找到此版本的免费版本,但它仍然具有一种有趣的方法。我喜欢这个的是它涵盖了许多不同的设备类型,并且是最新的 2.6.24,比 LDD 好一点。

最后,一本关于内核本身(不是专门针对驱动程序)的好书是Understanding the Linux Kernel, 3rd Edition。 .这涵盖了深入的内核设施和内部机制。它是 2.6.11 的最新版本。

至于网上教程,我找到了this post on Pete's Blog是一个很好的例子。它不仅展示了如何创建字符设备(最简单的内核驱动程序类型,即您应该开始使用的那个),它以一种易于理解的方式使用现代 Linux 内核功能,包括:

  • udev的使用
  • 使用内核数据结构 (FIFO)
  • 使用内核同步(互斥)
  • 使用带有自定义属性的 Sysfs
  • insmod 的模块选项

  • 另外:它针对的是 Linux 3.0,这意味着与其他资源相比,它是最新的。

    您可能还喜欢 this post关于如何手动创建 Sysfs 条目,尽管如果您不需要额外的节点或属性,Linux 设备模型将负责将您的设备注册为 Sysfs 条目。

    编辑 : 我应该补充一点,学习真正的 Linux 设备驱动程序编程的最佳方法是查看实际的驱动程序。 drivers 有数千名司机.开始阅读和理解简单的概念,如 drivers/leds你会看到这是多么有益。

    关于linux-device-driver - Linux内核设备驱动程序编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11220720/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com