Книга: Защита компьютера на 100: сбои, ошибки и вирусы
Источники программных ошибок
Источники программных ошибок
Причины всех программных ошибок можно свести к двум самым общим случаям.
• В первом случае нарушается физическая или логическая структура файлов, папок и дисков. Грубо говоря, где-то на диске вместо единицы записан ноль или наоборот: либо часть Файла не читается вовсе. Возможно, Файл был просто удален, то есть сведения о нем исчезли из Файловой системы. На примере книги это опечатка, клякса или вырванная страница. Система пытается найти и прочитать очередной Файл, ей это не удается, и в ходе загрузки происходит ошибка.
• Во втором случае информация Формально цела, но ошибочна по содержанию. Например, для какого-либо устройства может быть установлен несовместимый драйвер или программа заражена вирусом. Сюда же стоит отнести некорректные изменения системных настроек, содержащихся в реестре.
Очевидно, что причины повреждения или утраты файлов могут быть различными. Иногда порча файлов бывает следствием аппаратных проблем — ошибок жесткого диска. Некорректное выключение компьютера (например, внезапное исчезновение напряжения в сети) также может привести к повреждению или утрате отдельных файлов. Наконец, их можно удалить или переместить совершенно случайно. Во избежание таких случайностей наиболее важным для операционной системы файлам и папкам присвоены атрибуты «скрытый» и «системный», и по умолчанию эти объекты просто не показываются в Проводнике Windows. Даже если в настройках свойств папки разрешить отображение защищенных системных папок и Файлов, при попытке удаления или перемещения таких объектов будет выведено предупреждение (рис. 1.3).
Рис. 1.3. Предупреждение при попытке удаления системного файла.
Возможно, кого-то данное предупреждение не остановит. Однако файл ntldr используется операционной системой. Результат его удаления проявится не сразу, а лишь при очередном обращении к нему в процессе работы. Загрузка Windows прервется в самом начале! На рис. 1.4 показано сообщение, сопровождающее такую ошибку. Положение спасет только загрузка компьютера с другого носителя, например установочного компакт-диска Windows, и копирование загрузчика обратно на жесткий диск.
Рис. 1.4. Сообщение об ошибке загрузчика ОС.
Ошибки, связанные с утратой или повреждением Файлов, обычно возникают на Фоне полного благополучия. Они проявляются при очередном включении компьютера, даже если чуть раньше все работало совершенно нормально.
Второй случай всегда является результатом вмешательства человека. Типичная ситуация: после обновления драйверов или установки новой программы вы перезагружаете компьютер, а он при этом зависает. Оказывается, новый установленный драйвер содержит ошибки или не совсем подходит к конкретной модели оборудования. При установке отдельных игр по умолчанию заодно заменяются и некоторые компоненты операционной системы, например отдельные системные библиотеки. Подобная практика среди разработчиков приложений не приветствуется: по правилам грамотного программирования установка прикладной утилиты не должна затрагивать компоненты ОС. Тем не менее такие приложения встречаются.
Существует проблема несовместимости отдельных программ с определенными версиями операционных систем семейства Windows. В частности, это относится к запуску некоторых достаточно старых утилит на компьютерах с Windows Vista. Обычно сведения о совместимости приводятся в документации к программе или на сайте разработчика. Если таких сведений нет, остается проверять совместимость экспериментальным путем. Перед подобными экспериментами очень полезно создать резервную копию системного диска в программе типа Acronis True Image или Roxio GoBack. По меньшей мере стоит создать точку восстановления системы встроенными средствами Windows. Дело в том, что, пусть и очень редко, удаление программы может не вернуть систему в предыдущее состояние: остаются какие-либо изменения в реестре, Файлы в системных папках.
Не свободна от внутренних ошибок и сама операционная система. В любом приложении есть место для ошибки, сделанной программистами. Если же код программы занимает сотни мегабайт, счет ошибок идет на десятки. Бытует шутка, что каждая новая версия Windows исправляет ошибки, допущенные в более ранних сборках. По-видимому, это неизбежно, и никакое тестирование такую проблему полностью не решает. Единственный выход — создание разработчиками «заплаток» (patches) по мере выявления недостатков и установка этих исправлений самими пользователями. Для облегчения данной процедуры задумана функция автоматического обновления системы. По ряду причин в нашей стране службу автоматического обновления большинство пользователей отключают, предпочитая скачивать и устанавливать обновления самостоятельно. Первые исправления и дополнения появляются через считанные недели после официального выхода очередной версии ОС, а спустя некоторое время разработчики выпускают пакеты обновлений, называемые сервис-паками (Service Pack, SP). Практика показывает, что операционная система оказывается «доведенной до ума» не ранее, чем появится второй пакет обновлений (SP2). К этому времени обычно к выходу в свет готова уже следующая версия Windows!
Очень часто о постороннем вмешательстве в свой компьютер пользователь даже не подозревает. Как вы догадались, речь идет о компьютерных вирусах. По статистике, больше половины всех компьютерных проблем вызывается вирусами и другими вредоносными модулями. Программа-вирус способна добавлять свой код к содержимому различных исполняемых файлов, после чего они также могут внедрять этот код в следующие файлы. В результате приложения начинают вести себя не совсем так, как ожидается. Проявления деятельности вредоносных модулей настолько разнообразны, что перечислить их все просто невозможно: компьютерным вредительством подчас занимаются весьма талантливые программисты, а их изобретательность безгранична. Придумайте любое безобразие, которое может твориться с компьютером, и наверняка окажется, что когда-то кто-то уже создал вирус с таким действием. Далее в этой главе мы познакомимся с вирусами поближе.
- Перехват ошибок
- Обработка перехваченных ошибок
- Источники информации о конкурентах
- Приложение 10. Коды ошибок
- B1.7. Функции обработки ошибок
- Обработка ошибок
- 1.5. ОСОБЕННОСТИ ПРОГРАММНЫХ РАЗРАБОТОК
- Что обозначают номера ошибок?
- Источники контента
- Источники информации
- Условия копирования, распространения и модификации программных продуктов
- Проверка диска на наличие ошибок