Chữ 'u' có nghĩa là gì trong / dev / urandom?


87

Tôi hiểu rằng đọc để /dev/randomcó thể chặn, trong khi đọc /dev/urandomđược đảm bảo không chặn.

Bức thư uđi vào đâu? Nó biểu thị điều gì?

Không gian người dùng? Bỏ chặn? Vi mô?

Cập nhật:

Dựa trên những từ ngữ ban đầu của câu hỏi, đã có một số cuộc tranh luận về tính hữu ích của /dev/randomvs /dev/urandom. Liên kết Huyền thoại về / dev / urandom đã được đăng ba lần bên dưới và được tóm tắt trong câu trả lời này cho câu hỏi Khi nào nên sử dụng / dev / Random vs / dev / urandom .


13
Bỏ chặn, trái ngược với /dev/randomđó là chặn.
Satō Katsura

3
Chương và câu thơ?
Tom Hale

11
Ý tưởng /dev/randomnào đó tốt hơn /dev/urandombây giờ đã lỗi thời và đối với phần lớn các trường hợp sử dụng, /dev/urandom hiện được ưa thích .
David Schwartz

@SatoKatsura Nguồn? Câu trả lời của Tom mâu thuẫn với câu trả lời của bạn.
noɥʇʎԀʎzɐɹƆ

Đây là một liên kết đến trang web với các chi tiết để sao lưu bình luận của @DavidSchwartz. 2uo.de/myths-about-urandom
Walter

Câu trả lời:


86

Vô hạn.

Trong Linux, so sánh các hàm kernel được đặt tên random_readrandom_read_unlimited chỉ ra rằng từ nguyên của chữ cái utrong urandomunlimited.

Điều này được xác nhận bởi dòng 114 :

Thiết bị / dev / urandom không có giới hạn này [...]

Cập nhật:

Về phần đầu tiên dành cho Linux, /dev/randomhoặc /dev/urandom, @ Stéphane Chazelas đã đưa ra bài đăng với bản vá gốc và @StephenKitt cho thấy cả hai đều được giới thiệu đồng thời .


7
Vậy thì tại sao không /dev/randomđược đặt tên /dev/lrandom? :)
Satō Katsura

13
Lịch sử. Lúc đầu chỉ tồn tại phiên bản giới hạn / chặn. Và chức năng "không giới hạn" tương tự được gọi random_read:)
Tom Hale

10
Tôi đã tìm thấy một trong những liên kết thông qua Wikipedia, nhưng tôi đang trích dẫn nguồn trực tiếp hơn là trích dẫn Wikipedia. Tôi có thể xem nó tương tự như tìm kiếm thứ gì đó qua google và không trích dẫn google ... trừ khi tôi có điều gì đó để tìm hiểu về trích dẫn trên StackExchange?
Tom Hale

5
@TomHale Đối số lịch sử cho randomv. lrandomKhông nắm giữ tốt tất cả vì cả hai randomurandomđược giới thiệu đồng thời trong nhân Linux.
Stephen Kitt

7
Xem thêm bản vá trên usenet được gửi bởi tác giả của bản triển khai ban đầu vào năm 1995
Stéphane Chazelas

18

Nó phụ thuộc vào hệ thống "Unix" mà bạn đang nói đến.

Trên FreeBSD, / dev / urandom và / dev / Random là cùng một thiết bị. Chữ u bây giờ là một di sản lịch sử tồn tại để tương thích ngược. Khi khởi động, họ chặn cho đến khi đủ entropy được thu thập và sau đó không bao giờ chặn nữa. Xem thần thoại về urandom để biết chi tiết.

Trong thế giới Linux hiện đại (bắt đầu với kernel 4.8), cả hai thiết bị đều lấy từ cùng một CSPRNG, do đó, điểm khác biệt duy nhất là một số người suy đoán về sự tồn tại của một cuộc tấn công. Cuộc tấn công này giống như du hành FTL [Nhanh hơn ánh sáng]. Dễ dàng để suy đoán về, khá khó để thực sự thiết kế.

TLDR chỉ là sử dụng / dev / urandom.


2
Từ liên kết của bạn, thật thú vị khi lưu ý rằngFreeBSD 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.
Tom Hale

-5

Đồng phục. Các số ngẫu nhiên phân bố đồng đều giữa 0 và 1. Một phân phối phẳng ... trái ngược với phân phối cực đại như Poisson hoặc Bình thường / Gaussian.


3
Có nguồn nào cho cái đó không?
GnP

7
Điều này chắc chắn là không đúng - /dev/random/dev/urandomcả hai đều có cùng phân phối, và trong bất kỳ ý nghĩa thực tế nào, nó không được phân phối đồng đều giữa 0 và 1.
Chris

Xin lỗi ... có lẽ dựa trên ngôn ngữ khác mà tôi đã sử dụng (R hoặc một cái gì đó)
bbneo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.