与Windows XP很少出现蓝屏不同,我记得当我使用Windows 98时,它经常出现蓝屏。
Windows 98 是否存在问题导致它特别不稳定?
答案1
BSOD 的主要原因是驱动程序中未处理的异常,系统无法从中恢复。事情发生变化的主要原因是新的驱动程序系统(波分复用)比旧系统稳定得多(病毒) 处理边缘情况。现在,您只会在事件日志中收到错误,而不是驱动程序错误导致的 BSOD,而该错误还不足以导致系统崩溃。
另一个因素是微软已经推出了更多资源供开发人员使用以编写更好的代码。
第三个因素(billc.cn 提醒了我,这可能比驱动程序问题更常见)从 Windows XP 开始,访问另一个正在运行的程序的 RAM 变得更加困难。通常,编写不当的普通程序可能会运行并覆盖其他程序内存空间内的任何内容,如果该程序是 Windows 的关键部分... BSOD。
这三件事就是为什么 BSOD 不那么常见的原因。
当然,如果你真的很怀念 BSODs 设置Ctrl 滚动时崩溃至 1,按住右 Ctrl 键并按两次 Scroll Lock。(尝试前保存所有打开的程序)
答案2
- 有时这只是报告非致命错误的一种特定方式。实际上,您可以通过按 Enter 键从此类蓝屏中恢复。
- Windows 98 没有任何有用的内存保护和访问控制,因此一个进程很容易破坏其他进程的内存。没有简单的方法来恢复内核或系统进程损坏,所以它只能显示 BSoD 并重新启动。自 Windows NT 以来,已经实施了严格的内存保护,因此蓝屏的发生频率较低(仅可能由于内核空间错误)。
- Windows 保留了 DOS 兼容性,因此您可以拥有各种奇怪的东西,例如 16 位驱动程序。它们可能包含太多黑客程序,以至于它们只是等待发生的 BSoD。
- 总体来说,Windows 98 包含大量有缺陷的代码。
答案3
导致 BSoD 的另一个原因是调度算法。如果您不知道什么是调度程序,那么调度程序是决定多任务系统中接下来运行哪个应用程序的内核部分。调度程序的主要目的是能够运行处于“进程”状态的每个应用程序,并防止这些进程永远占用系统资源。每个进程都需要内存、CPU 或 I/O 等系统资源,并且在使用完这些资源后必须释放这些资源。如果一个进程等待另一个进程占用的资源,则该等待进程无法继续运行,并且会无法获得该资源。假设我们有两个正在运行的进程 p1 和 p2,以及两个系统资源 r1 和 r2,并且 p1 占用 r1,p2 占用 r2。如果进程 p2 进入资源 r1 的等待状态,而进程 p1 进入资源 r2 的等待状态,则该系统会锁定自身,并且 p1 和 p2 进程无法退出等待状态,也无法继续运行。此状态称为“死锁”。完全死锁的系统只有通过重新启动才能恢复。
Win98的调度算法不能避免死锁,因为期望。因此,与具有更先进、更强大的调度程序和资源管理器的 winXP 相比,Windows 98 中的 BSoD 更为常见。
答案4
要点已经提到了:Windows XP 有一个新的驱动程序子系统,并且 Windows XP 具有更严格的内存保护。
第三个重点还没有提到的是:从 Windows XP 开始,微软要求所有硬件 + 驱动程序都要经过一定程度的兼容性测试(WHQL)以承担“兼容 Windows”标签。这加强了以前不存在的一定程度的质量保证。