Comprehensive Formal Verification of an OS Microkernel, TOCS 2014, pp. 2:1–2:32 and seL4 Reference Manual, chapter 2
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.
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?
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?
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?