- 论坛徽章:
- 0
|
回复 #40 epegasus 的帖子
> 是不是所有的物理地址都要先映射到内核地址空间才能分配给用户用?
不是,线性映射的0-896M空间是预先映射好的,kernel可以随时access这些memory。
而high memory的话,kernel必须首先把它们map到自己的空间,得到kernel virtual address才能访问这些memory。
但是分配给用户的话,只需要把这个page的physical page frame number写到相应的page table的pte entry里就行了。所以high memory的page是没有问题的。
> 如果不是,
> 当物理内存太多了,那远多出896的物理内存是不是可以分配独立的用户空间?
> 而这个物理空间是不是 就是在内核地址空间之外的,那么这个用户空间里的值到内核空间的copy
> 改怎么做?
kernel是直接使用user space virtual address来访问的,所以copy_from_user必须在user process context里执行,因为要用到这个user process的page table |
|