[Proposal] Split execution engine from rest of the runtime using process isolation #281
Replies: 2 comments 6 replies
-
A note from the perspective of low-TCB isolates (those not based on e.g. Linux). For some low-TCB isolate solutions, it may be much easier to implement an isolate with a static number of processes, or a small lower bound known at build-time. This shouldn't stop us from exploring richer structures within isolates, but it's worth keeping in mind. Do the features you have in mind require dynamically spawning processes within the isolate? |
Beta Was this translation helpful? Give feedback.
-
Just to add it up. The VFS can be spun out as a separate thread too. The VFS now is a shared and mutable (protected by a mutex) structure between the runtime and execution engine. Further, the execution engine, native modules, and VFS can be all organised as separate processes and all treated as service on top of runtime. |
Beta Was this translation helpful? Give feedback.
-
With Veracruz 2, we may assume that we have some operating system support within the Isolate, under which we are executing. I propose that we make use of this by splitting the Veracruz runtime into components which are isolated from each other using process-level isolation. In particular, the execution engine (the Wasm JIT/interpreter) is an obvious first choice for splitting off, given the potential security implications around JITting, with process-level isolation providing an additional layer of defence in the design of the runtime from an attacker who is able to subvert the JIT somehow.
Moreover, once the execution engine is split off from the rest of the runtime, we can experiment with making the runtime itself distributed. For example:
Beta Was this translation helpful? Give feedback.
All reactions