-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What is gVisor? -- explain where runsc is at in the diagram... #11088
Comments
Hi @JustinCappos, good question! We've been meaning to update that page for sometime, but this is a good prompt to actually get it done :). While we work on that, you may be interested in the slides from a talk I gave earlier this year that have more in depth diagrams illustrating how gVisor works. |
Hi @JustinCappos. On top of the link @manninglucas provided, I also suggest looking at a recent blog post from Dangerzone on its integration of gVisor. While it doesn't map to the typical gVisor use-case of using To answer your question more precisely: |
Thanks, I took a look. This really helps! In the article I see:
One question I had is how system calls which must be applied to the local process are implemented. I totally understand how proxying I/O works to Gofer, but what if the application running wants to fork, exec, etc.? I would think this needs to be done by the isolated process directly but from what I understand from reading the article, those calls are blocked by the Sentry... |
If the sandboxed application You can try it out by doing something like this:
Then, while this is running, you can run this outside the sandbox (directly on the host):
|
Thanks for the replies @EtiennePerot @manninglucas I'm a student working with Justin. Had a few more questions. Is gvisor using SFI to run multiple applications in the same process? Are there any diagrams specifically about fork, or can you point us to the source code? Thanks! |
|
I'm trying to dive deeper and understand the project. The diagram above "What is runsc?" shows a set of processes that gVisor starts but it doesn't show runsc. Does this start and then exit? Where would this be in the diagram?
On a related note, I'm curious to understand what the diagram would look like after fork + exec occurs. I'm curious to understand where these calls are made and what happens in this case.
(I'll look at the codebase to try to understand this, but other newbs might have similar confusion.)
The text was updated successfully, but these errors were encountered: