Win9x在Intel和AMD新处理器虚拟机抽风的原因及补丁
Win9x在Intel和AMD新处理器虚拟机抽风主要有以下两个原因:
1、Win95OSR2、Win98第一版的NDIS.VXD和VMM32.VXD中的IOS.VXD等VXD文件调用GetSystemTime在CPU频率和IPC过快的情况下会两次返回相同的值,两者相减作除数,发生除以零错误,导致安装完成后进系统文字模式报NDIS或IOS等错误死机(另外虽然Win2000不属于Win9x,但Win2000在CPU过快的机器上的VMware上安装时也有机会在安装Distributed Transaction Coordinator时安装程序闪退重启)
2、Win98第一版、Win98第二版、WinMe的VMM32.VXD中的VMM.VXD中的FlushMappedCacheBlock函数在修改页表并访问数据时使用了错误的操作顺序
VMM.VXD中使用了如下错误的操作顺序:
- 清除TLB(CPU内部的页表转换缓存,可使用mov cr3或invlpg指令清除)
- 修改内存中的页表项
- 访问新页表项指向的内存
正确的操作顺序是:
- 修改内存中的页表项
- 清除TLB(CPU内部的页表转换缓存,可使用mov cr3或invlpg指令清除)
- 访问新页表项指向的内存
新处理器,如AMD Ryzen 3000+(可能更早的也有问题)、Intel 11代Core i系列桌面处理器和Intel 10代Core i系列笔记本处理器以后的处理器,对于预取操作进行了较为激进的优化,对TLB也进行了预取,导致Win98第一版、Win98第二版、WinMe在修改内存中的页表项操作之前,为之后的指令预取了错误的数据,由于主要影响的是磁盘缓存,因此导致了数据随机出错,进而导致系统运行时随机报错,甚至磁盘文件损坏
- Win98第二版抽风最严重,安装时就会报非法操作,无法完成安装
- Win98第一版可以完成安装,但抽风频率较高
- WinMe抽风频率较低,但仍有可能导致磁盘文件损坏,特别是正常模式整理磁盘碎片会直接导致系统损坏
- Win95和Win95OSR2并不能观测到这个问题的典型抽风现象
这两个问题不使用补丁的解决方案:
1、Win9x暂时没有很好的解决方案(Win2000安装时重启的问题可以使用VirtualBox安装解决)
2、可以通过在VMware中将硬盘控制器设置为SATA,由于Win98/Me没有SATA的32位硬盘控制器驱动程序,读写硬盘时会进入DOS模式读写,避免了抽风问题
对于Win9x的这两个问题,有人写了一个非官方的补丁,在安装时可使用这个补丁修补系统文件的问题:
JHRobotics/patcher9x: Patch for Windows 9x to fix CPU issues (github.com)
Win98第一版、Win98第二版、WinMe使用方法:
- 正常安装Win,第一次重启前插入patcher9x软盘,重启进入FreeDOS
- 输入patch9x回车
- 输入c:\windows\system回车(也可以直接回车)
- 输入2回车(也可以直接回车,选择2: patch files, VMM32.VXD will be patched directly)
- 输入y回车,应用补丁
- 按回车退回FreeDOS,拔出patcher9x软盘,按Ctrl-Alt-Del重启
- 安装Q242161 (98 FE), Q288430 (98 SE), ME296773 (Me)补丁后需重复以上步骤
- 注意千万不要在未应用补丁的Win98/98SE/Me系统中执行patch9x,否则可能导致系统文件损坏
Win95OSR2使用方法:
- 使用Win98启动盘将光盘中的win95文件夹复制到c:\win95
- 插入patcher9x软盘,输入a:\patch9x回车
- 输入c:\win95回车
- 输入4回车(选择4: scan *.CAB archives, extract files and patch them (VMM32 directly))
- 输入y回车,应用补丁
- 按回车退回DOS
- 进入c:\win95文件夹,输入setup回车开始安装
- 注意千万不要对Win95RTM/OSR1系统应用这个补丁,否则会导致系统文件损坏
参考资料:
Windows 9x TLB Invalidation Bug « Blog (stuffedcow.net)
TLB and Pagewalk Coherence in x86 Processors « Blog (stuffedcow.net)
Win9x在Intel和AMD新处理器虚拟机抽风的原因及补丁相关推荐
- 服务器cpu支持DDR4,迟来的惊喜 AMD新处理器支持DDR4内存
因为AMD的CPU中集成了内存控制器,所以只要内存条换代,处理器的接口必定会换装,从Socket AM2.AM3一路过来都是这样.接下来的x86平台包括Zen处理器和APU(Bristol Ridge ...
- 国产处理器再获重大突破,走出国门挑战Intel和AMD
据媒体报道指海外PC厂商Dannie已推出了一款支持国产兆芯处理器的主板,这代表着国产处理器已不仅在国内市场替代Intel和AMD,还开始走向海外市场,代表着国产芯片的重大突破. 兆芯推出的处理器为X ...
- amd 服务器cpu型号怎么看,Intel还是AMD?10个问题看懂CPU该如何选
很多DIY新手在装机选购CPU的过程中都容易陷入一些误区中,比如盲目追求CPU核心数量.认为旗舰产品就一定好于主流产品等.本次,我们就通过十个DIY新手在选购CPU过程中常见的问题,来为大家普及一下C ...
- Intel、AMD和Arm 告警:注意新的推断执行CPU漏洞!
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 安全研究员发现了绕过Intel.AMD和Arm公司现代计算机处理器中基于硬件的推断执行防御措施. 今天,这三家CPU厂商发布安全公告并发布缓解更 ...
- 干掉Intel、AMD?国产处理器架构都有哪些?
6月底公布的最新一期TOP500超算排行榜中,中国的神威·太湖之光低调地挤下了六连霸的同胞兄弟天河2号,成为首款理论性能达到10亿亿次的超算,将 天河2号之前保持的性能往前推进了一个量级,晋级新的世界 ...
- AMD Ryzen 处理器 使用 VMWare 安装 Mac OS 虚拟机详细记录
之前在Inter处理器上装过Mac虚拟机,后来硬件更新,换了 AMD 3600,发现虚拟机打不开了,显示客户机已禁用CPU.无奈只能寻找解决方法.在折腾几天,几度绝望之后,终于在综合许多攻略的基础上成 ...
- AMD:别黑我了,你们要的新处理器马上来
长期以往,PC爱好者们通常都会依据个人喜好分为两大派系:偏爱高性能低能耗的Intel派,以及偏爱性价比的农企派,通常情况下不会有人选择保持中立.但AMD认为,其即将发布的新一代旗舰芯片Zen将改变这一 ...
- Intel和AMD处理器各有什么特点?该如何选择?
上篇文章为大家介绍了NVIDIA显卡和ATI显卡的孰优孰劣?,这一篇侠客岛为大家介绍下关于CPU厂商的两大巨头Intel和AMD! 目前两大CPU巨头的竞争可为惨烈,竞争越激烈对于我们消费者来说,可谓 ...
- AMD新推两款3GHz双核Opteron处理器 耗电更大
AMD新推两款3GHz双核Opteron处理器 耗电更大[@more@][赛迪网讯]4月22日消息,芯片厂商AMD已经开始悄悄地销售新的3GHz版本的双核Opteron服务器处理器. 据CNET Ne ...
最新文章
- 如何查看CISCO FWSM上ACL分区的空闲资源
- mysql 只允许本地登陆 centos,Centos中MySQL设置密码跟不允许匿名登陆
- vsnprintf的作用和使用
- 项目进度管理:控制进度
- 学会Python正则表达式,就看这20个例子~
- Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))
- 用JavaScript fetch API取数据遇到CORS policy问题
- (ZT)VC++的链接错误LNK2001
- 智商145!比利时神童9岁读完大学,成史上最年轻大学毕业生
- C语言 strcpy函数实现
- [C++ Quiz] Intermediate level
- Android 百度地图开发详解
- Linux教程+操作系统教程
- Http状态代码指示
- 我希望进入大学时就能知道的一些事儿
- mysql报1114错误_mysql插入数据出现error1114 table is full
- IOS手机长按图片无法弹出识别二维码
- Revit API: Dimension 尺寸标注
- elementUI表格气泡乱串、闪烁、位置偏移问题解决(自制气泡,计算位置,箭头永远指向当前元素)
- ANDROID 系统下载