第4章 Linux设备驱动程序设计
4.1 设备驱动概述
Linux系统将设备分成3种基本类型:字符设备、块设备、网络接口。
(1)字符设备
字符设备是一个能够像字节流一样被访问的设备,字符终端(/dev/console)和串口(/dev/ttys0)就是两个字符设备。字符设备可以通过文件系统节点来访问,比如/dev/tty1和/dev/lp0等。这些设备文件和普通文件之间的唯一差别在于对普通文件的访问可以前后移动访问位置,而大多数字符设备是一个只能顺序访问的数据通道。
(2)块设备
块设备和字符设备相类似,块设备也是通过/dev目录下的文件系统节点来进行访问的。在大多数UNIX系统中,进行I/O操作时块设备每次只能传输一个或多个完整的块;在Linux系统中,应用程序可以像字符设备一样地读写块设备,允许一次传递任意多字节的数据。块设备和字符设备的区别仅仅在于内核内部管理数据的方式,也就是内核及驱动程序之间的接口。
(3)网络接口
任何网络事务都是经过一个网络接口形成的,即一个能够和其他主机交换数据的设备。网络接口由内核中的网络子系统驱动,负责发送和接收数据包,但它不需要了解每项事物如何映射到实际传送的数据包。
时间: 2024-11-08 07:26:32