发新话题
打印

在内核态执行时,CR3里面应该是内核pgd地址,还是进程的pgd地址?

在内核态执行时,CR3里面应该是内核pgd地址,还是进程的pgd地址?

其实有几个问题:
1. 在内核态执行时,CR3里面应该是内核pgd地址,还是进程的pgd地址? 从用户态到内核态时, CR3是否会切换到进程的pgd地址 ?

2. 进程的pgd是否会包含内核的pgd?
我认为,这两个pdg地址是一样的,不存在切换问题。只是用户态进程和核心态访问PGD中的项受限制不同而已。
一开始内核启动时cr3中存放的是内核的pgd,但当系统切换到用户态时这里应该就是用户进程的pgd在系统运行期间进程之间也会有切换的,这个时候cr3中的内容存放的就是当前运行进程的pgd了,这是我的理解
发新话题