Ошибки в программном обеспечении

Любой ноутбук – сложное, многофункциональное устройство, управляемое системным ПО (то, что принято называть System BIOS; настраиваемая часть System BIOS хранится в отдельной микросхеме, называемой обычно CMOS). Системное ПО (будем называть его по традиции BIOS) состоит из отдельных модулей, управляемых основной микропрограммой ноутбука. Этими модулями являются: собственно, основная микропрограмма, BIOS видеокарты, BIOS сетевой карты, BIOS мультиконтроллера. Могут иметься и другие программные модули.

Основная часть ПО ноутбука в настоящее время зашивается в одну микросхему, однако это может не касаться мультиконтроллера: его BIOS может быть как прошит в основном BIOS ноутбука, так и может представлять собой отдельную микросхему или даже быть зашит непосредственно в сам мультиконтроллер. В последнем случае его программирование может оказаться довольно нетривиальной задачей.

Как проявляются ошибки ПО ноутбука?

Наиболее распространенные: ноутбук не стартует, причем либо не стартует вообще (нажимаете на кнопку питания, а в ответ – тишина), либо старт заканчивается на каком-то из этапов загрузки («повисает» на заставке видеокарты; «повисает» на одном из тестов POST; «повисает» при попытке определить НЖМД; «повисает» перед тестом ОЗУ; и т.п.). Менее распространенные проявления – «глюки» во время работы (отказываются работать какие-то устройства или порты). Наконец, наименее распространенные проявления ошибок ПО – фантомные, сложно воспроизводимые, но всегда неприятные системные сбои, после которых ноутбук либо не стартует вообще в течение некоторого времени, либо стартует, но при этом работает нестабильно.

Основная проблема диагностики ошибок ПО ноутбука – это то, что они всегда выглядят так, как будто в компьютере вышел из строя один из его узлов. Замена «вышедшего из строя» узла, естественно, не дает положительного результата: ноутбук как не работал нормально, так и не будет. Более того: даже если поменять все его узлы и компоненты, проблема останется. Грамотные специалисты при любых внешних неисправностях всегда начинают с проверки системного ПО.

Для проверки системного ПО в нашей компании имеются все необходимые инструменты, начиная от тестового и аналитического ПО (собственной разработки, а также общеизвестные IDA Pro, PE Explorer и т.п.) и заканчивая устройствами для чтения-записи различных программируемых микросхем (программаторами). Технология проверки ПО является нашим ноу-хау и заключается в следовании двум базовым принципам: все системные прерывания должны присутствовать в системном ПО и на любой тестовый запрос системное ПО должно отдавать правильный ответ. На практике это реализуется в том, что при старте ноутбука производится мониторинг «запрос – ответ» с использованием либо простых POST-code анализаторов, либо расширенных POST-code программируемых расширений – в зависимости от того, какой тип соединения с материнской платой реализован в конкретном ноутбуке для технологических нужд. Где-то мы можем подключать обычные POST-карты в шину PCI, но в большинстве случаев приходится использовать технологические разъемы, предусмотренные производителем как раз для целей мониторинга и отладки работы встроенного ПО.

Кроме использования POST-code анализаторов, часто приходится использовать логический анализатор и цифровой осциллограф. Ошибки встроенного ПО чаще всего проявляются в неверно формируемых импульсах и токах (ведь именно этим, в основном, встроенное системное ПО и управляет – на низком уровне, естественно); используя цифровой логический анализатор и осциллограф, такие сигналы могут быть обнаружены, и может быть сделано заключение о том, что именно вышло из строя. При исправной детали, которая должна формировать другой тип сигнала, становится очевидным, что возникла ошибка управляющего ПО, подающего на эту деталь неправильный сигнал.

Но это лишь верхушка айсберга. К сожалению, системного ПО вообще без ошибок, или как их принято называть, без багов, не существует. Именно поэтому производители ноутбуков регулярно выпускают обновления BIOS, призванные эти баги исправить. Но попытки обновления системного ПО могут заканчиваться неудачно (внезапно выключили электроэнергию; при обновлении BIOS компьютер завис; файл с обновлением оказался «битым» и прошился с ошибками; и т.п.) – в этом случае перепрошить системное ПО средствами компьютера (загрузить ОС или использовать загрузочный диск) уже не получится, так как системное ПО разрушено, повреждено или вовсе отсутствует. В таких случаях мы производим прошивку непосредственно микросхемы BIOS или мультиконтроллера необходимым ПО на физическом уровне.

Ошибки в программном обеспечении

-5%