Встроенная программа ( микропрограммные средства, также иногда микропрограмма, «прошивка») англ. firmware - программное обеспечение, встроенное («вшиты») в аппаратное устройство, термин, иногда используется для обозначения фиксированных, как правило, достаточно небольших, встроенных программ, контролируют различные электронные устройства. Чаще физический носитель микропрограммы - микросхема, постоянное запоминающее устройство, флеш-память.
Микропрограммой также называют образ ( ISO-образ ) прошивки, что может загружаться в аппаратном обеспечении ( флэш-память ) (процедура обновления прошивки (версии прошивки)).
Типичные примеры - от конечных продуктов для пользователя, таких как телевизор, стиральная машина, микроволновая печь, дистанционное управление и калькуляторы, до компьютерных частей и устройств, например BIOS, модем, жесткий диск и клавиатура, TFT экран и карта памяти, в научных приборов и промышленных роботов. Кроме того, сложные потребительские устройства, как, например, мобильный телефон, цифровой фотоаппарат и синтезатор и т.д., содержащие встроенные программные средства, обеспечивающие выполнение как основных действий, так и функций высшего уровня.
Естественно, нет четко определенной границы между встроенными программами и просто программным обеспечением, поскольку оба термина - обозначают довольно гибкие понятия. Вместе с тем, микропрограммные средства всегда, связаны с достаточно низким базовым уровнем операций в устройстве, без которого устройство абсолютно нефункциональным.
Простые прошивки, как правило, располагается в памяти только для чтения или PROM, в то время как более сложные встроенные программы часто используют флэш-память, что позволяет их обновление. Самые распространенные причины для обновления встроенных программ - исправление ошибок и добавление функций устройства. Это, в основном, включает загрузку двоичного файла образа, предоставленного изготовителем, согласно конкретной процедурой, иногда выполняется конечного пользователя.
Современные встроенные программы
Встроенная программа теперь означает почти любое содержание аппаратного устройства, программируется, т.е. не только машинный код для микропроцессора, но и также конфигурация и данные для интегральных схем конкретного применения, програмовних логических устройств и т.д. Хотя современные устройства, которые позволяют обновление, как правило, обеспечивают для этого полуавтоматический способ, в некоторых случаях нужно заменять накопитель данных (что было типичной процедурой до середины 1990-х годов).
Компьютерная периферия
Большинство компьютерных периферийных устройств являются сами по себе специальными компьютерами. Хотя внешние устройства сохраняют встроенные программы внутри, современные компьютерные периферийные карты, как правило, требуют загрузки достаточно большой части встроенной программы из главного компьютера при запуске, поскольку такая процедура является более гибкой. Такие устройства могут быть серьезно ограничены в функционировании, пока главный компьютера не предоставит необходимые прошивки. Часто это делается с помощью конкретного драйвера устройства (или, если точнее, подсистемой внутри драйвера). Современные драйверы устройств могут также оказывать прямое интерфейс для конфигурации в дополнение к основным вызовам операционной системы и прикладного программного интерфейса.
Проблемы встроенных программ на ПК
Во многих случаях, компоненты прошивки так же важны, как и операционная система в компьютере. Однако, в отличие от большинства современных операционных систем, встроенные программы редко имеет хорошо развитый механизм для обновления и устранения проблем функционирования, которые были обнаружены после поставки оборудования.
BIOS можно достаточно просто обновить в современных ПК; такие устройства как видеокарты или модемы часто зависят от динамической загрузки встроенных приложений с помощью драйвера и таким образом, обновление может быть сделано прозрачно через механизм обновления операционной системы. В отличие от этого, программы, встроенные в устройствах накопления информации, обновляются редко; механизмы для выявления версии прошивки и ее обновления не стандартизировано. Поэтому эти устройства, как правило, имеют более высокий уровень функциональных проблем, по сравнению с другими частями современной компьютерной системы.
Примеры
Примеры встроенных программ:
-
Системы управления и отсчета времени для стиральных машин
-
BIOS в IBM-совместимых персональных компьютерах
-
Код платформы на системах с Mac OS X на базе Intel Itanium, также много плат для ПК на базе Intel имеют прошивки, совместимые с EFI
-
Open Firmware, используемой в компьютерах Sun Microsystems и Apple Computer
-
ARCS, используемой в компьютерах Silicon Graphics
-
RTAS (службы абстрагирования для времени выполнения), используемых в компьютерах IBM
-
Чипы EPROM, используемых в серии цифровых музыкальных процессоров Eventide H-3000.
-
Cisco IOS.
Несанкционированное изменение встроенных программ
Порой появляются неофициальные новые или измененные версии прошивки, созданные третьими сторонами для обеспечения новых функций или разблокировки скрытых.Например Rockbox для цифрового аудиоплеера, CHDK для цифровых фотоаппаратов Canon, а также OpenWRT для беспроводных маршрутизаторов, а также много доморощенных проектов для игровых консолей. Чаще разблокируется функциональность общего назначения в устройствах где она ограничена (например, запуск Doom наIpod ). Большинство патчей несанкционированное изменение для встроенных приложений является свободным ПО с открытыми сырцовыми текстами.
Для установки и активизации этих изменений, как правило, пользуются возможностями обновления встроенных программ. Однако, некоторые изменения прибегают к эксплуатации проблем безопасности, поскольку производитель попытался заблокировать аппаратные средства, чтобы останавливать его работы в случае установления нелицензированного кода.