Вбудована програма

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Типовий пристрій, що керується мікропрограмними засобами, пульт дистанційного управління телевізора

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

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

Див. також[ред.ред. код]

Посилання[ред.ред. код]