Открыть сервисСервис

Прошивка — программное обеспечение встроенных систем

Прошивка (англ. 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 КБ и был записан в четырёх чипах.
  • Прошивка современного автомобильного ЭБУ содержит миллионы строк кода и управляется несколькими процессорами.
  • Термин «прошивка» в русском языке стал нарицательным и применяется к любым действиям по записи ПО в устройство.

Источники

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru