什么是块设备?

什么是块设备?

我知道很多块设备的例子(HDD、SSD、文件……),但我还没有听说过它的简单定义。特别是因为文件显然包含在定义中,我感到有点困惑......

答案1

也许你永远无法找到一个简单的定义。但以最一般和最简单的方式,如果将字符设备与块设备进行比较,您可以说字符设备使您可以直接访问硬件,就像您输入一个字节一样,该字节可以访问硬件(当然,这并不像当今时代那么简单)。而块设备以不同大小的块的形式读取和写入设备。您可以指定块大小,但由于通信一次是一个块,因此涉及缓冲时间。

将块设备视为一次读取和写入一个数据块的硬盘,而字符设备是串行端口。您发送一个字节的数据,另一方接收该字节,然后接收下一个字节,依此类推。

再说一次,这不是一个很容易解释的概念。我给出的例子是粗略的概括,并且可以很容易地针对每个例子的某些特定实现来反驳。

答案2

A块特殊文件或块设备是:

引用设备的文件。块特殊文件通常与字符特殊文件通过以设备的硬件特性不可见的方式提供对设备的访问。

精确的硬件特性是通过内核或驱动程序级缓存抽象出来的。块设备通常代表磁盘驱动器等硬件,但这与平台相关。自由BSD根本没有任何块设备, 例如。

一般来说,文件不是设备。

“块设备”,当提及文件时,指的是(可能)中的特定设备文件/dev。它主要是来自用户级别的实现细节,并具有由驱动程序公开的接口。许多类型的硬件内部都是块结构的,但是块设备和字符设备都可以用来访问它们。

相关内容