Рис. 1.4. Сообщение об ошибке загрузчика ОС
Ошибки, связанные с утратой или повреждением файлов, обычно возникают на фоне полного благополучия. Они проявляются при очередном включении компьютера, даже если чуть раньше все работало совершенно нормально.
Второй случай всегда является результатом вмешательства человека. Типичная ситуация: после обновления драйверов или установки новой программы вы перезагружаете компьютер, а он при этом зависает. Оказывается, новый установленный драйвер содержит ошибки или не совсем подходит к конкретной модели оборудования. При установке отдельных игр по умолчанию заодно заменяются и некоторые компоненты операционной системы, например отдельные системные библиотеки. Подобная практика среди разработчиков приложений не приветствуется: по правилам грамотного программирования установка прикладной утилиты не должна затрагивать компоненты ОС. Тем не менее такие приложения встречаются.
Существует проблема несовместимости отдельных программ с определенными версиями операционных систем семейства Windows. В частности, это относится к запуску некоторых достаточно старых утилит на компьютерах с Windows Vista. Обычно сведения о совместимости приводятся в документации к программе или на сайте разработчика. Если таких сведений нет, остается проверять совместимость экспериментальным путем. Перед подобными экспериментами очень полезно создать резервную копию системного диска в программе типа Acronis True Image или Roxio GoBack. По меньшей мере стоит создать точку восстановления системы встроенными средствами Windows. Дело в том, что, пусть и очень редко, удаление программы может не вернуть систему в предыдущее состояние: остаются какие-либо изменения в реестре, файлы в системных папках.
Не свободна от внутренних ошибок и сама операционная система. В любом приложении есть место для ошибки, сделанной программистами. Если же код программы занимает сотни мегабайт, счет ошибок идет на десятки. Бытует шутка, что каждая новая версия Windows исправляет ошибки, допущенные в более ранних сборках. По-видимому, это неизбежно, и никакое тестирование такую проблему полностью не решает. Единственный выход – создание разработчиками «заплаток» (patches) по мере выявления недостатков и установка этих исправлений самими пользователями. Для облегчения данной процедуры задумана функция автоматического обновления системы. По ряду причин в нашей стране службу автоматического обновления большинство пользователей отключают, предпочитая скачивать и устанавливать обновления самостоятельно. Первые исправления и дополнения появляются через считаные недели после официального выхода очередной версии ОС, а спустя некоторое время разработчики выпускают пакеты обновлений, называемые сервис-паками (Service Pack, SP). Практика показывает, что операционная система оказывается «доведенной до ума» не ранее, чем появится второй пакет обновлений (SP2). К этому времени обычно к выходу в свет готова уже следующая версия Windows!
Очень часто о постороннем вмешательстве в свой компьютер пользователь даже не подозревает. Как вы догадались, речь идет о компьютерных вирусах. По статистике, больше половины всех компьютерных проблем вызывается вирусами и другими вредоносными модулями. Программа-вирус способна добавлять свой код к содержимому различных исполняемых файлов, после чего они также могут внедрять этот код в следующие файлы. В результате приложения начинают вести себя не совсем так, как ожидается. Проявления деятельности вредоносных модулей настолько разнообразны, что перечислить их все просто невозможно: компьютерным вредительством подчас занимаются весьма талантливые программисты, а их изобретательность безгранична. Придумайте любое безобразие, которое может твориться с компьютером, и наверняка окажется, что когда-то кто-то уже создал вирус с таким действием. Далее в этой главе мы познакомимся с вирусами поближе.
Сбои операционной системы
Само понятие «ошибка» предполагает определенную повторяемость. На практике встречаются ситуации, когда ошибка возникает однократно, а после перезагрузки или просто завершения давшей сбой программы компьютер продолжает работать совершенно нормально. Поскольку ошибка больше не повторяется, сказать что-нибудь о ее причинах бывает затруднительно. Как правило, всякие случайные и неповторяющиеся сбои так и остаются загадкой.
Можно только предположить, что за ними на самом деле скрываются аппаратные причины. Возможно, это неотфильтрованные выбросы напряжения питания, спровоцировавшие кратковременный сбой процессора или изменение содержимого отдельных ячеек памяти. Всерьез обсуждалось влияние космических частиц на стабильность оперативной памяти. Потоки таких частиц непрерывно бомбардируют Землю. Благодаря огромной энергии они способны пронизывать любые предметы, попадающиеся на их пути, и оставлять за собой ионизированный след. Конечно, вероятность встречи элементарной частицы с модулем памяти достаточно мала, но вполне реальна. Да и самое настоящее насекомое, залезшее в системный блок, тоже нельзя сбрасывать со счетов, особенно летом.
Так или иначе, если код программы был неправильным изначально или ошибка возникла вследствие проблем с носителем информации, программа будет «спотыкаться» каждый раз на одном и том же месте. В проявлении характерных аппаратных неисправностей тоже можно проследить какую-либо закономерность, хотя и не столь очевидную. Но даже после исключения всех объяснимых программных и аппаратных проблем остается малая доля совершенно непонятных случайных сбоев. Вероятно, со сбоями, происходящими раз в несколько недель или месяцев, следует просто смириться.