znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
阅读:2016回复:1

套套与情书:实模式与保护模式:<

楼主#
更多 发布于:2001-04-05 09:59
 
主  题:什么叫实模式,什么叫保护模式?
作  者:vcfresh
所属论坛:Visual C++
问题点数:20
回复次数:22
发表时间:2001-4-2 9:07:00
 
  概念?特点?用途?


回复贴子:
 回复人:sxbyl(痛苦的白菜) (2001-4-2 9:30:00)  得0分
概念……没背过
特点……DOS就是实模式的,现在的Winows、Unix之类东西都是保护模式的。实模式下只能访问那可怜的1M内存,要想突破这个限制,麻烦得很,你还记得DOS下那一堆什么XMS(扩充内存)、EMS(扩展内存)吧?本来是连续的64M内存,在DOS下访问,还得调用什么中断,好麻烦。Watcom C++之所以当时有些名气就是占了这个便宜,说集成开发环境,那和BC是没法比,但就因为它提供了DOS4GW支持,可以很方便的是你的程序在DOS访问4G内存,写32位的程序。
至于保护模式,特性挺多,如线性地址、虚拟内存、权限保护之类的东西都是CPU提供的功能,为开发现代操作系统提供了很多便利。
x86CPU在初始化的时候都是先进入实模式,然后操作系统再切换到保护模式。
详情你找本书看看吧。有一本《386保护模式编程》你可以看看,写得挺多。  
 回复人:vcfresh(fresh) (2001-4-2 11:20:00)  得0分
为什么实模式只能访问1M内存,而保护模式能访问全部内存?
为什么叫"实"和"保护"呢?  
 回复人:sxbyl(痛苦的白菜) (2001-4-2 11:41:00)  得0分
你还挺喜欢敲沙锅的……
我估计你没看过汇编,如果你一定想搞清楚的话,建议先看看汇编的书,正规的汇编书也会涉及到一些保护模式的资料。(教材通常不会涉及)  
 回复人:vcfresh(fresh) (2001-4-2 14:12:00)  得0分
faint,我看过汇编的书呀,好象没讲耶!  
 回复人:sxbyl(痛苦的白菜) (2001-4-2 14:19:00)  得0分
关于为什么实模式只能访问1M内存,通常都是汇编书的开胃菜啊,你看的什么书啊?赶紧扔了换一本算了。  
 回复人:sxbyl(痛苦的白菜) (2001-4-2 14:20:00)  得0分
关于为什么实模式只能访问1M内存,通常都是汇编书的开胃菜啊,你看的什么书啊?赶尽扔了换一本算了。  
 回复人:vcbear(会飞的熊熊,苯苯的那种) (2001-4-2 15:02:00)  得0分
这个....看到讨论的好玩,我也来凑凑热闹。
dos下内存是很简单的,指针指向的几乎就是实际的物理地址。实模式的指针是16bit的,就是直接访问的内存是640k,640k~1M之间的内存是通过中断把页切换到640k里读写完之后又Move到640k以外的。Dos4GW又提供了别的中断来访问1M~8M以外的内存。你理解在操作系统限制的时候做这些
突破是多么“技巧”的一个年代吧。
其实386已经支持32位指针了,这时又引入了GDT,LDT等概念。怎么说呢....靠,这样吧,比如
你有一大衣柜(GDT),有无数的小抽屉(LDT)。这个抽屉是你的,那个是你MM的,你MM翻你的
抽屉就会发现套套,你翻你MM的抽屉会发现情书...所以要保护!

大概先这样,开会回来再说.....  
 回复人:vcfresh(fresh) (2001-4-2 16:52:00)  得0分
套套还需要保护吗?那不是很吃亏,有套才有安全感呀?
让MM发现套套,才知道你是个做事考虑周到,注意安全的人! :)  
 回复人:sxbyl(痛苦的白菜) (2001-4-2 17:05:00)  得0分
To:vcfresh  这就是你的不对了,你想想,你的套套被发现了,但你的MM没见你用过,这岂不是大大的Bug??唯一的理由是你和别人用套套……受死吧~~~~~~~~~  
 回复人:onion(葱头) (2001-4-2 17:30:00)  得0分
这种问题最好自己去看32位CPU芯片的资料。386/486的就可以了。  
 回复人:vcfresh(fresh) (2001-4-2 17:33:00)  得0分
套套也需要保护?现在不是提倡用套套吗?怎么还要保护,真是摸不着头脑!  
 回复人:vcbear(会飞的熊熊,苯苯的那种) (2001-4-2 17:42:00)  得0分
保护模式主要是因为系统支持了多进程和多线程,所以非保护不可,每个进程都有自己能辨认
的内存段,不能让别的进程随意访问和改写的,指针在操作到物理内存前,已经被操作系统一五一十的翻译成GDT,LDT等等表示的格式了,只有操作系统知道该块物理内存在什么地方。

