[−][src]Module sunrise_kernel::paging::kernel_memory
The management of kernel memory
j-------------------------------j j---------------------j | Process Memory | | Kernel Memory | j-------------------------------j j---------------------j | | j-----------------------j | | Userspace Bookkeeping | | j-----------------------j | | | j--------------------------------+----------------~-----j | User Land | Kernel Land | RTL | j--------------------------------+----------------~-----j Page tables
We choose to separate UserLand and KernelLand + RecursiveTablesLand memory management. This way we can allow concurrent access on different lands, and modifying the kernel memory directly accesses the active page tables, without need to lock the ProcessStruct.
This solves the problem of accessing the page tables in an early state, where there is no current process yet.
Structs
KernelMemory | A struct that acts on KernelLand and RecursiveTablesLand. |
Statics
KERNEL_MEMORY | A mutex protecting the KernelMemory manager. |
Functions
get_kernel_memory | Locks the KERNEL_MEMORY |