Linux
如果刪除設備文件會發生什麼?
我大致了解位於 /dev 下的文件。
我知道有兩種類型(字元/塊),訪問這些文件與核心中的驅動程序進行通信。
我想知道如果我刪除一個會發生什麼——特別是對於這兩種類型的文件。如果我刪除一個塊設備文件,比如說
/dev/sda
,這有什麼影響(如果有的話)?我剛剛解除安裝了磁碟嗎?同樣,如果我刪除
/dev/mouse/mouse0
了——會發生什麼?滑鼠會停止工作嗎?它會自動替換自己嗎?我什至可以刪除這些文件嗎?如果我有一個虛擬機設置,我會嘗試它。
這些只是(特殊)文件。它們僅用作指向實際設備的“指針”。(即核心中的驅動模組。)
如果某些命令/服務已經打開了該文件,則它已經擁有設備句柄並將繼續工作。
如果某些命令/服務嘗試打開新連接,它將嘗試訪問該文件並由於“找不到文件”而失敗。
通常這些文件由 填充
udev
,它會在系統啟動和特殊事件(如插入 USB 設備)時自動創建它們,但您也可以使用mknod
.