Add a blurb explaining the capability mapping support in WASI libc.

This commit is contained in:
Dan Gohman
2019-03-27 11:29:19 -07:00
parent 3ae7c60b13
commit d8242bc612

View File

@@ -107,6 +107,16 @@ hello world
Now our program runs as expected! Now our program runs as expected!
What's going on under the covers? The `--dir=` option instructs Wasmtime
to *preopen* a directory, and make it available to the program as a capability
which can be used to open files inside that directory. Now when the program
calls the C `open` function, passing it either an absolute or relative path,
the WASI libc transparently translates that path into a path that's relative to
one of the given preopened directories, if possible (using a technique based
on [libpreopen](https://github.com/musec/libpreopen). This way, we can have a
simple capability-oriented model at the system call level, while portable
application code doesn't have to do anything special.
As a brief aside, note that we used the path `.` above to grant the program As a brief aside, note that we used the path `.` above to grant the program
access to the current directory. This is needed because the mapping from access to the current directory. This is needed because the mapping from
paths to associated capabilities is performed by libc, so it's part of the paths to associated capabilities is performed by libc, so it's part of the