[−][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 |