On Tue, Nov 26, 2019 at 12:44 AM Waldek Kozaczuk <[email protected]>
wrote:

> Sometimes it might be more useful to think of unikernels as highly
> isolated processes instead of microVMs with a specialised guest OS. See
> Nabla processes -
> https://acmsocc.github.io/2018/slides/socc18-slides-williams.pdf.
>
> So given that I wonder if it would make sense/be feasible/applicable to
> implement limited fork/execve in OSv. It could work like this:
>
>    1. fork() starts new thread T2 - acts as "stub/proxy" to a new remote
>    microVM that would be lazily started when execve() is actually called
>
>
>    1. tid of the new thread T2 would be returned to the caller in the
>    thread T1; it would act as PID of the new process
>    2. New thread T2 would start with same code as calling thread T1 but
>    somehow (???) get 0 as the return value and continue from there (just like
>    on normal Posix OS)
>    3. T2 typically would call execve() right away
>    4.
>       - execve() would somehow communicate with host (how?) to start new
>       child VM with passed in command line, argv
>       - execve() would never return and instead wait unit the child VM
>       terminates
>       - T2 would also somehow listen for some other calls like kill() and
>       pass it to the host that would shutdown child VM
>
> Something like this is doable (and I vaguely remember someone from the
Mikelangelo project once thought about doing this), but I wonder which kind
of applications this would be useful for. I would start with finding such
an application before spending too much effort on this.


> There is obviously a plethora of various IPC mechanisms to communicate
> between processes (shared filesystem, shared memory, named semaphores,
> named semaphores, etc) so how much OSv would need to implement them to make
> such fork/execve useful, I do not know. I am also not sure if that would be
> applicable in any real-world scenarios. Maybe master-worker types of
> workloads (kind of what nginx model is).'
>
> Do not be too harsh if you think this is really stupid idea ;-)
>
> Waldek
>
> --
> You received this message because you are subscribed to the Google Groups
> "OSv Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/osv-dev/8f1e8b08-1028-4075-8298-fe72823da3cf%40googlegroups.com
> <https://groups.google.com/d/msgid/osv-dev/8f1e8b08-1028-4075-8298-fe72823da3cf%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/CANEVyjv%2BZxLquMMNPuvm7Miuv%2BYkA8h4q0G9C3eorr3vB%3Du4dg%40mail.gmail.com.

Reply via email to