A micro-kernel - это:
... почти минимальное количество программного обеспечения, которое может обеспечить механизмы, необходимые для реализации операционной системы (ОС).Эти механизмы включают в себя низкоуровневое управление адресным пространством, управление потоками и межпроцессное взаимодействие (IPC).( Википедия 11 декабря 2018 )
Ядро eCos описано в Справочном руководстве , таким образом:
Это обеспечиваетОсновные функциональные возможности, необходимые для разработки многопоточных приложений:
Возможность создавать новые потоки в системе, либо во время запуска, либо когда система уже запущена.
Контроль над различными потоками в системе, например, манипулирование их приоритетами.
Выбор планировщиков, определяющих, какой поток должен в данный момент выполняться.
Диапазон примитивов синхронизации, позволяющих потокам безопасно взаимодействовать и обмениваться данными.
Интеграция с системной поддержкой прерываний и исключений.
При сравнении этих описаний вполне понятно микроядро.Другие сервисы, предоставляемые eCos, такие как файловые системы, сетевые драйверы и драйверы устройств, являются внешними и отделимы от ядра.Другими словами, вы можете развернуть ядро без таких сервисов, и оно остается жизнеспособным.
В монолитном ядре эти сервисы трудно или невозможно разделить, поскольку они являются неотъемлемой частью целого.В отличие от eCos и большинства других ОСРВ, они плохо масштабируются для небольших аппаратных платформ, распространенных во встроенных системах.Монолитные ядра подходят для настольных и универсальных вычислительных платформ, поскольку сами платформы являются монолитными - ПК без файловой системы, дисплея, клавиатуры и т. Д. На самом деле не является жизнеспособным, тогда как во встроенной системе это не так.
Хотя Linux и даже Windows используются во встроенных системах, микроядро можно развернуть на платформах с несколькими десятками килобайт памяти, тогда как для минимального встроенного Linux, например, требуется несколько мегабайт и будет включать в себя большое количество кода, который ваше приложение может никогда не использовать.
В конечном счете, различие, возможно, не имеет значения, как и терминология.Что есть, то есть.Вы выбираете не свое ядро или операционную систему по этим критериям, а выбираете, предоставляет ли она необходимые вам службы, работает ли она на вашей цели и вписывается в доступный ресурс.