next up previous contents index
Next: 10.9.1 base_paging_init: create minimal Up: 10 Kernel Support Library: Previous: 10.8.7 trap_dump_panic: dump a

(X86) Base Environment: Page Translation

 

XXX diagram of function call tree?

XXX Although a ``base'' x86 paging environment is defined, it is not automatically initialized by base_cpu_init, and paging is not activated by base_cpu_load. This is because unlike segmentation, paging is an optional feature on the x86 architecture, and many simple ``kernels'' such as boot loaders would prefer to ignore it completely. Therefore, client kernels that do want the base paging environment must call the functions to initialize and activate it manually, after the basic CPU segmentation environment is set up.

XXX describe assumptions made about use of page tables, e.g. 4MB pages whenever possible, always modify/unmap _exactly_ the region that was mapped.

XXX assumes that mappings are only changed or unmapped with the same size and offset as the original mapping.

XXX does not attempt to support page table sharing in any way, since this code has no clue about the relationship between address spaces; it only knows about page directories and page tables.





University of Utah Flux Research Group