norman.feske at genode-labs.com
Tue Jan 4 15:07:02 CET 2022
it in interesting to learn more about the context of your work with Go.
You said that you are not a Go programmer yourself. But to you happen to
have users of your Go runtime to get their feedback?
> Like namespaces based isolation (read: ability to have same names/id’s/etc in different domains for objects and anything provided by the Genode to user apps, together with additional related API). At least for app snapshotting, migration and persistency this is «the must». They are not so necessary for containers themselves, there are support of some platforms without it, as well without dedicated layered FS (unions and similar like auFS/btrfs/zfs/etc - while it is good to have it).
I think the two aspects OS-level virtualization and
snapshotting/persistency should best be looked at separately.
Regarding OS-level virtualization, Genode's protection domains already
provide the benefit of being light-weight - like namespaces when
compared to virtual machines - while providing much stronger isolation.
Each Genode component has its private capability space after all with no
sharing by default. Hence, OS-level virtualization on Genode comes down
to hosting two regular Genode sub systems side by side.
The snaphotting/persistency topic is not yet covered. But I see a rather
clear path towards it, at least for applications based on Genode's libc.
In fact, the libc already has the ability to replicate the state of its
application as part of the fork mechanism. Right now, this mechanism is
only used internally. But it could be taken as the basis for, e.g.,
serializing the application state into snapshot file. Vice versa,
similar to how a forked process obtains its state from the forking
process, the libc could support the ability to import a snapshot file at
startup. All this can be implemented in the libc without changing
Genode's base framework.
That being said, there is an elephant in the room, namely how POSIX
threads fit into the picture. How can the state of a multi-threaded
application be serialized in a consistent way? That would be an
interesting topic to research.
These are just my thoughts from the top of my head. I'm looking forward
to see your steps into this direction.
Dr.-Ing. Norman Feske
https://www.genode-labs.com · https://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
More information about the users