The whole point of full virtualization is that you run unmodified binaries
It's simpler than that. Even at the source code level, Linux must be modified to run under Linux. The reason you can "just build with ARCH=um" is that someone has made those modifications.
When people speak of the value of a virtualization that lets you run unmodified code, they're concerned about all that code that hasn't been modified yet for that particular kind of virtual machine, and probably never will be. E.g. Windows. If there's only one program you want to run in the virtual machine (e.g. Linux), and there's already a modified version available, you can cross that concern off your list and consider UML, XEN, etc.
By the way, if you don't require a virtual machine that exactly emulates some existing real machine, then the universe of virtualization is much larger than most people see. Any Unix process is a virtual machine. Used to be, you could run only one program on a computer at a time. The invention of operating systems like Unix let you have essentially (virtually) multiple computers based on a single piece of hardware, as long as you were willing to modify your programs for a different environment.
Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds