一位电脑爱好者最近发现了一项深埋在苹果Mac Classic II ROM代码中的bug,连同它从未在真实的硬件上出现。这个bug是存在于32位寻址模式时会崩溃,但在24位模式下则能正常启动。
这位爱好者叫做Downtown Doug Brown,他同时也是一位开源项目MAME的忠实粉丝。他是在使用MAME模拟Mac Classic II时发现了这个bug。经过反复测试后,Brown最终确认:这个bug确实存在于Mac Classic II的ROM代码中,与模拟软件无关。
问题的核心在于,在MAME中运行引导代码时,Mac Classic II会执行一条指令,跳转到一个位于内存“A1”的无效地址,这导致下一条指令在错误的位置执行,从而引发崩溃。然而,当Brown在同一时代的Macintosh 2ci(使用摩托罗拉68030 CPU)上调试这段代码时,发现硬件采取了一种不同的处理方式,将这个无效地址“巧妙地”转换成了一个有效地址,从而跳过了这个缺陷。
这个bug的存在表明了它可以在你的认为一切都完美无瑕的地方潜伏。Brown说,这个bug并不算大问题,机器运行良好,没有人注意到。但是,他也承认:“这表明了bug可以在你认为一切都完美无瑕的地方潜伏。”
这位爱好者叫做Downtown Doug Brown,他同时也是一位开源项目MAME的忠实粉丝。他是在使用MAME模拟Mac Classic II时发现了这个bug。经过反复测试后,Brown最终确认:这个bug确实存在于Mac Classic II的ROM代码中,与模拟软件无关。
问题的核心在于,在MAME中运行引导代码时,Mac Classic II会执行一条指令,跳转到一个位于内存“A1”的无效地址,这导致下一条指令在错误的位置执行,从而引发崩溃。然而,当Brown在同一时代的Macintosh 2ci(使用摩托罗拉68030 CPU)上调试这段代码时,发现硬件采取了一种不同的处理方式,将这个无效地址“巧妙地”转换成了一个有效地址,从而跳过了这个缺陷。
这个bug的存在表明了它可以在你的认为一切都完美无瑕的地方潜伏。Brown说,这个bug并不算大问题,机器运行良好,没有人注意到。但是,他也承认:“这表明了bug可以在你认为一切都完美无瑕的地方潜伏。”