Udev
/dev/raw/ 發生了什麼?
我正在閱讀一篇關於 LWN的文章,其中有一個重要聲明:
原始設備 (/dev/raw/rawN) 是 O_DIRECT I/O 的一種特殊情況。這些設備可以在不指定 O_DIRECT 的情況下打開,但仍提供直接 I/O 語義。因此,所有相同的規則都適用於適用於使用 O_DIRECT 打開的文件(或設備)的原始設備。
這是指今天的情況
/dev/sda
和其他一些情況嗎?
不,
/dev/raw
不同於傳統的/dev/sda
塊設備。根據*Linux 2.4 SCSI 子系統 HOWTO:第 11 章。原始設備*:原始設備可以綁定到現有的塊設備(例如磁碟),並用於與現有的塊設備執行“原始”IO。這種“原始”IO 繞過了通常與塊設備相關聯的記憶體。因此,原始設備為物理設備提供了更“直接”的路由,並允許應用程序更好地控製到該物理設備的 IO 時序。這使得原始設備適用於復雜的應用程序,例如通常自己記憶體的數據庫管理系統。
原始設備是字元設備(主要編號 162)。第一個次要編號(即 0)保留為控制介面,通常位於 /dev/rawctl。一個名為 raw 的實用程序(參見 man raw)可用於將原始設備綁定到現有的塊設備。這些“現有的塊設備”可能是磁碟或 cdroms/dvds,其底層介面可以是 Linux 支持的任何東西(例如 IDE/ATA 或 SCSI)。
除了 HOWTO 中的資訊之外,還有一些其他來源可供閱讀: