> "In any case, the OS needs to know which address generated the Page Fault to be able to deal with the problem. This is why the nice IA32 developers set the value of cr2 to that address whenever a Page Fault occurs. The exception handler can then just look into cr2 to get the address."
The CR3 register holds address of the page table for the currently executing process and CR3 gets updated on every context switch.
Did they mean CR3? If not what is CR2? I am not familiar with the CR2 register and its significance in demand paging systems.
CR2 — Contains the page-fault linear address (the linear address that caused a page fault)
Linux and Windows have ring 3 and paging.
How can long mode require identity mapping? Do you mean for ring 0 code?
For some reason I always thought templeOS was real mode.