为什么在64位Windows中没有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位应用程序. 事实上,在64位Windows下运行32位Windows(以及16位应用程序)有几种解决方案,包括微软自己的Virtual PC. 总而言之,这只是决定停止支持(微软认为)传统平台的兼容性,有点像在Windows XP中删除16位OS / 2兼容性. (那些是16位保护模式的应用程序.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows10下安裝docker
- .net – Powershell:通过调用操作符执行命令的管道输入
- group-policy – GPO静默软件部署
- windows – 如何使批处理文件执行reg文件
- windows-phone-8.1 – WIndows Phone Runtime app短信
- 无法在Windows Server 2012中装入图像文件
- WiX ServiceInstall – 将服务设置为当前Windows用户运行
- 寻找唯一的GUID来识别Windows安装
- new []表达式不尊重Microsoft VC中的对齐方式
- Windows Server 2016中的WinRMRemoteWMIUsers__本地组在哪里
- windows-phone-8.1 – 从商店安装我自己的应用程
- Windows – 在Win 2008 R2上禁用管理员帐户
- group-policy – 组策略软件安装升级vs替换
- windows-server-2008-r2 – 可以在HyperV Window
- windows-runtime – MapControl区分用户或程序中
- windows-8 – 如何通过CLI或AHK在Windows 8中打开
- winapi – Win32入口点是否必须保留任何寄存器值
- 如何在Windows下的cmd窗口中显示日文汉字?
- PropertyRef要求ComboBox
- windows – 从WMI ExecQuery获取第一条记录