Linux设备驱动程序开发:2012年的情况如何?

时间:2012-12-08 17:57:16

标签: linux ubuntu linux-device-driver

我正在运行Ubuntu 12.04并且假设我在运行ls /dev时看到的所有项目实际上是连接到(或能够)的所有设备/硬件组件的设备驱动程序连接到我的机器。它是否正确?如果没有,Linux在哪里存储所有设备驱动程序?

什么是驱动程序,C? C ++?汇编?设备驱动程序开发人员使用什么样的现代IDE /技术堆栈?

1 个答案:

答案 0 :(得分:1)

不,你不对。 /dev是一个充满特殊设备文件的文件夹,代表设备驱动程序。因此,当我对/dev/sda执行某些操作时,我不使用SATA驱动程序的文件,而是正在加载任何SATA驱动程序的接口。设备文件是驱动程序将其设备暴露给用户空间的方式(以及调用驱动程序的系统调用)。

通常,驱动程序存储在/lib/modules

驱动程序是用C语言编写的,除非您想要减少工作量并写入程序集。由于技术和政治原因,整个Linux内核中没有一行C ++(Linus Torvalds讨厌看到它)。

IDE?我怀疑任何内核开发人员都使用IDE。他们中的大多数只使用Vim或EMACS。然后git提交内核源代码,并使用GDB / KDB进行调试。并且需要其他任何命令行工具(例如diff)。