linux - 我如何学习为 Linux 编写字符设备驱动程序?

标签 linux device-driver linux-device-driver

如何在Linux中编写字符设备驱动程序?

最佳答案

一个很好的例子是 Linux“softdog”,或软件看门狗定时器。加载时,它将监视一个特殊的写入设备,并根据这些写入的频率采取行动。

它还向您展示了如何实现一个非常有用的基本 ioctl 接口(interface)。

要看的文件是drivers/watchdog/softdog.c

如果您通过示例学习,那是一个很好的起点。其他人建议的基本字符设备(空、随机等)也不错,但没有充分说明您需要如何实现 ioctl() 接口(interface)。

旁注,我相信驱动程序是由 Alan Cox 编写的。如果你想从例子中学习,那么研究顶级维护者的工作绝不是一个坏主意。您可以非常确定该驱动程序还说明了遵守正确的 Linux 标准。

就驱动程序而言(在 Linux 中),字符驱动程序是最容易编写的,也是最有值(value)的,因为您可以看到您的代码运行得非常快。祝你好运,黑客愉快。

关于linux - 我如何学习为 Linux 编写字符设备驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1330284/

相关文章:

linux - 释放物理内存页面并强制页面错误

c - Linux 设备驱动程序中的静态函数?

ruby-on-rails - 为什么我的 Upstart Unicorn Rails 服务器出现错误 "rackup file (config.ru) not readable"

linux - 通过 ssh 传递 $PS1

C(Linux)-valgrind : Conditional jump or move depends on uninitialised value(s) after realloc

C Linux 设备编程 - 直接从/Dev 读取

linux - QEMU 的显示

linux - 使用 awk 重新格式化数据

C++11 原子 : does it make sense, 或者甚至可以将它们与内存映射 I/O 一起使用?

c - 某种事件驱动程序