Weekly Notes for Week 22

There are no lectures this week, and there is a final tutorial session on Monday.

Tutorial Session Week 22

Please prepare for week 22 the following exercises:

Chapter 17

  1. (important) Capability lists are usually kept within the address space of the user. How does the system ensure that the user cannot modify the contents of the list?

  2. The access-control matrix can be used to determine whether a process can switch from, say, domain A to domain B and enjoy the access privileges of domain B. Is this approach equivalent to including the access privileges of domain B in those of domain A?

  3. What hardware features does a computer system need for efficient capability manipulation? Can these features be used for memory protection?

  4. Discuss the strengths and weaknesses of implementing an access matrix using capabilities that are associated with domains.

  5. (important) What is the need-to-know principle? Why is it important for a protection system to adhere to this principle?

  6. Describe how the Java protection model would be compromised if a Java program were allowed to directly alter the annotations of its stack frame.

  7. (important) How does the principle of least privilege aid in the creation of protection systems?

Chapter 18

  1. (important) Describe the three types of traditional hypervisors.

  2. (important) Describe four virtualization-like execution environments, and explain how they differ from “true” virtualization.

  3. (important) Why are VMMs unable to implement trap-and-emulate-based virtualization on some CPUs? Lacking the ability to trap and emulate, what method can a VMM use to implement virtualization?

  4. (important) What hardware assistance for virtualization can be provided by modern CPUs?

  5. (important) What is docker? What is a docker image? What is a docker container?

  6. (important) What is a unikernel?