所谓Linux设备节点,就是应用程序和设备驱动程序沟通的一个桥梁,更是连接内核与用户层的枢纽,有着不可或缺的作用。那么什么是Linux设备节点?关于它很多人还存在着很大的疑问,我们一起来看看吧。
人和人之间沟通桥梁是语言。同样,应用程序和设备驱动程序沟通也需要一个桥梁。这个桥梁就是设备节点。
对于Linux系统,所有的IO资源都是文件,包括文件、目录、硬盘、设备等。那么,键盘作为计算机系统中的一款输入设备,操作系统同样也把它抽象了文件,要想获取用户从键盘上输入的数据时,只需要读取键盘提供的设备节点即可。
在Linux系统中,键盘作为输入设备,其对应的设备节点位于/dev/input下。在这个文件夹下有很多以event打头的文件,这些就是所有input设备的设备节点。如何确定哪个是键盘的设备节点呢?将键盘连接到树莓派上,打开终端,执行sudo cat /dev/input/event0,敲击键盘,如果没有输出,就换下一个节点,直到找到有输出的节点,这个节点就是键盘对应的设备节点。
设备节点被创建在/dev下,是连接内核与用户层的枢纽,就是设备是接到对应哪种接口的哪个ID 上。相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。
在Linux中,所有设备都以文件的形式存放在/dev目录下,都是通过文件的方式进行访问,设备节点是Linux内核对设备的抽象,一个设备节点就是一个文件。应用程序通过一组标准化的调用执行访问设备,这些调用独立于任何特定的驱动程序。而驱动程序负责将这些标准调用映射到实际硬件的特有操作。
设备节点的作用
设备节点使得用户可以与内核进行硬件的沟通,读写设备以及其他的操作。
在Linux里面设备就像是普通文件一样的存在,访问一个设备就好像是访问一个文件一样。
主设备号代表着一类设备,次设备号代表着同一类设备的不同个体。