В чем разница между прошивкой и операционной системой?
Во встроенных устройствах, таких как принтер, коммутаторы, я запутался, в чем разница между прошивкой и операционной системой. Похожи ли операционные системы встроенных устройств на ПК (Linux и Windows)?
Например, у меня есть принтер со встроенным веб-сервером, который позволяет мне управлять принтером удаленно. Когда я открываю веб-сайт производителя, я обнаруживаю, что это ОС: ОС 9.86. Что это за ОС? См. Phaser 8560: поддержка и драйверы
6 ответов
Прошивка относится к небольшому фрагменту кода, который находится в энергонезависимой памяти. В аппаратных периферийных устройствах, которые обычно используются в офисах в настоящее время (например, принтеры, телефоны VoIP и т. Д.), Микропрограммное обеспечение обычно отвечает за загрузку (например, проверку подписи кода ОС) и управление (например, перепрошивка ОС в режиме восстановления) операционной системой, которая является установлен на машине. Задача операционной системы - выполнять реальную задачу (например, печать).
Поставщики оборудования обычно используют производную Linux (например, Cisco IOS) или операционную систему реального времени (например, VxWorks).
Проще говоря:
Операционные системы
Содержит ядро, графический интерфейс пользователя (GUI) или как минимум интерфейс командной строки (CLI), который использует оборудование для управления файлами
ядро
Часть программного обеспечения ОС, привратник и переводчик между ОС и оборудованием.
Другими словами (из Википедии), основной функцией ядра является обеспечение доступа к ресурсам компьютера:
- -ЦПУ
- -БАРАН
- -I/ вывода
- Системные вызовы
Прошивка
- По определению, Прошивка - это любые инструкции, хранящиеся в ПЗУ.
- Прошивка - игра слов для чего-то между программным и аппаратным обеспечением, ссылающаяся на спектр для "простоты модификации"
- Прошивка не зависит от ОС , исключение, которое стирает строки, когда вся ОС хранится в ПЗУ, поэтому по определению считается Прошивка
- Прошивка обычно содержит программу начальной загрузки, которая загружает ядро ОС
- Прошивка - это минимальная инструкция для организации нескольких аппаратных компонентов общего назначения.
- Прошивка не нужна, если вы полностью настраиваете / печатаете свою логику / инструкции с VLSI на своей собственной схеме (я думаю, что это важно понимать, когда речь идет о прошивке)
- Прошивка на потребительские товары, такие как радиоуправляемая машина, ОС не
- Прошивка есть во всей / большей части электроники, ОС нет
- Вирус в прошивке никогда не может быть обнаружен или удален. Вирус на ОС может быть очищен при новой установке
Когда вы включаете компьютер:
Прошивка → Ядро → Полная ОС
В принципе
Как уже отмечали другие, прошивка находится в энергонезависимой памяти устройства. Он содержит инструкции, которые устройство выполняет при запуске после отключения питания или сброса. Это может быть полное программное обеспечение на устройстве, или оно может содержать инструкции для перехода к инструкциям на каком-либо другом компоненте, например, когда BIOS компьютера заставляет процессор читать первый сектор на жестком диске (или дискете или CD-ROM), чтобы узнать, какой код запустить дальше.
Операционная система - это код, работающий на устройстве, которое предоставляет сервисы приложениям для доступа к возможностям устройства. Например, он может обеспечить квантование времени процессора, файловой системы для доступа, ввода и вывода и так далее.
Встроенное устройство не должно поставлять операционную систему приложениям, но это может быть подходящей моделью для производителя, чтобы использовать при написании программного обеспечения. Вполне возможно, что принтер может иметь все свои встроенные программы в одной работающей программе с некоторыми обработчиками прерываний, без необходимости отделять веб-сервер от ОС. Я не знаю об этой конкретной модели.
Дело в том, что ОС может существовать в прошивке, а прошивка может существовать без ОС. Это независимые понятия.
Прошивка:
Для запуска любого устройства (компьютера, принтера, сканера, цифровой камеры и т. Д.), Оно должно иметь начальную программу для запуска при включении / загрузке. Эта начальная программа называется прошивкой. Он также называется программой начальной загрузки, также называемой BIOS. Он монтируется в ПЗУ (энергонезависимая память, содержимое которой постоянно).
Прошивка находит ядро операционной системы (помните, что ядро является частью операционной системы) и загружает его в основную память (RAM) во время запуска. Прошивка обычно написана на ассемблере или языке высокого уровня, таком как C/C++.
Операционная система:
Операционная система - это полный программный стек, который управляет аппаратным обеспечением компьютера и создает среду для запуска приложений. Другими словами, операционная система выполняет назначенную задачу устройства. Ядро находится в нижней части этого программного стека и продолжает работать, пока ваше устройство работает. Когда я говорю, что операционная система управляет оборудованием, это фактически ядро, которое управляет любыми запросами к аппаратным ресурсам (ЦП, память, ввод и вывод).
Чтобы согласовать, что другие опубликовали:
Прошивка - это больше, чем просто загрузчик или BIOS, хотя этот термин часто используется в большинстве потребительских устройств.
В более сложных приложениях программируемые пользователем вентильные массивы (FPGA), сложные программируемые логические устройства (CPLD) и другие подобные технологии предоставляют механизм для создания настраиваемых логических схем, которые могут выходить далеко за пределы линейно исполняемого кода, выполняемого микроконтроллером или более мощным процессором., Это часто является альтернативой специализированным интегральным схемам (ASIC), которые не могут быть изменены после установки матрицы.
В таких приложениях прошивка делает гораздо больше, чем просто загружает код для начала работы. Приложения могут быть спроектированы для обработки нескольких параллельных операций, включая, но не ограничиваясь этим, маршрутизацию адресов, обработку сигналов, математическую сопроцессорную обработку, таймеры, управление питанием и последовательность сброса, даже управление светодиодами и реле.
Возможности для создания пользовательских устройств безграничны, и в случае FPGA и CPLD могут быть перепрограммированы.
Встроенное ПО описанного выше типа (обычно) запрограммировано в VHDL, который описывает синхронную или асинхронную параллельную логику для представления желаемых функций. Проекты, как правило, предназначены для программного обеспечения, доступного либо через диапазон адресов с отображенной памятью, либо через некоторый другой протокол (например, PCI/PCI-X/PCIe). Регистры, созданные с помощью встроенного программного обеспечения, представляют собой набор элементов управления и состояния для требуемых функций.
Операционная система, с другой стороны, предоставляет программному обеспечению интерфейсы для работы в некоторой среде обработки (т. Е. Предоставляет контекст и "правила" для использования процессора и любого программного или аппаратного обеспечения, доступного для программного обеспечения). ОС может быть либо установлена как правила обработки во встроенном программном обеспечении, либо (чаще) это просто программное обеспечение, загружаемое из ПЗУ, флэш-памяти или другого носителя.
Интерфейс между машинно-независимыми частями ОС и аппаратным обеспечением представлен во многих формах: пакет поддержки платы (BSP), драйверы и т. Д. Обычно BSP - это место, где, помимо прочего, устанавливаются адреса к процессору и периферийным устройствам, специфичным для платы., Многие поставщики ОС реального времени (RTOS) предоставляют некоторые базовые настройки BSP и / или инструменты для начала работы.
Некоторые разработчики будут поддерживать дизайн BSP простым, чтобы просто начать работу, и напишут множество интерфейсов для доступа к аппаратному или микропрограммному обеспечению независимо от протоколов RTOS BSP; это более распространено в кастомных прошивках.
Да, операционные системы встроенных устройств "похожи" на ПК. Различия существуют по спектру, но все они в основном работают одинаково и обеспечивают контекст выполнения для приложений, работающих на некотором наборе периферийных устройств. Насколько тип ОС на самом деле находится в принтере? Нет никакого способа узнать это без дополнительной информации (они только публикуют, что версия 9.86... может быть пользовательской, может быть любой из множества RTOS или GPOS); также неясно, находится ли ОС, указанная в прошивке, на самом деле в этой загрузке или просто обозначение, связанное с совместимостью.
Надеюсь, это поможет!
Прошивка - это приложение, которое занимает ВСЕ аппаратные ресурсы. Другими словами, не существует операционной системы, способной динамически загружать приложение в систему. Приложение является самой операционной системой. Приложение манипулирует ВСЕМИ ресурсами оборудования. Таким образом, приложение чрезвычайно интегрировано с аппаратным обеспечением, оно практически не может быть кросс-аппаратным. Именно поэтому приложение называется встроенным программным обеспечением: программное обеспечение устанавливается на указанное оборудование.
Например, встроенное программное обеспечение вашего кондиционера управляет указанным компрессором и указанной панелью управления. Таким образом, прошивка будет неработоспособна на других моделях кондиционеров. (Конечно, прошивка не работает на других приборах). Прошивка сильно зависит от аппаратного обеспечения.
Первоначально прошивка была определена как "Прошивка хранится в энергонезависимых запоминающих устройствах, таких как ПЗУ, СППЗУ или флэш-память". Но определение устарело: весь ваш компьютер будет только в прошивках, но без какого-либо программного обеспечения, если вы используете твердотельный диск (SSD) на этом компьютере.
С моей точки зрения, нет встроенного программного обеспечения для встроенного Linux, или вы должны называть все программное обеспечение как встроенные программы, когда вы используете SSD.