Machines and Kernels
Of course, we spent more time getting into machines and kernels
than I had hoped. It will not be the last time.
I want to point out that there is some material in other
parts of the SK text pertaining to some of the questions
and discussion that
came up in class.
In particular, Chapter 5 discusses virtualization
and related topics at the hardware/software interface. Most of it
pertains to threads, which we will discuss later, but there are a
few pieces that are relevant:
Booting.
Page 5-53 has a sidebar
5-3 that explains booting. At some point we will come back and
talk about secure booting and how applications can know that the
OS can be trusted to protect them, and why some people view
that as a threat.
Address translation: hardware vs. software.
5.C talks about virtualizing memory, and the role of the
TLB and page tables. It mentions the issue of TLB invalidation
(shootdown): if the kernel breaks a virtual-physical mapping, e.g.,
to free up a physical page frame to hold some other virtual
page, then it must be sure to invalidate the translation in the TLB.
Questions: does it have to invalidate the TLB when it establishes a new
translation without destroying an old one? What if it reduces the
access modes permitted for a translation, e.g., disables write permission
on a page? What if it enables write permission?
Don't worry about the material on segmentation in 5.C.
Device interrupts.
Section 5.E.4 talks about
device interrupts. Most modern devices interrupt the processor when
they complete an operation, rather than requiring the processor to
poll device registers to discover when an operation is complete.