Block-Device
什麼是塊設備?
我知道很多塊設備(HDD、SSD、文件……)的例子,但我還沒有聽說過它的簡單定義。特別是因為文件顯然包含在定義中,我感到有點困惑……
引用設備的文件。塊特殊文件與字元特殊文件的區別通常是通過以不可見設備的硬體特徵的方式提供對設備的訪問。
精確的硬體特性被核心或驅動程序級記憶體抽像出來。塊設備通常代表諸如磁碟驅動器之類的硬體,但這取決於平台。例如, FreeBSD根本沒有任何塊設備。
通常,文件不是設備。
“塊設備”,在提到文件時,指的是(可能)中的特定設備文件
/dev
。它主要是使用者級別的實現細節,具有由驅動程序公開的介面。許多類型的硬體在內部都是塊結構的,但是塊設備和字元設備都可以用來訪問它們。
可能你永遠無法找到一個簡單的定義。但是以最一般和最簡單的方式,如果將字元設備與塊設備進行比較,則可以說字元設備使您可以直接訪問硬體,就像您放入一個字節一樣,該字節到達硬體(當然,這不是當今時代那麼簡單)。然而,塊設備以不同大小的塊讀取和寫入設備。您可以指定塊大小,但由於一次通信是一個塊,因此涉及緩衝時間。
將塊設備想像成一個硬碟,一次讀取和寫入一個數據塊,字元設備是一個串列埠。您發送一個字節的數據,另一端接收該字節,然後接收下一個字節,依此類推。
同樣,這不是一個非常簡單的概念來解釋。我給出的範例是粗略的概括,對於每個範例的某些特定實現很容易被駁斥。