В отличие от Windows XP, которая редко давала мне синий экран, я помню, что когда я использовал Windows 98, он часто получался с синим экраном.
Что-то не так с Windows 98, что делает его особенно нестабильным?
В отличие от Windows XP, которая редко давала мне синий экран, я помню, что когда я использовал Windows 98, он часто получался с синим экраном.
Что-то не так с Windows 98, что делает его особенно нестабильным?
Основной причиной возникновения BSOD является исключение, которое было устранено в драйвере, который система не может восстановить. Основная причина, по которой все изменилось, заключается в том, что новая система драйверов (WDM) гораздо более стабильна, чем старая система (VxD), при обработке крайних случаев. Теперь вы просто получите сообщение об ошибке в журнале событий вместо BSOD при ошибке в драйвере, который не является достаточно плохим для сбоя системы.
Другим фактором является то, что Microsoft выделила разработчикам гораздо больше ресурсов для создания лучшего кода.
Третий фактор (который напомнил мне billc.cn, и это может быть более распространенным, чем проблема с драйверами). Начиная с Windows XP, гораздо сложнее получить доступ к оперативной памяти другой работающей программы. Довольно часто обычные плохо написанные программы могут просто выключаться и перезаписывать все, что они хотят, в области памяти какой-либо другой программы, и если эта другая программа является ключевой частью окон ... BSOD.
Между этими тремя вещами именно поэтому BSOD встречаются гораздо реже.
конечно, если вы действительно пропустите BSOD, установите CrashOnCtrlScroll в 1, удерживайте правую клавишу Ctrl и дважды нажмите Scroll Lock. (сохранить все открытые программы перед попыткой)
Еще одна вещь, которая вызывает BSoD, - это алгоритм планирования. Если вы не знаете, что такое планировщик, он является частью ядра, которая решает, какое приложение будет запущено в многозадачной системе. Основная цель планировщика - иметь возможность запускать каждое приложение, находящееся в состоянии "процесса", и предотвращать вечное хранение этих процессов системными ресурсами. Каждому процессу нужны системные ресурсы, такие как память, процессор или ввод-вывод, и они должны освобождать эти ресурсы после их использования. Если процесс ожидает ресурс, который удерживается другим процессом, этот процесс ожидания не может продолжать выполняться и голодает до этого ресурса. Предположим, у нас есть два запущенных процесса, p1 и p2, и два системных ресурса, r1 и r2, и p1 содержит r1, p2 содержит r2. Если процесс p2 входит в состояние ожидания для ресурса r1, а процесс p1 входит в состояние ожидания для ресурса r2, то эта система блокирует себя, и эти процессы p1 и p2 не могут выйти из состояния ожидания и не могут продолжать работу. Это состояние называется "тупик". Полностью заблокированная система может быть восстановлена только перезагрузкой.
Алгоритм планирования Win98 не может избежать взаимоблокировок по желанию. Таким образом, BSoD чаще встречаются в win98, чем в winXP, который имеет более продвинутый, более мощный планировщик и менеджер ресурсов.
Основные моменты уже упоминались: в Windows XP есть новая подсистема драйверов, а в Windows XP гораздо более строгая защита памяти.
Третий важный момент , который не был упомянут: начиная с Windows XP, Microsoft требовала, чтобы все оборудование + драйверы проходили определенный уровень тестирования совместимости (WHQL), чтобы иметь наклейку "Совместимо с Windows" . Это обеспечивает определенный уровень гарантии качества, который раньше не существовал.
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 - на этот раз по соображениям стабильности.