-----Original Message----- From: Pharo-dev [mailto:pharo-dev-bounces@lists.pharo.org] On Behalf Of Alain Rastoul Sent: Wednesday, January 14, 2015 10:39 PM To: pharo-dev@lists.pharo.org Subject: Re: [Pharo-dev] Hosting the Pharo VM on MirageOS
Le 15/01/2015 03:08, Joerg Beekmann, DeepCove Labs a écrit :
I was not planning specializing the VM for the image. But rather link in a VM with everything needed to run a range of images. The dependencies are handled by creating an OCAML module that expresses
these and the VM code then lives in the module. The OCAML dependence analyser (a sat solver) then ensures those are satisfied.
But if you don't have a specialized smalltalk vm and image, you will have to embed full system dependencies, in order to build a full working smalltalk system (having most part not working could be a very bad thing), and then you loose the unikernel approach benefits (very lean dedicated system, small attack surface etc.). My implicit assumption was that these VM would be designed for running headless web-services on smaller EC2 instances. And perhaps naively was thinking that the number of system dependencies would be quite low:
- memory - CPU - networking stack - http/https - no file system but access to block storage (or perhaps even link image in so no storage at all) - mirage is single threaded with green threads so no multithreading/processing It may be possible to configure things on a per-image basis but I've not gotten that ambitious. The way to do this on the mirage side is to adjust the dependences stated in the module that wraps the VM. I don't know how the image could affect the code that goes into the VM. By modifying the VMMaker I suppose.
And yo uget a standard vm, call it NOS, NONOS or whatever :)
May be have a look at Spoon (suggested by Craig) and Seed and Hazelnut http://rmod.inria.fr/web/software/Seed
-- Regards,
Alain