首页 文章

设备文件和设备驱动程序之间的区别

提问于
浏览
6

我目前正在阅读Linux模块编程指南,我偶然发现了两个令人困惑的术语 - 设备文件和设备驱动程序 . 在看完这些条款后,我遇到了以下情况 -

设备驱动程序是一种操作或控制特定类型设备的软件 .

设备文件是设备驱动程序的接口,它出现在文件系统中,就像它是普通文件一样 . 在类Unix操作系统中,这些通常位于/ dev目录下,也称为设备节点 .

我想知道的是 -

1)设备文件是用户空间程序和设备驱动程序之间的接口吗? 2)程序是否通过相应的设备专用文件访问内核中的驱动程序?

例如,当使用say spidev char dev文件时,是否允许我的用户空间程序使用简单的read,write和ioctl调用与spi.c和omap2_mcspi.c等进行交互?

2 回答

  • 6

    Unix中的主要抽象之一是文件(source):

    程序,服务,文本,图像等都是文件 . 根据系统,输入和输出设备以及通常所有设备被认为是文件 .

    这使得用户可以使用统一的操作集处理各种实体,即使通过执行这些操作可能会有很大的不同 .

    当您遇到问题时,设备文件是面向抽象的用户 . 这是用户看到的;他们可以写入,读取,打开,关闭等文件 . 设备驱动程序是这些操作的实现 .

    因此用户将调用诸如write之类的文件操作,然后内核将使用设备驱动程序来执行操作 .

  • -1

    linux中的所有内容都是一个文件 . 设备驱动程序是操作系统用于与设备通信的软件 . 设备驱动程序使用设备文件 .

相关问题