0

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

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

4

1 回答 1

1

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

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

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

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

于 2012-12-08T18:34:23.187 回答