Scaling an existing desktop / server OS seems like a bad choice. OTOH, rather than redoing everything, it may be useful to start with built-in RTOS, such as ecos or L4, to extract some features from. In addition, some codes can be reused from QEMU.
If I did this, I would focus on hardware virtualization using VT-x and AMD-V, ignoring dynamic recompilation (if I were not the focus of your work).
In addition, it seems to me that it would be nice to already be able to write enough operating systems to create small test operating systems that can boot on bare hardware that will be used to test the hypervisor under development.
By the way, if scaling up an existing OS was a good strategy, I think it will work best on Linux or on one of the main BSDs. Darwin's use probably requires pain.
source share