解决VMware运行MS-DOS 5以上版本使用较大内存开机卡HIMEM内存自检的问题

2022/5/1 7:12:59

本文主要是介绍解决VMware运行MS-DOS 5以上版本使用较大内存开机卡HIMEM内存自检的问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!


回想上世纪末各种计算机设备内存刚刚开始容量增长的时代,软件的更新似乎显得有些跟不上硬件的进步。与此同时伴随着的自然是硬件升级的需求。在这样的前提下,“扩充内存”和“扩展内存”的概念便应运而生。电脑不再局限于只能使用固定容量的内存,而是可以通过安装扩充内存的方式,来按需求增加内存以满足使用需要。由此引申出了很多规范和标准。然而,使用扩充内存必须在计算机中安装专门的扩充内存板,而且还要安装管理扩充内存板的管理程序。由于扩充内存是在扩展内存之前推出的,由于扩充内存使用起来比较麻烦,所以在扩展内存出现后不久就被淘汰了。虽然相比之后的扩展内存这样的设计还是有一定局限性,但在一定程度上确实开创了硬件升级的先河。

更先进的扩展内存技术只能用在80286或更高档次的机器上,几乎所有使用DOS的机器上超过1M的内存都是扩展内存。扩展内存同样不能被DOS直接使用,而是需要使用相应的管理程序进行处理。于是在DOS5.0以后出现了Himem.sys这个扩展内存管理程序,我们可以通过它来管理扩展内存。

可参考:百度百科-扩充内存

而时过境迁,计算机发展至如今,8G16G等内存早已屡见不鲜。而这对于像我这样总想怀旧的人有些阻碍。我在虚拟机里安装这些老旧系统时,总会想着将内存分配的多一点(让这些老玩意见识见识什么叫超级计算机(雾))那么以MS-DOS 6.22为例,每次开机我便不得不面临一个很该死的问题——它开机会做扩展内存自检……

也就是说,每次开机,你都要忍受这么一行字闪啊闪闪得没完没了...

HIMEM is testing extended memory...

原因很简单——VMware的虚拟机认为你设置的内存里只有640KB是系统内存,剩下的所有都被系统当作扩展内存来用了...

看下方,只有640KB是System Memory,其他全部被视作了Extended Memory

于是,一开机HIMEM便会尽职尽责地扫描你的那些“扩展内存”...以那个年代程序的处理速度检测如今的大容量内存,那用时可想而知。


如何解决的关键在于两点:第一点就是降低虚拟机的硬件兼容性以更切合老式的设备加速处理过程,第二点就是——干脆把它关掉。

1.修改虚拟机的硬件兼容性

虚拟机->管理->更改硬件兼容性...

进入 更改硬件兼容性向导,把兼容性调到Workstation 5.x 或 6.x的版本

至此虚拟机硬件版本已经修改了,当然一些功能也会丢失。如果有需要,完事后可以再改回来。这样做是为了取得更相似于老式设备的兼容性,让我们先进入系统。

接下来的任务是混进系统修改启动设置。鉴于它会卡在这是因为内存太高,我们先暂时把内存调至最低。

现在开机,稍加等待便可以看见C:\>了,毕竟这个内存不大。

那现在我们可以修改config.sys来关掉这个开机检查项:

edit config.sys

你会看到有一行如下所述:

DEVICE=C:\DOS\HIMEM.SYS

这一行便是开机会启动HIMEM管理程序的原因。它有一个参数可以取消检查,我们只需要把这个参数加上:

DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF

输入后按Alt便可以将焦点切换至菜单。那么File->Save,最后Exit。

重启,问题解决。之后内存,系统兼容性,我们就都可以改回去了。


参考资料:1 2



这篇关于解决VMware运行MS-DOS 5以上版本使用较大内存开机卡HIMEM内存自检的问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程