Lecture: Dune

Dune: Safe User-level Access to Privileged CPU Features, OSDI 2012

Questions

Question

Why is it safe for Dune to expose privileged instructions to applications? Specifically, how can Dune prevent a malicious process from overwriting the memory of the Linux kernel/another process (e.g., by modifying %CR3 or the page table)?

Question

Dune provides speedup for handling traps and garbage collection, as shown in Section 6.2/Table 3. We have seen similar benchmarks in the exokernel paper. Compare the techniques used in both systems and briefly describe the pros/cons.

Question

Consider the following approach that doesn’t use EPT at all: let Dune expose %CR3 as read-only (i.e., a Dune process can read but cannot modify the value of %CR3), map page-table pages as read-only, and in addition provide a vmcall to modify entries in the page table. Is this safe? If so, is it slower or faster than Dune’s approach?

Question

Provide a list of questions you would like to discuss in class. Feel free to provide any comments on the paper and related topics (e.g., which parts you like and which parts you find confusing).