To write a kernel module that displays relevant kernel segment information, we need to know how exactly to interrogate the kernel with regard to these details. In this section, we will briefly describe a few key macros and variables within the kernel representing the memory of the kernel segment (on most architectures, in descending order by KVA):
- The vector table is a common OS data structure – it's an array of function pointers (aka a switching or jump table). It is arch-specific: ARM-32 uses it to initialize its vectors such that when a processor exception or mode change (such as an interrupt, syscall, page fault, MMU abort, and so on) occurs, the processor knows what code to run:
Macro or variable |
Interpretation |
VECTORS_BASE | Typically ARM-32 only; start KVA of a kernel vector table spanning 1 page |
- The fix map region is a range of compile-time special or reserved virtual addresses; they are employed...