linux中什么是块设备和字符设备?
字符设备用c表示。
能通俗的解释下这两个设备是什么吗?
不要百度百科上的那写解释。我都已经看过了...
谢谢各位了。 展开
块设备是I/O设备中的一类,是将信息存储在固定大小的块中,每个块都有自己的地址,还可以在设备的任意位置读取一定长度的数据。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。
字符设备是在I/O传输过程中以字符为单位进行传输的设备。在linux系统中,字符设备以特别文件方式在文件目录树中占据位置并拥有相应的结点。结点中的文件类型指明该文件是字符设备文件。可以使用与普通文件相同的文件操作命令对字符设备文件进行操作。
扩展资料:
在大多数的linux操作系统中,块设备只支持以块为单位的访问方式,如磁盘等。KYLIN支持以字符方式来访问块设备,即支持以字符为单位来读写磁盘等块设备。所以在/dev目录中的块设备,如磁盘等,均以字符设备的外观出现。
当一台字符型设备在硬件上与主机相连之后,必须为这台设备创建字符特别文件。linux操作系统的mknod命令被用来建立设备特别文件。
参考资料来源:
(1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,键盘、串口、调制解调器都是典型的字符设备。
(2)块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘、软盘、CD-ROM驱动器和闪存都是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址。
总结一下,这两种类型的设备的根本区别在于它们是否可以被随机访问。字符设备只能顺序读取,块设备可以随机读取。
那linux 系统里面。块设备和字符设备的代表是什么呢?
块设备:硬盘
字符设备:键盘
块设备如磁盘。磁带
2022-11-16 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
Linux系统中设备主要分为三类,除了块设备和字符设备外,还有网络设备:
1、字符设备
字符设备是一个能够像字节流一样被访问的设备,通常至少要实现打开、关闭、读取和写入系统调用。字符设备是一个顺序访问的,只有在设备响应后才能读到相应信息,不能随机访问,且每个字符设备都有一个设备号,设备号由主设备号和次设备号组成。
常见的字符设备如串口、IIC等。字符设备的对应的文件都在/dev目录下,每一个文件对应一个硬件。在linux系统中/dev目录下使用ls
-l命令查看详细信息,第一个字母“c”为字符设备文件的标识。
2、块设备
和字符设备类似,块设备也是通过/dev目录下的文件系统节点来访问。常见的块设备如磁盘、emmc flash、nand flash、 SD卡等。
3、网络设备
任何网络相关的事务都要经过一个网络接口,即一个能够与其他主机交换数据的设备。通常,接口是个硬件设备,但也可能是纯软件设备,比如在ifconfig查看网口信息的时候有一个lo,就是网络回环(loopback)接口。
访问网络接口的方法是给它们分配一个唯一的名字,比如eth0、eth1、lo等。但这个名字在文件系统中不存在相应的节点。网络接口没有像字符设备和块设备一样的设备号,只有一个唯一的名字,如eth0、eth1等,而这个名字也不需要与设备文件节点对应。
内核使用一套与数据包传输相关的函数来与网络设备驱动程序通信,它们不同于字符设备和块设备的read()和write()方法。
广告 您可能关注的内容 |