Подтвердить что ты не робот

В чем разница между RTOS и Embedded Linux?

RTOS и Embedded Linux используются для программирования встроенных систем. Является ли встроенная Linux самой RTOS? Может ли кто-нибудь указать сравнение или разницу?

4b9b3361

Ответ 1

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

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

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

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

Еще одна проблема со встроенным Linux заключается в том, что ему требуются значительные ресурсы ЦП, возможно,> 200MIPS, 32-битный процессор, в идеале с MMU, 4 МБ ПЗУ и 16 МБ ОЗУ для загрузки (что может занять несколько секунд). RTOS, с другой стороны, может работать в течение миллисекунд, работать менее чем на 10 КБ на микроконтроллерах с 8-разрядной версией. Это может оказать значительное влияние на стоимость системы для массового производства, несмотря на то, что якобы "бесплатное".

Существуют более крупные продукты RTOS, которые демонстрируют некоторые функции GPOS, такие как динамическая загрузка, файловые системы, работа в сети, GUI (например, в QNX), и многие RTOS предоставляют API POSIX (обычно вторичный по отношению к их собственному API реального времени) например, VxWorks и снова QNX, так что значительная часть кода, разработанного для Linux и Unix, может быть относительно легко перенесена. Эти более крупные и всеобъемлющие продукты RTOS остаются масштабируемыми, поэтому не требуются функциональные возможности. Linux по сравнению имеет гораздо более ограниченную масштабируемость.