Summary
Through this chapter, we have touched base with interrupts, the various components that fabricate the whole infrastructure, and how the kernel manages it efficiently. We understood how the kernel engages abstraction to smoothly handle varied interrupt signals routed from various controllers. The kernel's effort in simplifying complex programming approaches is again brought to the fore through the high-level interrupt-management interfaces. We also stretched our understanding on all the key routines and important data structures of the interrupt subsystem. We also explored kernel mechanisms for handling deferred work.
In the next chapter, we will explore the kernel's timekeeping subsystem to understand key concepts such as time measurement, interval timers, and timeout and delay routines.