这是在 20CN网络安全小组第一代论坛 的论坛 编程破解 中的主题 WIN32内存讨论


要查看这个主题,请使用这个 URL:
http://www.20cn.net/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic;f=5;t=000061

病毒 发表于 :
 
milanfeng 于 2001-04-26 09:14:43 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(132bytes):

有谁能把虚拟内存,文件映射,堆栈这三者“结合”起来说一下。
我先开一个头:当要准备运行进程A(或打开文件A)时,内存的操作为........


病毒 于 2001-04-26 18:19:13 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(351bytes):

WIN32为每个进程分配4GB的虚拟内存空间,是这样分配的,0-4M和2G-3G为共享内存段,所有进呈都可用32位指针访问,4M-2G为应用程序段,映射给每个进程,在该段中,进程只能访问自己的线性地址。3G-4G为系统核心段,大布分为vxd,只有ring 0级代码可访问。其中从0x80000000到0xBFFFFFFF的1GB空间由所有的WIN32进程共享,内存映射文件就使用这段地址空间。(注意:以上说的是WIN 9X)


milanfeng 于 2001-04-27 08:59:14 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(67bytes):

"WIN32为每个进程分配4GB的虚拟内存空间",这个恐怕不是吧?


jouwei 于 2001-04-27 11:37:41 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(14bytes):

是的,比较多。


[ID:5679] 主题:怎么不是?

[ 转发帖子 回复此帖 相关帖子 ]

--------------------------------------------------------------------------------
病毒 于 2001-04-27 14:35:18 加贴在 编程乐园 上

--------------------------------------------------------------------------------
内容(765bytes):

怎样叫正面回答你提出的问题?

//当要准备运行进程A(或打开文件A)时,内存的操作为........

为A进程分配4GB的虚拟内存空间...

4GB这点是肯定的,(你可以随便翻本书来看看,这个是最基本的)虚拟但并不代表它真正拥有4GB的实际物理内存,而只是操作系统利用CPU的内存分页功能提供的虚拟地址空间。在一般情况下,绝大多数虚拟地址并没有物理内存与之对应,在真正可以使用这些地址空间之前,还要由操作系统提供实际的物理内存。为虚拟地址提供实际物理内存的过程叫做“提交”(Commit)。在不同情况下,系统提交的物理内存的类型是不同的,可能是RAM,也可能是硬盘模拟的虚拟内存。
你说的内存操作难道不是这些么?

还有关于内存映射你是指那种?俺理解为是为进程通讯基于页面交换文件的内存映射,
还是基于数据文件内存映射?(这种是不需要调用文件I/O的),还是可执行文件的内存映射?我想是你没有说清楚。


 


zyclql 发表于 :
 
好东西,
 




Powered by Infopop Corporation
UBB.classic™ 6.5.0
NetDemon修改版 1.5.0, 20CN网络安全小组 版权所有。