- 论坛徽章:
- 0
|
>>就是Linux里面“系统空间”和“用户空间”到底是怎样划分的,基于什么样的标准来划分的?可以动态改变吗?从代码的角度,在哪里说明了哪一段是“系统空间”?哪一段是“用户空间”?
有各种角度的理解.
1.从虚拟地址的角度,进程的虚拟地址空间分系统空间和用户空间,linux上TASK_SIZE就是分水岭,可以调整.
2.从指令的角度看,系统空间就是可执行特权指令的空间.用户空间只能执行普通指令,可以互相切换.
3.从权限环的角度看,处于内环的是系统空间,处于外环的是用户空间.
4.从物理地址的角度看,物理内存分系统空间映射的内存和用户空间映射的内存,可以共享.
5.从代码的角度,段表和页表指明哪个是系统空间,哪个是用户空间.
>>“系统空间和用户空间尽管是开始的时候通过TASK_SIZE的定义把最高的1GB给了系统,但是在系统完成这一部分的初始化之后,在接下来的初始化过程中可以通过别的方式(非修改TASK_SIZE)调整系统空间和用户空间的大小,甚至可使两者交错出现”,这个观点,对吗?
可以.
>>只有系统态能访问到的空间才能称为系统空间,只要是用户进程可以直接访问的空间都是用户空间,用户进程在不经过系统调用的前提下,无法访问系统空间”,这个观点,对吗?
基本是正确的.但是从物理空间的角度看,用户进程可以和内核共享物理页. |
|