zerovm: add execution detail docs, with diagrams (WIP)#45
zerovm: add execution detail docs, with diagrams (WIP)#45larsbutler wants to merge 1 commit intozerovm:masterfrom larsbutler:zerovm-execution-detail
Conversation
|
Diagrams are incorrect, all FS handling is in untrusted code. |
|
Would you elaborate in a little bit more detail as to what you mean...? From what I see ZRT handles the TAR FS and while executed within untrusted memory, ZRT was still considered trusted code base...? Has this changed? |
|
There is no context switch when handling FS or any other thing by ZRT. And I'm used to 'black border rectangles' representing different contexts. :) |
|
I think that's fair. ;P However, I believe these diagrams are architecturally correct and should be added to the docs. In order to help those who are new to ZeroVM understand how this all works. Too granular detail, in one document, has the potential to cause confusion. Especially, considering the proverbial lines between ZVM and ZRT/ZVM-toolchain are quite blurred. Supporting artifacts: |
|
It kind of makes sense to lump ZRT and ZeroVM stuff together in the diagrams, but it would be false to call ZRT "trusted". I'll see if I can come up with some alternative diagrams to clarify it. |
|
What about the |
|
Lars and I just had a chat about the diagrams here in the office. @larsbutler: as we discussed, ZeroVM doesn't know anything about the tarball (except that it maps it from a file in the host filesystme to a channel inside the sandbox) and it known nothing at all about the in-memory filesystem. So I suggest moving those parts into the untrusted box or removing them altogether since they're not really part of the core ZeroVM initialization process. |
|
Tarball is not a part of the init process. The final result of the init (before execution) is a "user manifest" which is just a structure in memory with all the data that gets passed to untrusted: channel file descriptors, available memory, quotas, etc. |
The editable, source versions of the diagrams are here: