| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1006 人关注过本帖, 1 人收藏
标题:程序的内存结构-入门篇
只看楼主 加入收藏
qh78560
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-3-13
收藏(1)
 问题点数:0 回复次数:7 
程序的内存结构-入门篇
标 题:程序的内存结构-入门篇  
作者:xcode
网站:http://edu.

如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄漏,比如悬挂指针。我们的就从内存开始吧,准备好了吗? Let’s go!

Win32的可执行文件在加载后,系统将为它建立一个它自己的虚拟内存空间,即进程空间,其容量达4G。这4G的空间划分为了几个区域,对于win98和win2000是不尽相同的。
内存大小的描述单位是:字节

1. NULL指针分区是NULL指针的地址范围。
    对这个区域的读写企图都将引发访问违规。
2. DOS/WIN16分区是98中专门用于16位的
    DOS和windows程序运行的空间,所有的16
    位程序将共享这个4M的空间。Win2000中不
    存在这个分区,16位程序也会拥有自己独立的虚拟地址空间。有的文章中称win2000中不能运行16位程序,是不确切的。
3.用户分区是进程的私有领域,Win2000中,程序的可执行代码和其它用户模块均加载在这里,内存映射文件也会加载在这里。Win98中的系统共享DLL和内存映射文件则加载在共享分区中。
4.禁止访问分区只有在win2000中有。这个分区是用户分区和内核分区之间的一个隔离带,目的是为了防止用户程序违规访问内核分区。
5. MMF分区只有win98中有,所有的内存映射文件和系统共享DLL将加载在这个地址。而2000中则将其加载到用户分区。
6. 内核方式分区对用户的程序来说是禁止访问的,操作系统的代码在此。内核对象也驻留在此。
另外要说明的是,win98中对于内核分区本也应该提供保护的,但遗憾的是并没有做到,因而98中程序可以访问内核分区的地址空间。
对于用户分区,又可以细分成若干区域。(这些区域具体会在第四阶段详细剖析。因为这部分内容牵扯到PE文件结构,只有学习并理解了PE文件结构后,才能理解这部分内容,为了便于后面的讲解,在此讲这部分区域先大致分为4块:)


更多精彩内容,关注网站:http://edu.
搜索更多相关主题的帖子: 内存 入门 结构 
2008-03-13 09:14
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你在做广告吧?

学习需要安静。。海盗要重新来过。。
2008-03-13 09:26
wfx_best
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-7-19
收藏
得分:0 
说得很好,但让我们怎么相信你呢,楼主?
你说的那个网站

艺痴者技必良
2008-03-13 11:04
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
买本操作系统看最好

Fight  to win  or  die...
2008-03-13 12:53
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
我现在 正在 学 操作系统呢  很枯燥
根本看不懂 是什么意思
真的不知道 学这个有什么用 啊
2008-03-13 13:33
七黑黑
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-3-11
收藏
得分:0 
我靠!就这么点??
2008-03-17 12:08
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
回复 3# 的帖子
我验过正身了,确实不错的,网站!!代楼主发个ad
空中课堂
http://edu.
2008-03-17 12:24
快速回复:程序的内存结构-入门篇
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015382 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved