Прошивка — программное обеспечение встроенных систем¶
Прошивка (англ. firmware) — вид программного обеспечения, записанный в постоянное запоминающее устройство (ПЗУ, флеш-память) электронного устройства и обеспечивающий его базовое функционирование. В отличие от обычных программ, прошивка хранится не на накопителе, а непосредственно в чипе памяти на плате устройства и загружается процессором сразу при подаче питания. Типичные примеры — прошивки BIOS и UEFI персональных компьютеров, микроконтроллеров бытовой техники, роутеров, смартфонов, автомобильных блоков управления.
¶Происхождение термина
Слово «firmware» ввёл в оборот в 1967 году американский инженер Ари Асков (Ary Aaskov) из компании Intel. Термин отражал промежуточное положение такого ПО между «жёстким» аппаратным обеспечением (hardware) и «мягким» программным обеспечением (software): код аппаратно-независим, но физически связан с чипом. В русском языке закрепились как калька «прошивка», так и более точный перевод «встроенное программное обеспечение».
¶Устройство и принцип работы
Прошивка выполняет роль инициализации аппаратуры: проверяет работоспособность компонентов (процедура POST в BIOS), инициализирует контроллеры памяти и периферии, загружает операционную систему. В устройствах без полноценной ОС (микроконтроллеры, датчики, бытовая техника) прошивка является единственным программным слоем и управляет работой напрямую.
Физически прошивка размещается в энергонезависимой памяти — NOR- или NAND-флеш, иногда в масочном ПЗУ. Запись («прошивка» в глагольном смысле) выполняется через специальные интерфейсы: JTAG, ISP, USB-загрузчик, либо программно из работающей системы. Для защиты от случайной порчи многие микроконтроллеры содержат бит запрета записи.
¶Основные виды
| Вид | Назначение |
|---|---|
| BIOS/UEFI | Инициализация аппаратуры ПК, загрузка ОС |
| Bootloader | Загрузчик, запускающий ядро ОС (U-Boot, GRUB) |
| Микропрограммы микроконтроллеров | Управление встраиваемыми системами |
| Прошивки сетевых устройств | Роутеры, коммутаторы, точки доступа |
| Прошивки мобильных устройств | Android-прошивки, iOS |
| Прошивки бытовой техники | Стиральные машины, холодильники, микроволновки |
| Прошивки автоблока управления (ЭБУ) | Управление двигателем и системами автомобиля |
¶Обновление прошивки
Обновление (перепрошивка) выполняется для исправления ошибок, повышения производительности, добавления функций или исправления уязвимостей. Существует два основных подхода:
- Официальные обновления — распространяются производителем через встроенное ПО устройства (OTA — «по воздуху») или утилиты на компьютере.
- Пользовательские (кастомные) прошивки — разрабатываются энтузиастами. Наиболее известные примеры: прошивки OpenWrt и DD-WRT для роутеров, LineageOS для смартфонов, кастомные прошивки для консолей.
Операция перепрошивки рискованна: прерывание процесса (например, из-за отключения питания) может привести к «окирпичиванию» устройства — полной потере работоспособности. Поэтому в устройствах применяют механизмы резервного копирования загрузчика и двухразрядные схемы (A/B-разделы), позволяющие откатиться на рабочую версию.
¶Прошивка и безопасность
Прошивка является привилегированным уровнем: вредоносная прошивка получает полный контроль над устройством и может оставаться незамеченной для антивируса. Известны случаи встраивания закладок в прошивки сетевого оборудования. В связи с этим в России действует требование предустановки сертифицированного ПО на ряд импортных устройств, а для критической инфраструктуры применяют отечественные прошивки и микропрограммы.
¶Прошивки в России
Российские разработки в области встроенного ПО включают:
- Astra Linux — ОС с собственным загрузчиком и компонентами инициализации, применяемая в госсекторе и на оборонных объектах.
- ЭЛЬБРУС — архитектура процессоров с собственной микропрограммной подсистемой.
- РОСА — дистрибутив Linux с отечественными компонентами загрузки.
- Прошивки микроконтроллеров на базе отечественных КМОП-микросхем для промышленной автоматизации.
¶Интересные факты
- В первых IBM PC (1981) BIOS занимал 8 КБ и был записан в четырёх чипах.
- Прошивка современного автомобильного ЭБУ содержит миллионы строк кода и управляется несколькими процессорами.
- Термин «прошивка» в русском языке стал нарицательным и применяется к любым действиям по записи ПО в устройство.
¶Источники
- ГОСТ Р 58172-2018. Информационные технологии. Программные средства встраиваемые.
- Справочник по архитектуре персональных компьютеров. — М.: Вильямс.
- Intel Corporation. Firmware and BIOS documentation.
- OpenWrt Project Documentation.
