linux中普通文件和块设备文件的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中普通文件和块设备文件的区别相关的知识,希望对你有一定的参考价值。

1,基本概念

  普通文件(Regular File)。指普通意义上的文件,如数据文件、可执行文件等。

  设备文件(Device File)。类unix操作系统都是基于文件概念的,文件是由字节序列而构成的信息载体。根据这一点,可以把IO设备当作设备文件这种所谓的特殊文件来处理;因此,与磁盘上的普通文件进行交互所用的同一系统调用可直接用于IO设备。根据设备驱动程序的基本特征,设备文件可以分为两种:块和字符。这两种硬件设备之间的差异并不容易划分,但我们至少可以假定以下的差异:[1]

  · 块设备的数据可以随机地被访问,而且从人类用户的观点看,传送任何数据块所需的时间都是较少而且是大致相同的。块设备的典型例子是硬盘、软盘[1]。块设备一般情况下是带缓冲区的。

  · 字符设备的数据或者不可以随机访问,或者可以被随机访问,但是访问随机数据所需的时间很大程度上依赖于数据在设备内的位置[1]

2, 寻址空间的区别

  块设备文件是块设备的物理寻址空间;普通文件是块设备的虚拟寻址空间。普通文件比块设备文件多一层文件系统的地址转换机构。

这样说可能还是不是很明白 直接举个例子吧
先说下cat命令
cat命令是循环读命令直到碰到文件结尾EOF,但是当你cat个设备文件时会发现设备文件的内容一直在读
例如:
技术分享

当时当我执行cat /dev/hello时会出现这样的情况:
技术分享
请注意上面的^C

说明设备文件没有文件的终止标志EOF

谢谢!!!

本文出自 “梦Dream” 博客,请务必保留此出处http://dreamy.blog.51cto.com/12471447/1911645

以上是关于linux中普通文件和块设备文件的区别的主要内容,如果未能解决你的问题,请参考以下文章

字符设备和块设备区别

Linux中的文件类型

linux操作系统文件类型有哪几种,有啥区别?

Linux 系统的文件类型

linux学习笔记18--文件

Linux基础:文件类型与扩展名