首页 百科知识 设备的分类

设备的分类

时间:2022-10-09 百科知识 版权反馈
【摘要】:在Linux系统中,硬件设备分为三种,即块设备、字符设备和网络设备。网络设备在Linux里做专门的处理。为屏蔽物理设备的多样性,Liunx对所有的网络设备抽象,并定义统一概念:接口。对于每一个已经驱动了的网络设备,都用一个struct net_device的数据结构表示。网络接口不存在于Linux文件系统中,而是在核心中用一个net_device数据结构表示。而字符和块设备都存在与之对应的设备文件。

5.1.1 设备的分类

在Linux系统中,硬件设备分为三种,即块设备(block device)、字符设备(char device)和网络设备(network device)。块设备将数据按可寻址的块为单位进行处理,一般要使用缓冲区在设备与内存之间传送数据,常用的块设备有磁盘,U盘,CD-ROM等;字符设备是以字符为单位进行数据传输,字符设备通常只允许顺序访问,一般不需要使用缓冲区而直接对它进行读写,常用的字符设备有鼠标,键盘,串行口等;网络设备是通过通信网络传输数据的设备,一般指与通信网络连接的网络适配器(网卡)等,Linux使用套接字(socket)以文件I/O方式提供了对网络数据的访问。

网络设备在Linux里做专门的处理。为屏蔽物理设备的多样性,Liunx对所有的网络设备抽象,并定义统一概念:接口(interface)。对于每一个已经驱动了的网络设备,都用一个struct net_device的数据结构表示。

网络设备与字符设备及块设备的不同在于:

(1)网络接口不存在于Linux文件系统中,而是在核心中用一个net_device数据结构表示。而字符和块设备都存在与之对应的设备文件。

(2)网络设备在数据包发送和接收时,直接通过接口访问,而不需要进行文件的操作。

(3)网络接口是在系统初始化的时候生成的,对于内核支持但不存在的物理设备,将不存在与之对应的net_device结构。

(4)在系统和驱动程序之间定义有专门的数据结构(sk_buff)进行数据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制,提供对多协议的支持。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