Filesystems

從 dev/urandom 讀取 - 系統行為

  • August 24, 2020

dev/urandom當從, 說heador讀取時,dd當然期望輸出總是隨機的和不同的。

UNIX 在低級別如何處理這個問題?文件是在讀取時自然截斷,還是文件實際上是對稱密碼或等效密碼的介面,因此“讀取”實際上是執行密碼的行為。

/dev/urandom是字元設備,而不是正常文件。打開它會為驅動程序提供一個介面,通常在核心中,該驅動程序處理讀取;每次程序從 讀取時/dev/urandom,都會呼叫驅動程序,並且驅動程序會確定如何提供適當的內容(與任何其他字元設備相同 - /dev/null/dev/zero…)。

在 Linux 上,這是在drivers/char/random.c. 它維護一個“熵池”,從各種隨機數據源中播種,當讀取時,使用 ChaCha 流密碼處理池數據以構造要返回的數據。

引用自:https://unix.stackexchange.com/questions/606120