当前位置: 技术问答>linux和unix
关于内存管理的一些疑问
来源: 互联网 发布时间:2017-05-05
本文导语: 最近学习了linux内存管理 有一些疑问一直不太清楚 1、有人说分段是问了兼容8086的分段机制不能关闭,淡深入linux内核书中说分段后有四个常用段 用户代码段内核代码段用户数据段用户代码段 并且这些段的起...
最近学习了linux内存管理 有一些疑问一直不太清楚
1、有人说分段是问了兼容8086的分段机制不能关闭,淡深入linux内核书中说分段后有四个常用段 用户代码段内核代码段用户数据段用户代码段 并且这些段的起始地址都是0,我想问那这样是不是采用得现代操作系统上所说的分段分页结合模式,即代码段和数据段使用的是分别单独的4g地址空间分页的时候每个段有各自的页表?
还是代码段和数据段并没有单独的地址空间也就没有单独 的页表,一个进程使用的只有一个4g的地址空间?哪种理解是对的呢?
2、既然分段中已经将内核空间和用户空间分为了两个空间 ,那为什么分页时又将4g空间分为1g和3g?
3、内核地址空间1g映射中有894m是不是映射在物理地址上由所有进程共享?既所有进程使用这部分线性地址都指向相同的物理地址 想确定下
4、内核地址空间固定映射区作用是什么。
5、 永久内存映射区用来访问高端内存那为什么要叫永久内存映射区 (这个问题可能有点白痴了)
问了好多 求好心人指教
1、有人说分段是问了兼容8086的分段机制不能关闭,淡深入linux内核书中说分段后有四个常用段 用户代码段内核代码段用户数据段用户代码段 并且这些段的起始地址都是0,我想问那这样是不是采用得现代操作系统上所说的分段分页结合模式,即代码段和数据段使用的是分别单独的4g地址空间分页的时候每个段有各自的页表?
还是代码段和数据段并没有单独的地址空间也就没有单独 的页表,一个进程使用的只有一个4g的地址空间?哪种理解是对的呢?
2、既然分段中已经将内核空间和用户空间分为了两个空间 ,那为什么分页时又将4g空间分为1g和3g?
3、内核地址空间1g映射中有894m是不是映射在物理地址上由所有进程共享?既所有进程使用这部分线性地址都指向相同的物理地址 想确定下
4、内核地址空间固定映射区作用是什么。
5、 永久内存映射区用来访问高端内存那为什么要叫永久内存映射区 (这个问题可能有点白痴了)
问了好多 求好心人指教
|
1. linux吧数据段代码段都设置成0,那么他们只能共享4G空间了。没有单独页表
2. 3G,1G是内核自己定义的,为了方便,区分权限靠段。
3. 内核的空间是共享的,确实是用共同的地址。
4. 固定映射区是用来映射高端内存的,因为内核空间地址太少了,不够用。
5. 永久只是名字叫永久,他就是来维护固定映射区的,显然大内存时这个块内存会一直在,所以故名思议。
2. 3G,1G是内核自己定义的,为了方便,区分权限靠段。
3. 内核的空间是共享的,确实是用共同的地址。
4. 固定映射区是用来映射高端内存的,因为内核空间地址太少了,不够用。
5. 永久只是名字叫永久,他就是来维护固定映射区的,显然大内存时这个块内存会一直在,所以故名思议。