Linux按照信息组织特征将设备分为三类,分别是

字符设备:以字符为单位发送或接收一个字符流,而不考虑任何块结构。字符设备是不可寻址的,也没有寻道操作。例如打印机,网络接口,鼠标。
块设备:把信息存储在固定大小的块中,每个块有自己的地址。通常块的大小在512字节和65536字节之间。所有传输以一个或多个完整的(连续的)块为单位。基本特征:每个块都能独立于其他块而读写。例如硬盘,蓝光光盘,USB盘。
网络设备:通过套接字完成通信
块设备和字符设备的区别:
字符设备只能顺序读取,块设备可以随机读取;
块设备通过系统缓存进行读取,不是直接和物理磁盘读取。字符设备可以直接读取物理磁盘,不经过系统缓存。在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生,而块设备利用一块系统内存作为缓冲区,当用户进程对设备请求能满足用户的要求时,就返回请求的数据,如果不能就调用请求函数来进行实际的I/O操作。因此,块设备主要是针对磁盘等慢速设备设计的,以免消耗过多的CPU时间来等待;
在操作系统设备管理功能中设备按照独占性设备,共享性设备,虚拟设备进行设备分配 而独占型设备包含所有的字符设备,共享型设备包含所有的块设备。
在文件系统的一个目录中,其中所有文件名信息对应的目录项存储在该目录文件名文件的数据块中。 每个目录项只包括一个长度为14字节的文件名字符串和该文件名对应的2字节的i节点号。因此一个逻辑磁盘块可以存放1024/16=64个目录项。
有关文件的其它信息则被保存在该i节点号指定的i节点结构中,该结构中主要包括文件访问属性、宿主、长度、访问保存时间以及所在磁盘块等信息。
每个i节点号的i节点都位于磁盘上的固定位置处。