User:Mduft/HigherHalf Kernel with 32-bit Paging: Difference between revisions

Content deleted Content added
No edit summary
fixed typo and tried to clarify it a bit
 
Line 241:
==== Getting the PD and PTs right ====
 
Now, to insert the PDEs in the PD, we need to habehave the correct physical addresses of the PD and PTs. Those symbols (_kernel_pd, _kernel_pt, _kernel_low_pt; we declared those above in the .data section, remember?) are assigned '''higher half''' addresses by the linker, as you will see later on, when i explain the linker script. Since the higher half addresses are merely an "alias" to the lower half addresses, we can simply subtract the offset into higher half, to get the actual physical load address of those symbols. This way, we can access them without paging enabled.
 
mov $_kernel_pd, %eax # get virtual address of kernel pd