Device nodes on Unix-like systems do not necessarily have to correspond to physical devices. Nodes that lack this correspondence form the group of pseudo-devices. They provide various functions handled by the operating system. Some of the most commonly used (character-based) pseudo-devices include:
/dev/null
- Accepts and discards all input; produces no output.
/dev/zero
- Accepts and discards all input; produces a continuous stream of NULL (zero value) bytes.
/dev/full
- Produces a continuous stream of NULL (zero value) bytes when read, and returns a "disk full" message when written to.
/dev/random
- Produces a variable-length stream of pseudo-random or truly random numbers. (Blocking)
/dev/urandom
- Produces a variable-length stream of pseudo-random numbers. (Non-Blocking)
Read more about this topic: Device File