ARM9嵌入式Linux开发-Linux设备管理和驱动开发基础

    技术2026-08-15  18

    设备驱动概述

    Linux设备分类

    Linux系统的设备分为三类:字符设备、块设备和网络设备:    

    (1)字符设备通常指像普通文件或字节流一样,以字节为单位输入输出数据的设备,如并口设备、虚拟控制台等。字符设备可以通过设备文件节点访问,它与普通文件之间的区别在于普通文件可以被随机访问(可以前后移动访问指针),而大多数字符设备只能提供顺序访问,因为对它们的访问不会被系统所缓存。但也有例外,例如帧缓存(FrameBuffer)是一个可以被随机访问的字符设备。

    (2)块设备通常指一些需要以块为单位随机读写的设备,如IDE硬盘、SCSI硬盘、光驱等。块设备也是通过文件节点来访问,它不仅可以提供随机访问,而且可以容纳文件系统(例如硬盘、闪存等)。Linux可以使用户态程序像访问字符设备一样每次进行任意字节的操作,只是在内核态内部中的管理方式和内核提供的驱动接口不同。

    (3)网络设备通常是指通过网络能够与其他主机进行数据通信的设备,如网卡等。内核和网络设备驱动程序之间的通信调用一套数据包处理函数,它们完全不同于内核和字符以及块设备驱动程序之间的通信(read(), write()等函数)。Linux网络设备不是面向流的设备,因此不会将网络设备的名字(例如eth0)映射到文

    Processed: 0.008, SQL: 9