Встроенная программа (микропрограммные средства, также иногда микропрограмма, «прошивка»)
(англ. 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. Большинство патчей несанкционированных изменений для встроенных программ является свободным программным обеспечением с открытыми исходными текстами.
Для установки и активизации этих изменений, как правило, пользуются возможностями обновления встроенных программ. Однако некоторые изменения прибегают к эксплуатации проблем безопасности, поскольку производитель попытался заблокировать аппаратные средства, чтобы останавливать его работы в случае установления нелицензированного кода.