A virtual device
is a file such as /dev/null
or /dev/urandom, that is treated as a device, as far as user level software
is concerned, but is generated by the kernel
without reference to hardware
. For instance when /dev/null is written to the kernel tells the program it wrote everything to it, and when read from the 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.