linux设备驱动

本文主要介绍了Linux设备驱动的三大类别:字符设备、块设备和网络设备,并详细阐述了上层应用程序如何通过文件操作来访问底层驱动程序。文章还提到了字符设备驱动的编写和相关函数分析,提供了一个简单的字符设备驱动程序示例。

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

这本阿里P8撰写的算法笔记,再次推荐给大家,身边不少朋友学完这本书最后加入大厂:

Github 疯传!史上最强悍!阿里大佬「LeetCode刷题手册」开放下载了!

一.Linux设备分类

字符设备: 以字节为单位读写的设备。

块设备    : 以块为单位(效率最高)读写的设备。

网络设备 : 用于网络通讯设备。

字符设备:         字符(char)设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序 来实现这种特性。字符设备驱动程序通常至少要实现open、close、read和write的系统调 用。字符终端(/dev/console)和串口(/dev/ttyS0以及类似设备)就是两个字符设备, 它们能很好的说明“流”这种抽象概念。字符设备可以通过FS节点来访问,比如/dev/tty1 和/dev/lp0等。这些设备文件和普通文件之间的唯一差别在于对普通文件的访问可以前后 移动访问位置,而大多数字符设备是一个只能顺序访问的数据通道。然而,也存在具有数据 区特性的字符设备,访问它们时可前后移动访问位置。例如framebuffer就是这样的一个设 备,app可以用mmap或lseek访问抓取的整个图像。

块设备:         和字符设备类似,块设备也是通过/dev目录下的文件系统节点来访问。块设备(例如磁盘) 上能够容纳filesystem。在大多数的Unix系统中,进行I/O操作时块设备每次只能传输一个 或多个完整的块,而每块包含512

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值