KTable and TTable
popcorn2 uses two different types to implement page tables. TTable
is used on a per-process basis, and contains the mappings for the lower half of the address space, which is specific for each process. In contrast, KTable
stores the mappings for the kernel, which are shared across every single process. On an architecture like Arm, with two separate page table registers, these map directly to the global KTable
and the TTable
for the current process. On architectures like x86, with only one hardware page table, the implementation is more complex and requires cooperation between KTable
and each TTable
instance.