到网上search一下"保护模式"吧,资料比你想象的多。当然最好还是看看书。不光是386的,
看看操作系统和NT技术内幕之类的也可以。实模式在操作系统级已经开始消亡了,在一般的
工作中基本上用不到,你能操作好 SDK的一系列内存/虚存函数就不错了。从研究上讲是应该
学学,我有时间我也想好好研究一把的。努力!总有一天变成vc_veteran的。
 
 回复人:micrack()C++是一种信仰() (2001-4-2 21:32:00)  得0分
说句话,对事不对人
从“套套还需要保护吗?那不是很吃亏,有套才有安全感呀?让MM发现套套,才知道你是个做事考虑周到,注意安全的人! :) ”
我觉得vcfresh(fresh)不是经验不足,就是悟性不高
:)  
 回复人:brucegong(飞行猪) (2001-4-3 22:14:00)  得0分



            到INTEL网站上面download pentuim CPU 的编程指南,里面很详细地讲了这个问题。该书中文版由上海科学普及出版社出版,很贵,叫个什么pentuim什么开发什么指南。


 
 回复人:crackapi(crackapi) (2001-4-4 0:17:00)  得0分
我有一套《奔腾系列用户手册》,由上海科学普及出版社出版,
其中第三卷《Pentium处理器结构与程序设计》对保护模式讲的
比较详细。原价:120元。
汇编语言教材我看的很多,大多数谈到这一点都是泛泛而论。  
 回复人:greensleeve(绿袖子) (2001-4-4 7:25:00)  得0分
所谓套套保护就是不让没有和MM用过的套套被该MM看见,但可不可以让和某个MM用过的套套被对应的MM看见呢?或者可不可以让套套被一个GG看到,并且此套套肯定没有在此GG上用过?  
 回复人:sxbyl(痛苦的白菜) (2001-4-4 8:17:00)  得0分
《386保护模式编程》讲得很详细,而且附了一个引导程序  
 回复人:vcbear(会飞的熊熊,苯苯的那种) (2001-4-4 9:17:00)  得0分
greensleeve(绿袖子)不要想的太多了,小心变成“绿帽子”呀,呵呵,得罪莫怪。 

看书了,《386保护模式编程》是不错的一本。
 
 回复人:vcfresh(fresh) (2001-4-4 16:31:00)  得0分
to micrack
说句话,对事不对人
    你说我悟性不高,难道你就看不出我说那句话的意思是话外有话吗?  
 回复人:micrack()C++是一种信仰() (2001-4-4 16:59:00)  得0分
to vcfresh:
“比如你有一大衣柜(GDT),有无数的小抽屉(LDT)。这个抽屉是你的,那个是你MM的,你MM翻你的抽屉就会发现套套,你翻你MM的抽屉会发现情书...所以要保护”
我觉得这个比喻是为了说明不让一些“人”(代码)去碰他不应该的“东西”(代码或数据),如果碰了,就会出乱子(也许系统会崩溃)。和“套套还需要保护吗?那不是很吃亏,有套才有安全感呀?让MM发现套套,才知道你是个做事考虑周到,注意安全的人! :) ”和有“没有安全感和是否注意安全”没关系,这个比喻要说明的不是“安全感和是否注意安全”
我是这样理解的,对吗?多指教  
 回复人:greensleeve(绿袖子) (2001-4-5 5:41:00)  得0分
上面这位仁兄理解得很有道理呀,这个话题很有趣,相信大家都能理解套套和MM的真正含义,这个比喻很恰当的。我认为保护的应该是小抽屉,而不应该是里面的东东,不管是套套也好,还是情书也好,关键是不能让你的MM打开你的小抽屉,你也不能打开你的MM的小抽屉,这就是老美们经常说的“人权”。不过如果哪一天你的MM真的不让你打开她的小抽屉的时候,我相信你的系统肯定会马上崩溃。:)))  
 回复人:vcbear(会飞的熊熊,苯苯的那种) (2001-4-5 8:51:00)  得0分
实际上老美实现了很多“下流卑鄙”的方法来打开别人的小抽屉,比如远程注入,
Hook,OpenProcess(windows编程内幕有讲的,老套了)...最牛B的就是保留了
一个Ring0的特权级,不管是什么进程都能用这个特权级来一下子,跟世界警察似的,
然后还有无数的后门和各种工具(比如SoftICE)。没办法,谁让windows以及保
护/实模式都是人家发明的呢。
 

 

最新喜欢:

hongsinghongsi...
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
apinke
驱动牛犊
驱动牛犊
  • 注册日期2002-02-06
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-02-06 11:19
最早期 :P的1M内存空间分配表:
from 0k to 640k:Base Memory(including dos kernel program area and application program working area).
from 640k to 704k:EGA/VGA color graphics information area
from 704k to 736k:mono_color text information area
from 736k to 768k:color text info. area
form 768k to 800k;EGA/VGA Bios program area
from 800k to 960k reserved for extern card
form 960k to 1024k:Rom Bios Runtime area

   hehe ......
游客

返回顶部