На відміну від Windows XP, який рідко давав мені синій екран, я пам’ятаю, що коли я використовував Windows 98, він часто виявлявся синім екраном.
Чи щось не так з Windows 98, що робить його особливо нестабільним?
На відміну від Windows XP, який рідко давав мені синій екран, я пам’ятаю, що коли я використовував Windows 98, він часто виявлявся синім екраном.
Чи щось не так з Windows 98, що робить його особливо нестабільним?
Відповіді:
Основна причина BSOD - це виняток, який не було оброблено драйвером, з якого система не може відновитись. Основна причина, чому все змінилося - нова система драйверів ( WDM ) набагато стійкіша, ніж стара система ( VxD ) при обробці крайових справ. Тепер ви просто отримаєте помилку в журналі подій замість BSOD про помилку у драйвері, яка недостатньо погана, щоб збити систему.
Ще один фактор - Microsoft виклала набагато більше ресурсів для розробників, щоб використовувати кращий код.
Третій фактор (що нагадав мені billc.cn, і це може бути більш поширеним, ніж проблема з драйверами) Починаючи з Windows XP набагато складніше отримати доступ до оперативної пам’яті іншої запущеної програми. Досить часто просто нормально погано написані програми могли просто вимкнутись та перезаписати все, що вони захотіли, у просторі пам’яті якоїсь іншої програми, і якщо ця інша програма була ключовою частиною Windows… BSOD.
Між цими трьома речами, тому BSOD набагато рідше.
Звичайно, якщо ви дійсно пропускаєте BSOD, встановіть CrashOnCtrlScroll на 1, утримуйте праву клавішу Ctrl і двічі натисніть клавішу прокрутки. (збережіть усі відкриті програми перед спробою)
Ще одна річ, яка викликає BSoD, - це алгоритм планування. Якщо ви не знаєте про те, що таке планувальник, планувальник - це частина ядра, яка вирішує, яку програму буде запускати далі в багатозадачній системі. Основна мета планувальника полягає в тому, щоб мати можливість запускати всі програми, які знаходяться в стані "процесу", і не дозволяти цим процесам утримувати системні ресурси назавжди. Кожен процес потребує системних ресурсів, таких як пам'ять, процесор чи введення / виведення, і вони повинні звільнити ці ресурси після їх використання. Якщо процес очікує на ресурс, який зберігається іншим процесом, той процес очікування не може продовжувати працювати і голодує на цей ресурс. Припустимо, у нас є два запущені процеси, p1 і p2, і два системних ресурсу, r1 і r2, а p1 вміщує r1, p2 містить r2. Якщо процес p2 переходить у стан очікування для ресурсу r1, а процес p1 переходить у стан очікування для ресурсу r2, тоді ця система блокується, і ці процеси p1 і p2 не можуть вийти з стану очікування і не можуть продовжувати працювати. Цей стан названо "тупиком". Повністю відключена система може бути відновлена лише за допомогою перезавантаження.
Алгоритм планування Win98 не може уникнути тупикових ситуацій, як бажано . Таким чином, BSoD є частішими у win98, ніж winXP, який має більш просунутий, більш потужний планувальник і менеджер ресурсів.
Windows XP (технічно це Windows NT 5.1) базується / базується на зовсім іншій архітектурі порівняно з Windows 98 (технічно Windows 4.1). Я навіть не пам'ятаю, щоб взагалі було багато BSOD в Windows NT 4.0. Ядро та архітектура NT розроблені та написані таким чином, що програмні помилки, що призводять до збиття всієї операційної системи (проявляється BSOD), набагато рідше, ніж у старій / "звичайній" серії Windows. Пам’ятайте, що шлях оновлення продукту йшов від DOS + Windows 3.11 до Windows 95 до Windows 98 або Windows NT 3.x до Windows NT 4.0 до Windows 2000 (NT 5.0) до Windows XP (NT 5.1).
Я пам’ятаю, коли я встановив NT 4.0 Workstation, що одне, на що було конкретно вказано, це те, що ви не можете встановити його поверх будь-якої версії звичайної Windows (на відміну від Windows NT). Можливо, це могло б стати можливим, якби Microsoft доклав до цього багато зусиль, але вони настільки сильно відрізняються, що (1) це, ймовірно, не має сенсу, і (2) не було б способу гарантувати стабільність результат, що відповідає ОС та / або застосуванню. Таким чином, вони, ймовірно, вирішують навіть не намагатися, а замість цього витратити час на роботу над іншими функціями, які мали більш значущий характер на його цільовому ринку (що було абсолютно відмінним від серії Windows 9x). Я вважаю, що це стосується Windows 2000, але оскільки в цей момент я проходив модернізацію з NT 4.0, для мене це не було проблемою.
Як зауваження, одна з основних змін, що відбулася між NT 3.51 та NT 4.0, - це приведення графічних драйверів у кільце 0 (режим ядра) з кільця 3 (режим користувача). Це нібито було зроблено з міркувань продуктивності, але він мав величезний недолік: раптом погано написаний графічний драйвер міг набагато легше збити систему за допомогою BSOD. Я думаю, але я не впевнений, що одне, що вони змінили у Vista (NT 6.0), - це повернення цих драйверів у ринг 3 - цього разу з міркувань стабільності.
Головні моменти вже були згадані: Windows XP має нову підсистему драйверів, а Windows XP має суворіший захист пам’яті.
Третій важливий момент, про який не згадувалося: починаючи з Windows XP, Microsoft вимагала від усіх апаратних засобів + драйверів пройти певний рівень тестування на сумісність ( WHQL ), щоб мати наклейку "Сумісність з Windows" . Це забезпечує певний рівень забезпечення якості, який раніше не існував.