|
[视窗常识选择题]请问WoW32是否有存在?[答案在22/01/2005公布]
[复制链接]
|
|
发表于 20-1-2005 11:40 PM
|
显示全部楼层
1。请问WoW64是否支援16位元计算?
A。支持
B。不支持
小弟不明白什么叫16位元计算,如果是指真實模式(real mode),那么小弟的答案是 B 。
原因 : 在64bit里的模式不支持虛擬8086模式(virtual 8086) ,这是在64 bit architecture里所决定的。
2。请问WoW32(Windows on Windows 32)是否曾经出现过?如果有,在最先在那个Windows版本里出现过?
A。 有,在Windows 3。1
B。 有,在Windows 95
C。 有,在Windows NT 4
D。 有,在Windows 2000
E。 没有,从来没有WoW32
答案是Windows NT 3.1。既然没Windows NT 3.1, 那么选 C,Windows NT 4
原因:依照年份次序 :
1993 Windows NT 3.1 & Windows NT Workstation 3.5
1995 Windows 95
1996 Windows NT Workstation 4.0
为什么不是选Windows 95 呢?因为在windows NT 的API 是从Win16 function calls 转去Win32 function calls,而在Windows 95,Win32 function calls 转去Win16 function calls。理论上Windows 95 是不需要WoW32(Windows on Windows 32)。Windows 3。1?16 bit的windows。Windows 2000 ? 迟过Windows NT 4.0 + 用NT 的core。从来没有WoW32 ? 有可能,但是机会不是很高???
Windows XP x64 Professional 对普通的 32Bit 有增强的吗...
理论上,没有。因为,为了跑32bit 的application, Windows 需要从 64-bit mode转到 compatibility mode,更麻烦,performance没有跌已经很偷笑了。
[ Last edited by 糯米鸡 on 20-1-2005 at 11:41 PM ] |
|
|
|
|
|
|
|

楼主 |
发表于 21-1-2005 10:28 AM
|
显示全部楼层
糯米鸡,
很高兴看到你专业的解释,关于第二个题面,请问你一个问题,既然WoW32在Windows NT 3.51和Windows NT 4.0出现过,你是否曾经安装过16位元程式在有关系统?
[ Last edited by goolb78 on 21-1-2005 at 10:34 AM ] |
|
|
|
|
|
|
|
发表于 21-1-2005 12:12 PM
|
显示全部楼层
想请问Windows on Windows 32是什么来得?? |
|
|
|
|
|
|
|
发表于 21-1-2005 03:17 PM
|
显示全部楼层
goolb78 于 21-1-2005 10:28 AM 说 :
糯米鸡,
很高兴看到你专业的解释,关于第二个题面,请问你一个问题,既然WoW32在Windows NT 3.51和Windows NT 4.0出现过,你是否曾经安装过16位元程式在有关系统?
[ ...
小弟没用过Windows NT,不过理论上,一些16位元程式应该可以在Windows NT跑,应为Windows NT 应该有一个叫Command Prompt (名字可能不一样)的dos 模拟器。这个模拟器是在Virtual 8086模式行使。Virtual 8086模式是模拟real mode的环境。Windows NT/2000/XP 是在user priviledge(ring 3)行使 ,而user priviledge却缺少了很多权限,比如说它不能access一些hardware层次的东西,也缺少了一些instructions的使用权。real mode 可不同了,它可以access所有hardware和instructions,也就是说在real mode里,software有最大的权限。 这就是为什么有些16位元程式不能在Windows NT/2000/XP用,而在Windows 95/98/Me却没问题,因为Windows 95/98/Me是在kernel priviledge(ring 0) 行使, 而 ring 0 也有与real mode 同等的权限。 |
|
|
|
|
|
|
|
发表于 23-1-2005 12:42 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 23-1-2005 01:42 AM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 23-1-2005 01:16 PM
|
显示全部楼层
第一题正确答案是B
第二题正确答案是B
我会在26/1/2005年将完整地解说写出来。 |
|
|
|
|
|
|
|
发表于 23-1-2005 08:24 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 24-1-2005 02:24 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 13-10-2005 09:14 PM
|
显示全部楼层
原帖由 goolb78 于 23-1-2005 01:16 PM 发表
第一题正确答案是B
第二题正确答案是B
我会在26/1/2005年将完整地解说写出来。
呵呵,到现在都还未解答
现在已经13/10/2005了
时间过了那么久,楼主都还未解答的  |
|
|
|
|
|
|
|
发表于 15-10-2005 11:37 AM
|
显示全部楼层
虽然有了答案,不过我还想试试:
1,我答错,因为我以为它一定会backward-compatible。
2,我的答案是在win95和winNT之间。
因为这两个系统已经开始在 “可执行” 档用PE格式。PE格式用的是32bits 指令,那也就是说OS是支持32bits。win3.1用的是NE格式。NE格式只用到16bits。
通过disassembly,可以发现PE格式所用的是32bits指令和register(记存器),例如:
push 00434B29,push ESI, mov EAX,EDI等等。ESI,EAX和EDI都是32bits register。
SI,AX和DI是16 bits register(听说64bits用的register是RSI,RAX和RDI之类的东东)。
据我所知,win95启动时还需要通过Ms DOS,winNT和win2k以上才开始摆脱Ms DOS。
那么win95能不能算是wow32就有点......
ps, 原来这题目这么旧了......楼主失踪了?我也想知道解答。
[ 本帖最后由 meemee 于 15-10-2005 11:39 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 15-10-2005 12:42 PM
|
显示全部楼层
原帖由 meemee 于 15-10-2005 11:37 AM 发表
虽然有了答案,不过我还想试试:
1,我答错,因为我以为它一定会backward-compatible。
2,我的答案是在win95和winNT之间。
因为这两个系统已经开始在 “可执行” 档用PE格式。PE格式用的是32bits 指令,那 ...
64bit 有分两个模式:long mode和compatibility mode。在long mode,处理器是在64bit的“真正“环境, 在这里, 记存器是64bit的(RAX, RBX, RCX ,....RXX), 但是还是可以用lower 32bit 的记存器(EAX, EBX, ECX....), 在这个模式里面,软件必须是纯64bit的 . compatibility mode里面,在这里记存器的长度是32bit, 所以不能用64bit的记存器,这个模式是拿来跑32bit的软件, 不能用64bit的软件。
你用的diassembler都是32bit的,所以不能diassemble 64bit的软件。 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|