For instance when /dev/null is written to, the kernel tells the program it wrote everything to it (without actually writing it anywhere), and when read from, the reading program is told that it has reached the end of the file.

It is a device file (it can be made with mknod for instance), but does not reference any hardware.

DOS-, Windows- and OS/2-like operating systems define the NUL device that performs a similar function (but is implemented as part of the file name processing – no actual file exists by that name).

Read the rest of the article here