linux驱动03:设备和模块的分类

Linux系统将设备分成三种基本的类型,每个模块通常实现为其中的一类:字符模块、块模块和网络模块。

1、字符设备

字符设备是个能像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种特性,字符设备驱动程序通常至少实现open、close、read和write系统调用。字符设备可以通过文件系统节点来访问,如/dev/tty0。

2、块设备

和字符设备类似,块设备也是通过/dev目录下的文件系统节点来访问。进行I/O操作时块设备每次只能传输一个或多个完整的。块设备和字符设备的区别仅仅在于内核内部管理数据的方式,也就是内核及驱动程序之间的软件接口。

3、网络接口

任何网络事务都经过一个网络接口形成,即一个能够和其他主机交换数据的设备。通常,接口是个硬件设备,但也可能是个纯软件的设备,比如回环接口(loopback)。网络接口由内核中的网络子系统驱动,负责发送和接收数据包。许多网络连接是面向流的,但网络设备却围绕数据包的传输和接收而设计。网络驱动程序不需要知道各个连接的相关信息,它只负责处理数据包。

内核和网络设备驱动程序间的通信,完全不同于内核和字符以及块驱动程序之间的通信,内核调用一套和数据包传输相关的函数而不是read、write等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值