Mac Developer Library Developer


This manual page is for Mac OS X version 10.9

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • To learn how the manual is organized or to learn about command syntax, read the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Developer Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.

RANDOM(4)                BSD Kernel Interfaces Manual                RANDOM(4)

     random , urandom -- random data source devices.

     pseudo-device random

     The random device produces uniformly distributed random byte values of potentially high quality.

     To obtain random bytes, open /dev/random for reading and read from it.

     To add entropy to the random generation system, open /dev/random for writing and write data that you
     believe to be somehow random.

     /dev/urandom is a compatibility nod to Linux. On Linux, /dev/urandom will produce lower quality output
     if the entropy pool drains, while /dev/random will prefer to block and wait for additional entropy to
     be collected.  With Yarrow, this choice and distinction is not necessary, and the two devices behave
     identically. You may use either.

     The random device implements the Yarrow pseudo random number generator algorithm and maintains its
     entropy pool.  Additional entropy is fed to the generator regularly by the SecurityServer daemon from
     random jitter measurements of the kernel.  SecurityServer is also responsible for periodically saving
     some entropy to disk and reloading it during startup to provide entropy in early system operation.

     You may feed additional entropy to the generator by writing it to the random device, though this is not
     required in a normal operating environment.

     Yarrow is a fairly resilient algorithm, and is believed to be resistant to non-root.  The quality of
     its output is however dependent on regular addition of appropriate entropy. If the SecurityServer sys-tem system
     tem daemon fails for any reason, output quality will suffer over time without any explicit indication
     from the random device itself.

     Paranoid programmers can counteract this risk somewhat by collecting entropy of their choice (e.g. from
     keystroke or mouse timings) and seeding it into random directly before obtaining important random num-bers. numbers.


     A random device appeared in the Linux operating system.

Darwin                         September 6, 2001                        Darwin

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.