It is possible to run significant portions of uCR without special hardware. This allows programmers to develop libraries and algorithms for use with uCR without requiring physical target boards. Therefore, uCR comes with support for some virtual targets, including Linux processes.
The idea of a ``virtual target'' is to run a uCR application as a Linux process, a virtual machine that has no hardware but does allow calls to the operating environment. In this context, uCR takes the role of the C runtime and libraries. In fact, none of the Linux libraries are used, not even for the system calls. This is actually an important feature: one compiles with uCR to test software that runs under uCR, so bringing in Linux libraries would mask linkage problems and defeat the whole purpose.