In the chapter related to the GDT, we saw that using segmentation a physical memory address is calculated using a segment selector and an offset.
In this chapter, we are going to implement paging, paging will translate a linear address from segmentation into a physical address.
Paging will allow our kernel to:
- use the hard-drive as a memory and not be limited by the machine ram memory limit
- to have a unique memory space for each process
- to allow and unallow memory space in a dynamic way
In a paged system, each process may execute in its own 4gb area of memory, without any chance of effecting any other process's memory, or the kernel's. It simplifies multitasking.