Linux
/dev/urandom 中的字母“u”是什麼意思?
我知道讀取
/dev/random
可能會阻塞,而讀取/dev/urandom
保證不會阻塞。這封信
u
是從哪裡來的?它意味著什麼?使用者空間?解鎖?微?
更新:
/dev/random
根據問題的最初措辭,關於vs的用處存在一些爭論/dev/urandom
。關於 /dev/urandom的連結神話已在下面發布了 3 次,並在此對何時使用 /dev/random 與 /dev/urandom的問題的答案中進行了總結。
無限。
在 Linux 中,比較命名為
random_read
和的核心函式random_read_unlimited
表明字母u
in的詞源urandom
是unlimited
.第 114 行證實了這一點:
/dev/urandom 設備沒有這個限制
$$ … $$
更新:
關於哪個先出現在 Linux 上,
/dev/random
或者/dev/urandom
,@Stéphane Chazelas 給出了帶有原始更新檔的文章,@ StephenKitt 表明它們都是同時引入的。
這取決於您所談論的“Unix”系統。
在 FreeBSD 上,/dev/urandom 和 /dev/random 是同一個設備。字母 u 現在是為了向後兼容而存在的歷史遺產。在啟動時,它們會阻塞直到收集到足夠的熵,然後再不會阻塞。有關詳細資訊,請參閱關於 urandom的神話。
在現代 Linux 世界中(從核心 4.8 開始),兩個設備都從同一個 CSPRNG 中提取,因此唯一的區別是有些人推測存在攻擊。這種攻擊就像超光速
$$ Faster than Light $$旅行。推測容易,實際設計卻很難。 TLDR 只是使用 /dev/urandom。