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

本文深入探讨了Linux系统中字符设备与块设备的主要区别,包括它们的工作原理、如何通过设备文件与硬件交互,以及设备文件的主设备号与从设备号的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

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

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

是块设备。

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值