Does Posix require any devices? For example, /dev/urandom, /dev/zero or /dev/null?
I suspect not because of non-*nix OSes, but wanted to ask for completeness.
POSIX general defines three special files:
In addition, / and /tmp are also defined by POSIX.
/dev/zero, /dev/urandom or /dev/random are defined in some UNIX-like operating systems. Some operating systems may not define them, or implement with different names.
Note
nul and console on Windows, but I don't believe I've ever seen tty. nul and console aren't related to Unix's /dev/null and /dev/console except in some indirect historical way. The names nul and console were inherited from CP/M (which didn't have directories); CP/M/DOS/Windows's nul means the same thing as unix's /dev/null but console under DOS and Windows means a serial port, not the console like on unix systems. If you run an application in Windows's POSIX subsystem (or in another POSIX implementation on top of Windows), you will get /dev/null, /dev/tty and /dev/console. console is to UNIX's /dev/tty1 or Plan9's /dev/console. But historically meant the keyboard and mouse or stdin. While serial ports was over COM{1..4} or AUX, and parallel ports was over LPT{1-4}.
/dev/null /dev/tty... and ... maybe that's it. It also requires the/tmppath. I know because I once asked a similar question. Oh, and/dev/console.