Hi Alexander,
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.
Cheers Norman