All devices accessible inside the virtual machine are themselves virtual.
They are constructed from the appropriate abstractions provided by the host. However, on a physical machine, consoles and serial ports are different physical devices. On UML, there is no real distinction, so they share most of their code. Both can be attached to a variety of host devices, including ttys, ptys, pts devices, xterms, sockets, and already-existing file descriptors. Block devices UML has a single block driver which provides access to anything on the host which can be mounted.