В чем разница между прошивкой и программным обеспечением?

Технически микропрограмма(Firmware) — это всего лишь подмножество программного обеспечения(Software) , поскольку последний термин включает в себя каждый полезный фрагмент кода. Однако на практике термин «программное обеспечение» относится к совсем другому классу программ.

Вообще говоря, прошивка — это название низкоуровневого кода, который напрямую взаимодействует с оборудованием. Любые программы, которые работают поверх этого уровня, составляют программное обеспечение. Смущенный? Вот более глубокий взгляд.

Множество типов программного обеспечения

Проблема с термином «программное обеспечение» заключается в том, что он слишком широк. Любой набор инструкций, который может управлять компьютером или любым другим электронным устройством, если уж на то пошло, можно считать программным обеспечением.

Это не было проблемой на заре вычислительной техники, когда все программы писались на ассемблере и напрямую взаимодействовали с оборудованием для выполнения любой задачи. Но в наши дни вычислительное устройство работает на слоях кода, а пользователю доступны только программы наверху.

Эта категория удобных для пользователя программ, называемая прикладным программным обеспечением , включает в себя все приложения и утилиты, которые вы используете на своем ПК, такие как веб-браузер или текстовый редактор. (Application Software)Ниже находится операционная система(System) , занимающаяся низкоуровневыми деталями, такими как визуализация изображений на экране и обработка ввода.

Большинство людей думают, что на этом все и заканчивается, но операционная система редко взаимодействует напрямую с оборудованием. Ниже ОС находится еще один уровень, который дает системному программному обеспечению простой способ доступа к аппаратным функциям. И это Прошивка(Firmware) .

Прошивка: базовый уровень(Foundation Layer) программного обеспечения(Software)

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

Прошивка(Firmware) — это связующее звено между аппаратным и программным обеспечением, позволяющее разработчикам использовать возможности устройства через упрощенный программный интерфейс вместо инструкций, специфичных для процессора. Для компьютера эта прошивка представляет собой всем известную Basic Input Output System (BIOS) , доступную даже без ОС.

В более простых электронных устройствах, таких как пульт от телевизора или маршрутизатор, прошивка также служит операционной системой. Такие машины не предназначены для установки стороннего прикладного программного обеспечения, такого как ПК, и полагаются на прошивку для выполнения всех необходимых задач.

Как устанавливается прошивка(Firmware Installed) на устройство(Device) ?

Ни одно электронное устройство не может использоваться без прошивки. Вот почему все электронные компоненты поставляются с предустановленной производителем прошивкой.

Даже на компьютерах эта программа хранится на специализированной микросхеме флэш-памяти на материнской плате, а не на жестком диске. Это позволяет загружать компьютер и настраивать параметры оборудования без установленной операционной системы.

Обновление прошивки на большинстве устройств не является ни простым, ни необходимым. Поскольку это основной управляющий код для машины, его нарушение может сделать оборудование непригодным для использования. Исключением являются компьютеры, которые позволяют пользователю устанавливать обновления BIOS(BIOS upgrades to be installed) путем перепрошивки чипа.

Прошивка и ПО: краткий обзор

Firmware Software
Essential code that directly controls the hardware components. Optional programs that utilize firmware to perform complex tasks.
Stored on a dedicated chip on the device. Installed on the hard disk memory.
Comes pre-installed by the manufacturer. Can be installed and configured by the user.
The lowest layer of code that supports operating systems and other software. Higher-level code that relies on the firmware below it for hardware abstraction.
Often the sole controlling program in simple electronic devices. Cannot function without firmware.
Hardware specific. Firmware differs for different processor architectures and cannot be interchanged. Hardware independent. OS functions the same on different processor families, though application software is usually OS specific.
Updated very rarely, if at all. Cannot be uninstalled. Easy to upgrade and remove.

Чем прошивка отличается от программного обеспечения(Firmware Different From Software) ?

Аппаратное(Hardware) и программное обеспечение(Software) обычно называют двумя компонентами электронного устройства, но это не полная картина. Операционные системы(Systems) и приложения не могут взаимодействовать с оборудованием напрямую, поэтому для устранения разрыва требуется слой специализированного кода.

И этим связующим элементом является прошивка(Firmware) . Он состоит из специфичных для архитектуры инструкций, которые непосредственно управляют аппаратным обеспечением, а в простой электронике также действуют как базовая ОС. В других устройствах прошивка вместо этого предоставляет абстрактный интерфейс для программного обеспечения, позволяя ОС использовать аппаратное обеспечение, не заботясь о базовой архитектуре.

Из-за своей сути прошивка поставляется предварительно загруженной на флэш-чип на самой материнской плате, независимо от какого-либо программного обеспечения, записанного на диск. Его можно только обновить (т.е. «прошить») с помощью специализированных процессов(updated (ie. “flashed”) with specialized processes) , в отличие от простой установки программных пакетов.

Все электронные устройства и периферийные компоненты поставляются с собственной прошивкой. Цифровые(Digital) камеры, смартфоны, твердотельные накопители(SSDs) и даже USB - накопители — если у них есть аппаратное обеспечение, которым необходимо управлять, для управления им предусмотрена встроенная прошивка.



About the author

Я инженер-программист с более чем 10-летним опытом работы с Apple iOS и периферийными устройствами. Мой опыт в разработке аппаратного обеспечения заставляет меня стремиться к тому, чтобы устройства наших клиентов были максимально надежными и плавными. Последние несколько лет я пишу код и научился использовать Git, Vim и Node.js.



Related posts