Пульт дистанційного керування телевізора містить мікроконтролер з вбудованою програмою

Вбудована програма або прошивка (англ. firmware) — комп'ютерна програма, вбудована («вшита») в апаратний пристрій. Термін інколи використовується для позначення фіксованих, як правило, досить невеликих, програм, що контролюють різні електронні пристрої. Найчастіше фізичний носій вбудованої програми — мікросхема пам'яті постійного зберігання, така як флешпам'ять або EPROM.

Типові приклади — від кінцевих продуктів для користувача, таких як телевізор, пральна машина, мікрохвильова піч, дистанційне керування і калькулятори, до комп’ютерних частин та пристроїв, таких як BIOS, модем, жорсткий диск і клавіатура, монітор і карта пам'яті, до наукових приладів та промислових роботів. Крім того, складніші споживчі пристрої, як, наприклад, мобільний телефон, цифрова камера і синтезатор тощо, містять вбудовані програмні засоби, що забезпечують виконання як основних дій, так і функцій вищого рівня.

Природно, немає чітко визначеної межі між вбудованими програмами та просто програмним забезпеченням, оскільки обидва терміни — позначають досить гнучкі поняття. Разом з тим, вбудовані програми завжди пов’язані з досить низьким базовим рівнем операцій у пристрої, без якого пристрій буде абсолютно нефункціональним.

Прості вбудовані програми, як правило, розташовано в пам’яті тільки для читання або PROM, в той час як складніші вбудовані програми часто використовують флешпам'ять, що дозволяє їх оновлення. Найпоширеніші причини для оновлення вбудованих програм — виправлення помилок та додавання функцій пристрою. Це, здебільшого, включає завантаження двійкового файлу образу, наданого виробником пристрою, згідно з конкретною процедурою, що інколи виконується кінцевим користувачем.

Сучасні вбудовані програми

Вбудована програма тепер[коли?] означає майже будь-який зміст апаратного пристрою, що програмується, тобто не лише машинний код для мікропроцесора, а й також конфігурація і дані для інтегральних схем конкретного застосування, програмовних логічних пристроїв тощо. Хоча сучасні пристрої, які дозволяють оновлення, як правило, забезпечують для цього напівавтоматичний спосіб, в деяких випадках потрібно заміняти накопичувач даних (що було типовою процедурою до середини 1990-х років).

Комп'ютерна периферія

Більшість комп'ютерних периферійних пристроїв є самі по собі спеціальними комп'ютерами. Хоча зовнішні пристрої зберігають вбудовані програми всередині, сучасні комп’ютерні периферійні картки, як правило, вимагають завантаження досить великої частини вбудованої програми з головного комп’ютера при запуску, оскільки така процедура є гнучкішою. Такі пристрої можуть бути серйозно обмежені у функціонуванні, поки головний комп’ютер не надасть необхідні прошивки. Часто це робиться за допомогою конкретного драйвера пристрою (чи, якщо точніше, підсистемою всередині драйвера). Сучасні драйвери пристроїв можуть також надавати прямий користувацький інтерфейс для конфігурації на додаток до основних викликів операційної системи та прикладного програмного інтерфейсу.

Проблеми вбудованих програм на ПК

В багатьох випадках, компоненти прошивки так само важливі, як і операційна система в комп’ютері. Однак, на відміну від більшості сучасних операційних систем, вбудовані програми рідко мають добре розвинутий механізм для оновлення та усування проблем функціонування, яких було виявлено після постачання обладнання.

BIOS можна досить просто оновити в сучасних ПК; такі пристрої як відеокарти або модеми часто залежать від динамічного завантаження вбудованих програм за допомогою драйвера і таким чином, оновлення може бути зроблено прозоро через механізм оновлення операційної системи. На відміну від цього, програми, вбудовані в пристроях накопичення інформації, оновлюються рідко; механізми для виявлення версії прошивки та її оновлення не стандартизовано. Тому ці пристрої, як правило, мають вищий рівень функціональних проблем, у порівнянні з іншими частинами сучасної комп’ютерної системи.

Приклади

Приклади вбудованих програм:

Несанкціоновані зміни вбудованих програм

Деколи з’являються неофіційні нові або змінені версії прошивки, створені третіми сторонами для забезпечення нових функцій або розблокування прихованих. Наприклад Rockbox для цифрового аудіоплеєра, CHDK для цифрових фотоапаратів Canon, а також OpenWRT для бездротових маршрутизаторів, а також багато доморослих проектів для ігрових консолей. Найчастіше розблоковується функціональність загального призначення у пристроях де її обмежено (наприклад, запуск Doom на Ipod). Більшість латок несанкціонованих змін для вбудованих програм є вільним програмним забезпеченням з відкритими сирцевими текстами.

Для встановлення і активізації цих змін, як правило, користаються можливостями оновлення вбудованих програм. Однак, деякі зміни вдаються до експлуатації проблем безпеки, оскільки виробник спробував заблокувати апаратні засоби, щоб зупиняти його роботи в разі встановлення неліцензованого коду.

Див. також

Джерела