/dev 中的文件到底有什么用?我很难理解这里的文件、设备驱动程序和设备之间的关系。
举个例子,/dev/hda 是做什么的?硬盘驱动程序是否对其进行读取/写入?
答案1
不,它是由硬盘驱动程序创建的,以便更高级别的驱动程序(设备映射器、文件系统等)可以读取/写入/查找/告诉/打开/关闭/ioctl 它。
(实际上,它们直接对设备编号进行操作,但这是一个足够接近的抽象。)
答案2
文件系统/dev/
提供的文件充当接口到实际设备。它的存在是为了方便使用具有常见 I/O 功能的硬件,并让用户识别硬件。
因此,当您对设备文件执行操作时,驱动程序会具有识别正在发生的事情的代码,并对硬件执行您所要求的操作。
您有字符和块设备文件。字符设备逐个字符地写入/读取(键盘、鼠标、调制解调器等...),而块设备则以数据块的形式写入/读取。您还有一些伪/dev/null
和等设备/dev/random
不与任何硬件关联,但工作方式却与硬件相同。