能力值:
( LV3,RANK:20 )
|
-
-
2 楼
windows的内存地址空间最高2G还是系统内核呢。。。
内存地址空间4G范围,难道还真的要插上4G内存条才能运行?
LZ需要理解物理内存和虚拟内存的区别,同时需要理解内存管理,分段、分页、页面置换等等等等。
建议找本书看看吧,《linux内核完全注释》就可以,网上有pdf,还是彩色的插图呢。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
请问楼主看的是哪本书?求书名~
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
《Linux内核源代码情景分析》。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
这个问题真蛋疼
别说512了, 8M都行
|
能力值:
( LV11,RANK:190 )
|
-
-
6 楼
在虚拟机里装ubuntu server版,设置成512M内存,启动起来内存还剩300多M,你可以试试
其他的问题实在是太深层次了,我也不是很懂.但是你要分清两个概念,应用程序所用的内存不是直接使用物理内存,会被操作系统做一次虚拟映射,使用内存映射,即使只有512M,应用程序跑起来也会得到4G的空间,但是,这是虚拟的.
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
是可以运行的,操作系统并不是一次全部载入内存,采用分页机制,需要哪个部分再载入就可以
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
嗯,用户进程里面使用的是逻辑地址(0x0-0xBFFFFFFF),经过MMU的段式映射、页式映射,分别得到线性地址、物理地址,这个我理解。
就是看到对系统空间的描述时,我晕了:
我不理解的是这2句话是什么意思:
① “对于系统空间而言,给定一个虚拟地址x,其物理地址是从x中减去PAGE_OFFSET”
内核虚拟地址x - PAGE_OFFSET = 物理地址? 物理地址不是MMU根据段寄存器和程序中的逻辑地址经过段式映射、页式映射,得到的吗?
② “当然,CPU并不是通过这里所说的计算方法进行地址映射的,__pa()只是为内核代码中为知道与一个虚地址对应的物理地址时提供方便”
这句话不矛盾吗?CPU不通过这种方法映射,也能将内核中某个虚拟地址x映射成和__pa(x)同样的结果吗?
|
能力值:
( LV11,RANK:190 )
|
-
-
9 楼
对于第一个问题,你看紧接着的一句话,就是第二条红线下的那句话,第二个问题我不是很明白
|
|
|