Встроенная операционная система (EOS) — это операционная система , разработанная специально для встраиваемых компьютерных систем . Эти системы направлены на повышение функциональности и надежности для выполнения специальных задач. [1] Когда используемый метод многозадачности позволяет своевременно выполнять задачи, такая ОС может квалифицироваться как операционная система реального времени (RTOS). [2]
Встроенные операционные системы являются неотъемлемой частью потребительской электроники , такой как камеры и мобильные телефоны . Кроме того, они питают автомобильную электронику , помогая в таких функциях, как круиз-контроль и навигация . Более того, они необходимы для инфраструктуры автоматизации производства . Повседневные приложения EOS включают в себя устройства автоматизации офиса, такие как сканеры изображений , копировальные аппараты и беспроводные точки доступа . Системы домашней автоматизации , включая системы безопасности , также зависят от EOS. [3]
Встроенные системы включают процессор и соответствующее программное обеспечение . Встроенное программное обеспечение требует хранения для исполняемых файлов и временной обработки данных во время выполнения . Встроенные системы обычно используют ПЗУ и ОЗУ в качестве основных компонентов памяти. Для функциональности встраиваемым системам необходимы интерфейсы ввода и вывода. Конфигурации встроенного оборудования часто уникальны и различаются в зависимости от приложения. [4] Учитывая ограниченность ресурсов встроенного системного оборудования, операционные системы разрабатываются с узкой областью применения, адаптированной к конкретным приложениям, чтобы обеспечить оптимальную работу в рамках аппаратных ограничений. Выбор встроенной операционной системы, которая организует и управляет оборудованием, часто диктует дополнительные требуемые встроенные аппаратные компоненты.
Разработчики программного обеспечения могут писать необходимый код на языке ассемблера , чтобы использовать всю вычислительную мощность центрального процессора (ЦП). Язык ассемблера, будучи машинно-эффективным, может повысить скорость в детерминированных системах , но может снизить переносимость и удобство обслуживания . Часто встроенные операционные системы кодируются на переносимых языках программирования, таких как C.
Концепция многозадачного ядра реального времени появилась в конце 1970-х годов. В 1980-х годах, по мере того как приложения для встроенных систем становились все сложнее, операционные системы с многозадачными ядрами реального времени боролись за то, чтобы соответствовать меняющимся требованиям разработки встроенных систем. Это привело к эволюции многозадачного ядра реального времени в комплексную операционную систему ( RTOS ), охватывающую сетевые возможности, управление файлами, разработку и отладку .
Сегодня RTOS представляет собой глобальную индустрию. В 1981 году Ready System разработала VRTX32, первое в мире коммерческое встраиваемое ядро реального времени. В 1993 году, после слияния, Ready System и Microtec Research из Кремниевой долины разработали два новых ядра RTOS, VRTX32 и VRTXsa, на основе VRTXmc . Одновременно была представлена интегрированная среда разработки VRTX, Spectra.
В 1996 году Microsoft выпустила свою встроенную операционную систему WinCE , которая поддерживала различные архитектуры процессоров, включая x86 , ARM , SH4 и MIPS . С тех пор WinCE устарела, а ее основная поддержка прекратилась в 2018 году. [5]
OS-9 и VxWorks также являются известными встраиваемыми операционными системами.
В современном ландшафте Интернета вещей (IoT) встроенные устройства встречаются повсеместно, и только автомобили используют сотни датчиков. Системы IoT, в отличие от традиционных встроенных систем, требуют меньшего энергопотребления, повышенной безопасности и надежности, а также возможности для ad hoc сетей [ необходима цитата ] . Уровень связи должен облегчать преобразование между различными протоколами, в то время как уровень приложений должен обеспечивать возможности облачных вычислений через Интернет .
В результате этого популярность приобрели несколько новых встраиваемых операционных систем, таких как варианты Embedded Linux [6] ( OpenWrt , Zeroshell , Android , LineageOS , LEDE , LibreCMC ), OpenHarmony , Oniro OS , HarmonyOS , NetBSD , [7] PX5 RTOS , ThreadX , FreeRTOS и другие.
Многочисленные проекты, наборы инструментов и фреймворки на основе Linux были разработаны для создания операционных систем, работающих на различных встраиваемых системах. Яркие примеры включают OpenEmbedded , BusyBox , uClibc , musl libc и Buildroot .