[Mono-dev] Dynamic bootstrapping

Jonathan Pryor jonpryor at vt.edu
Thu Jan 13 17:23:15 EST 2011

I don't fully understand your scenario, but I _suspect_ that what you want is a "hypervisor,"[0] which is basically a nano-kernel (of sorts) that other OS kernels run atop as peers to one another.  There are several commercial and open-source versions, such as Xen [1], Kernel Based Virtualization [2] and VMware ESX [3].

Now, I realize that you asked for a non-virtualized solution, but iirc at least some of those permit ~direct access to hardware (e.g. video cards tend not to be virtualized), and offhand it's the only technology I can think of that is remotely close to what you're asking for.

 - Jon

[0] http://en.wikipedia.org/wiki/Hypervisor
[1] http://www.citrix.com/English/ps2/products/product.asp?contentID=683148
[2] http://www.linux-kvm.org/page/Main_Page
[3] http://en.wikipedia.org/wiki/VMware_ESX

On Jan 13, 2011, at 2:38 PM, Ianis G. Vasilev wrote:

> First - hello. Second - I wasn't sure where to ask, but I hope I asked in the right place.
> I am about to start a project and I am not sure whether a part of the project is possible. I want to know if there is any way to launch a new process in the current operating system which goes through the bootstrapping cycle in a thread separate from the loaded OS threads. Let me explain it better.
> Imagine we have a loaded operating system, for example Ubuntu Linux, and a single-core processor. I want to launch a process with Superuser permissions, which will create a thread in the current OS. That thread should give BIOS/EFI a command to load a boot image, based on the mono livecd,  without interfering the OS itself. And, what is more important – without virtualizing any hardware. Instead of using virtual machines, I want to access the hardware resources of a computer directly. This should result in two separate kernels sharing different parts of hardware resources on a computer. In other words, the goal is to create two simulated computers from one real with each kernel using its own hardware resources, i.e. dividing the hardware resources into two parts.
> I know it is probably possible by creating two custom kernels which run asynchronously and each one giving a command to run the other. With more than one processor cores it should probably be possible to run the kernels synchronously. The monitor should make a split-screen and the kernel managing the active screen should accept all the input. But is it possible to do this without modifying the no kernel?
> More simply, can the second OS run as a process in the first OS?
> In case I didn’t explain it well, I’ve included an attachment which should make it clear.
> Thank you in advance,
> Sincerely yours,
> Ianis G. Vasilev
> <Chart.png>_______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

More information about the Mono-devel-list mailing list