[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [MirageOS-devel] Hosting a VM on Mirage
On 10 January 2015 at 14:03, Joerg Beekmann, DeepCove Labs <joerg@xxxxxxxxxxxxxxxx> wrote: > Hi > > > > I just discovered Mirage and am quite fascinated by it. Is anyone aware of > attempts to use Mirage OS as a host for a virtual machine supporting another > language? In my case I am wondering if Mirage could host the VM that runs > the Pharo Smalltalk virtual image. http://pharo.org/ . > > > > A bit of back ground, most Smalltalk systems consist of two components, a > virtual image which contains the entire state of the system including > classes, method bytecodes, user data etc. and a virtual machine that runs > the image. The image is usually bit compatible from host OS to host OS. > Pharo Smalltalk is part of the Squeak family of Smalltalk where the VM is > written in a dialect of Smalltalk called Slang, from this C code is > generated with some variations depending on host. The C code is then > complied using the platform compiler. To ease portability the Squeak family > asks as little of the host as possible, typically just memory, storage, > network, a single windowed drawing surface and, user input events. In > particular no UI or graphics system calls, the Squeak windowing system is > rendered by Squeak itself. For servers Squeak can be made to run headless > without any UI. > > > > There is a Squeak project underway to create an âembeddableâ version of > Squeak. If that existed as a C library would it be possible in principle to > host that library on Mirage OS? Any ideas on how to proceed? I looked at > http://openmirage.org/blog/modular-foreign-function-bindings and if I > understand correctly it looks like a c library could be linked to Mirage and > Mirage configured so as to call the entry point on boot. The Library could > then call back into Mirage to set sockets and other resources. > > > > If this worked for the Squeak VM I image a similar approach could be to host > other languages, for example Scheme. Actually now that I think of it a small > embeddable Scheme system may be a simpler place to start. > > > > Any comments welcome, apologies if any of this is hopelessly naÃve as > regards Mirage. Should work. You could look at the nocrypo library for an example of using ctypes to link to C code: https://github.com/mirleft/ocaml-nocrypto This shows how to get the build system to compile the cstubs definitions to C and OCaml stubs, for Unix and Xen, and then use them in the rest of the code. It would be good to have a simpler example though, and scheme might be a good place to start. Either way, you'll want to expose the bindings as a separate OPAM package and then depend on that in your unikernel, so that Mirage can generate the Makefile automatically (it can't handle C stubs provided directly by the unikernel at present). -- Dr Thomas Leonard http://0install.net/ GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA _______________________________________________ MirageOS-devel mailing list MirageOS-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |