linux 下两类主要的设备文件:字符设备,块设备

来源:互联网 发布:大数据时代txt免费下载 编辑:程序博客网 时间:2024/04/30 13:29

        linux下有两类主要的设备文件:一种是字符设备,另一种是块设备。

字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧着接发生了;

而对于块设备而言,它是利用系统内存作缓冲区,如果该缓冲区里的数据能满足用户进程对设备的请求,就

返回请求的数据,如果不能,就调用函数来进行实际的I/O 操作。

        块设备主要是针对磁盘等速度比较慢的设备设计的,以避免耗费过多的cpu时间来等待。根据个人理解

块设备的缓冲区,就相当于CPU和内存之间的cache,加快CPU访问内存上的相关数据。

        用户进程都是通过设备文件来与实际的硬件打交道。每个设备文件都有其文件属性,表示是字符设备还

是块设备。

另外每个文件都有两个设备号,第一个是主设备号,用于表示驱动程序;第二个是从设备号,用于标识

使用同一个设备驱动程序的不同硬件设备。设备文件的主设备号必须与设备驱动程序在登记时申请的主设备

号一致,否则用户进程将无法访问到驱动程序。