关于内存管理的一些疑问
最近学习了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、 永久内存映射区用来访问高端内存那为什么要叫永久内存映射区 (这个问题可能有点白痴了)
问了好多 求好心人指教
...全文
相关推荐
Java内存管理的一些小疑问
"Java内存管理的一些小疑问"Java内存管理主要涉及两个区域:栈内存和堆内存。传统观念认为基础类型变量存储在栈中,对象引用存储在堆中,但这个说法并不完全准确,容易导致误解。实际上,Java内
C++内存管理pdf版
接下来,我们深入探讨堆与栈的区别,这是C++内存管理中一个常见的疑问点。堆和栈的区别主要体现在以下几个方面:1.
BitmapPixels示例中AGRB_8888疑问
总的来说,BitmapPixels示例中的AGRB_8888疑问主要涉及Android中Bitmap对象的颜色格式理解、像素操作以及内存管理。
关于操作系统的一些疑问和总结
在这个文档中,我们将深入探讨操作系统的一些关键概念、工作原理以及常见疑问。
c faq (关于c语言的诸多疑问的权威解释,值得一读)
**内存管理** - **动态内存分配**:通过`malloc`、`calloc`等函数动态分配内存,使用完毕后需通过`free`释放。


