[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mirage support for dynamically loaded modules

Thank you Anil.

I am working with baremetal port of mirage (well on top of xen in dom0 domain) and I'm expecting to have a lot of hardware drivers which I'd like to deploy and debug without rebuild of entire mirage image. Also I'd like to have a way of upgrading software and it is better done with in-system compiler or bytecode interpreter. As far as I understood your answer mirage ocaml does have bytecode interpreter but does not support filesystem or other modules sources, am I right?
Unikernel solution is good for me for now but it is way too long to debug anything with unikernel and I expect it to become worse in future.

2013/9/9 Anil Madhavapeddy <anil@xxxxxxxxxx>
On 8 Sep 2013, at 20:25, Andrew Lekar <sam.and.tetris@xxxxxxxxx> wrote:

> Hello everyone.
> Is it possible to support dynamically load ocaml modules in mirage? So that I do not rebuild entire mirage kernel but make it once and add additional drivers later. What are the steps required to make it possible? I guess to make it work I should implement filesystem support, bytecode interpreter or ocaml compiler in mirage.

Hi Andrew,

It depends which backend you're thinking of.  In Xen, we have some patches to further make the address space immutable post-boot (by dropping the ability to alter the guest page tables or switch CR3).  In that case, you can't do dynamic loading by design.

However, without this patch, and with a suitable filesystem, network or vchan source for the dynamic module, you could do dynamic loading.  The real question is why you'd want that at all, given it's easier to recompile a Mirage instance and redeploy it rather than go through all the trouble of dynamic loading.  In many ways, that's the whole point of the Xen backend ;-)




Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.