Notes:


Normally, something is either in userspace in the kernel, but never both. However, UML can be looked as being both. It is obviously a process from the point of view of the host. It can be manipulated in all ways as a process on the host.
However, in a number of other ways, it is clearly a kernel. It is a kernel from the point of view of its processes. It is also clearly a kernel when you look at its code and its structure.
On the other hand, the lowest level of the architecture code, which interacts with the host, is userspace code.