Lecture: seL4

Comprehensive Formal Verification of an OS Microkernel, TOCS 2014, pp. 2:1–2:32 and seL4 Reference Manual, chapter 2

Questions

Question

Figure 3 describes the various proofs at work in seL4 and how they interact. List two types of bugs that can be prevented by these proofs (be specific about by which proof), as well as two types of bugs that cannot be prevented by these proofs.

Question

How does memory allocation work in seL4? For example, if an application wishes to allocate a new page at virtual address 0x10000000, what operations need to be performed by the kernel?

Question

Suppose we wanted to apply the seL4 methodology to verifying an OS kernel like EROS or HiStar. What would the specification be like? What kinds of changes might be needed to the design and implementation?

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).

For example, in the conclusion, formally verified software is less expensive to develop than traditionally engineered “high-assurance” software and that the cost is only about a factor of two higher than industry-standard software. Do you agree?