Что означает буква «у» в / dev / urandom?


88

Я понимаю, что чтение /dev/randomможет блокировать, а чтение /dev/urandomгарантированно не блокирует.

Откуда это письмо u? Что это значит?

В пространстве пользователя? Разблокирование? Микро?

Обновить:

Исходя из первоначальной формулировки вопроса, были некоторые дебаты по поводу полезности /dev/randomпротив /dev/urandom. Ссылка « Мифы о / dev / urandom » была опубликована три раза ниже, и в этом ответе на вопрос, когда использовать / dev / random и / dev / urandom .


13
Разблокировка, а не /dev/randomблокировка.
Satō Katsura

3
Глава и стих?
Том Хейл

11
Идея, которая /dev/randomбыла как-то лучше, чем /dev/urandomсейчас, давно устарела и для подавляющего большинства вариантов использования /dev/urandom теперь предпочтительнее .
Дэвид Шварц

@SatoKatsura Источник? Ответ Тома противоречит вашему ответу.
no16z16

Вот ссылка на сайт с подробной информацией для резервного копирования комментария @DavidSchwartz. 2uo.de/myths-about-urandom
Уолтер

Ответы:


87

Unlimited.

В Linux, сравнивающие функции ядра по имени random_readи random_read_unlimited указывает на то, что этимология письма uв urandomэто unlimited.

Это подтверждается строкой 114 :

Устройство / dev / urandom не имеет этого ограничения [...]

Обновить:

Что касается того, что было первым для Linux, /dev/randomили /dev/urandom@ Stéphane Chazelas дал пост с оригинальным патчем, а @StephenKitt показал, что они оба были представлены одновременно .


7
Тогда почему не /dev/randomназван /dev/lrandom? :)
Satō Katsura

13
Историческая справка. Сначала существовала только ограниченная / блокирующая версия. И аналогичная «не ограниченная» функция называется random_read:)
Том Хейл

10
Я нашел одну из ссылок через Википедию, но я цитирую источник напрямую, а не цитирую Википедию. Я бы посчитал это аналогом поиска чего-либо через Google, а не цитированием Google ... разве у меня есть что узнать о цитировании в StackExchange?
Том Хейл

5
@TomHale Исторический аргумент в пользу randomст. lrandomНе держать все , что хорошо , так как randomи urandomбыли введены одновременно в ядре Linux.
Стивен Китт

7
Смотрите также патч на usenet, присланный автором оригинальной реализации в 1995 году
Стефан Шазелас

18

Это зависит от того, о какой Unix-системе вы говорите.

В FreeBSD / dev / urandom и / dev / random - это одно и то же устройство. Буква u теперь является историческим наследием, которое существует для обратной совместимости. При запуске они блокируются до тех пор, пока не соберется достаточно энтропии, а затем никогда не блокируются снова. См. Мифы об Урандоме для деталей.

В современном мире Linux (начиная с ядра 4.8) оба устройства используют один и тот же CSPRNG, поэтому единственное отличие состоит в том, что некоторые люди предполагают наличие атаки. Эта атака похожа на FTL [Faster than Light]. Легко спекулировать, довольно сложно на самом деле дизайн.

TLDR просто использует / dev / urandom.


2
По вашей ссылке интересно отметить, чтоFreeBSD does the right thing: they don't have the distinction between /dev/random and /dev/urandom, both are the same device. At startup /dev/random blocks once until enough starting entropy has been gathered. Then it won't block ever again.
Том Хейл

-5

Равномерное. Случайные числа равномерно распределены между 0 и 1. Плоское распределение ... в отличие от пикового распределения, как Пуассон, или Нормальное / Гауссово.


3
Есть какой-нибудь источник для этого?
GnP

7
Это определенно не правильно - /dev/randomи /dev/urandomоба дают одинаковое распределение, и в каком-то смысле оно неравномерно распределено между 0 и 1.
Chris

Извините ... вероятно, основанный на том, что на другом языке я использовал (R или что-то)
bbneo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.