加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

为什么在64位Windows中没有Win16支持?

发布时间:2021-01-18 14:54:12 所属栏目:Windows 来源:网络整理
导读:我的理解(来自维基百科)是x64指令集支持从长模式执行16位保护模式代码,但由于长模式缺少虚拟8086模式,因此无法在不退出长模式的情况下执行实模式代码.因此,真正的模式DOS应用程序无法在没有软件仿真或动态转换的Win64中运行.但是,为什么对Win16保护模式应

我的理解(来自维基百科)是x64指令集支持从长模式执行16位保护模式代码,但由于长模式缺少虚拟8086模式,因此无法在不退出长模式的情况下执行实模式代码.因此,真正的模式DOS应用程序无法在没有软件仿真或动态转换的Win64中运行.但是,为什么对Win16保护模式应用程序的支持被排除在支持它们(至少乍一看)似乎可以合理实现并且包含在较新版本的Win32中?这只是需求不足以证明实施成本合理的问题(并且win32版本已经实施),还是有一个很好的技术原因? 我认为没有任何实际的Win16保护模式应用程序.据我所知,Windows / 286及更高版本在保护模式下运行(由Microsoft称为“标准模式”或“增强模式”),但这些应用程序在技术上是实模式应用程序.

我记得曾经读过微软的一个惊喜,Windows团队想出了如何在受保护模式的操作系统下运行实模式代码.但是,在长模式下运行实模式代码的类似解决方案可能不存在.

所以问题实际上归结为a)为什么不切换到保护模式(或实模式)来运行Win16应用程序和b)为什么不包括模拟器(就像在其他非x86 NT平台上).

对于a)的答案显而易见,我认为,因为在长模式和其他模式之间切换并不是CPU支持而无需重启. OS / 2 1.x在保护模式和实模式下遇到了同样的问题,并且只提供了一个非常不优雅的解决方案.

b)的答案更难,但我认为这取决于微软根据这三点(我喜欢的名单)做出的决定:

>很少有人仍然运行16位应用程序.
>那些可以运行32位Windows来运行它们的人.
>第三方产品可以覆盖剩余的市场.

事实上,在64位Windows下运行32位Windows(以及16位应用程序)有几种解决方案,包括微软自己的Virtual PC.

总而言之,这只是决定停止支持(微软认为)传统平台的兼容性,有点像在Windows XP中删除16位OS / 2兼容性. (那些是16位保护模式的应用程序.)

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读