ThreadX - ThreadX

Azure RTOS ThreadX
Windows Azure logo.png
РазработчикMicrosoft (изначально Express Logic)
Написано вC
Семейство ОСОперационная система реального времени (ОСРВ)
Рабочее состояниеТекущий
Исходная модельИсходное программное обеспечение
изначальный выпуск1997; 23 года назад (1997)
Последний релизv6.1.2_rel[1] / 10 ноября 2020 г.; 36 дней назад (2020-11-10)
Репозиторийgithub.com/ лазурный-rtos/ threadx/
Маркетинговая цельВстроенные системы, Интернет вещей: включая датчики, устройства, граничные маршрутизаторы, шлюзы
Метод обновленияПовторная установка
Менеджер пакетовНикто
ПлатформыARC, РУКА, Blackfin, CEVA, C6x, MIPS, NXP, ПОС, PowerPC, RISC-V, RX, SH, SHARC, TI, V850, Xtensa, x86, Холодный огонь, другие
Ядро типВстроенный, детерминированный, в реальном времени микроядро, пикоядро
Дефолт пользовательский интерфейсПоддержка встроенного пользовательского интерфейса (GUIX)
ЛицензияПроприетарный
Официальный веб-сайтлазурный.microsoft.com/ en-us/Сервисы/ rtos/

Azure RTOS ThreadX очень детерминированный, встроенный операционная система реального времени (RTOS) программируется в основном на языке C.

Обзор

ThreadX был первоначально разработан и продан компанией Express Logic из Сан-Диего, Калифорния, Соединенные Штаты. Автор ThreadX (и первоначальный автор Nucleus RTOS в 1990 году) - Уильям Лэми,[2] который также был президентом и главным исполнительным директором Express Logic.

Express Logic была куплена за неизвестную сумму компанией Microsoft 18 апреля 2019 г.[3]

Название ThreadX происходит от потоки которые используются в качестве исполняемых элементов, а буква Икс представляет переключение контекста, т.е. переключает потоки. ThreadX обеспечивает упреждающее планирование на основе приоритетов, быстрое прерывать отклик, управление памятью, межпоточная связь, взаимное исключение, уведомление о событии и цепочка синхронизация Особенности. Основные отличительные технологические характеристики ThreadX включают порог вытеснения, наследование приоритета, эффективное управление таймером, быстрые программные таймеры, пикоядро дизайн, цепочка событий и небольшой размер: минимальный размер на ARM архитектура процессор составляет около 2 КБ.

ThreadX поддерживает многоядерный процессор среды через либо асимметричная многопроцессорность (AMP) или симметричная многопроцессорная обработка (SMP). Изоляция потоков приложений с помощью блок управления памятью (MMU) или блок защиты памяти (MPU) защита памяти доступна с модулями ThreadX.

ThreadX имеет обширные сертификаты безопасности от Technischer Überwachungsverein (TÜV, англ .: Technical Inspection Association) и UL (ранее Underwriters Laboratories) и является Ассоциация надежности программного обеспечения автомобильной промышленности MISRA C совместимый.

ThreadX - это основа X-Ware от Express Logic Интернет вещей (IoT), которая также включает встроенные файловая система поддержка (FileX), встроенная поддержка пользовательского интерфейса (GUIX), встроенная Набор интернет-протоколов (TCP / IP) и подключение к облаку (NetX / NetX Duo) и универсальная последовательная шина (USB ) поддержка (USBX). ThreadX получил высокую оценку разработчиков и является очень популярной ОСРВ.[4] По состоянию на 2017 годПо данным исследовательской компании VDC Research, ThreadX RTOS стала одной из самых популярных ОСРВ в мире, ее развернули в более чем 6,2 миллиарда устройств, включая бытовую электронику, медицинские устройства, приложения для передачи данных и SoC.[5]

ThreadX распространяется с использованием маркетинговой модели, в которой исходный код предоставляется и лицензии находятся бесплатно.

Поддерживаемые платформы

История

ThreadX был впервые представлен в 1997 году. ThreadX 4 был представлен в 2001 году. ThreadX 5 был представлен в 2005 году и является последней версией по состоянию на 2020 год..

FileX - встроенная файловая система для ThreadX была представлена ​​в 1999 году.

NetX - встроенный сетевой стек TCP / IP для ThreadX был представлен в 2002 году.

USBX - встроенная поддержка USB для ThreadX была представлена ​​в 2004 году.

ThreadX SMP для многоядерных сред SMP был представлен в 2009 году.

Модули ThreadX были представлены в 2011 году.

ThreadX получил сертификаты безопасности: TÜV IEC 61508 в 2013 году и UL 60730 в 2014 году.

GUIX - встроенный пользовательский интерфейс для ThreadX был представлен в 2014 году.

Express Logic была куплена за неизвестную сумму компанией Microsoft 18 апреля 2019 г.[3]

Технологии

ThreadX реализует основанный на приоритетах алгоритм упреждающего планирования с собственной функцией, называемой preemption-threshold. Было показано, что последний обеспечивает большую степень детализации в критических секциях, уменьшает переключение контекста и стал предметом научных исследований по обеспечению планирования.[6]

ThreadX предоставляет уникальную конструкцию, называемую цепочкой событий,[7] где приложение может зарегистрировать функцию обратного вызова на всех интерфейсы прикладного программирования (API), которые могут сигнализировать о внешнем событии. Это помогает приложениям объединять различные общедоступные объекты в ThreadX, так что один поток может эффективно блокировать несколько объектов.

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

ThreadX предлагает многоядерный процессор поддержка через AMP или SMP. Изоляция кода приложения доступна через компонент ThreadX Modules.

Основные компоненты

Компоненты ThreadX RTOS включают:

  1. Встроенная файловая система
  2. Встроенный графический интерфейс пользователя
  3. Встроенная сеть
  4. Встроенный USB
  5. Сертификат безопасности
  6. Упаковка

Встроенная файловая система

FileX - это встроенная файловая система для ThreadX. FileX поддерживает FAT12, 16, 32, и exFAT форматы. Последний увеличивает размер файлов FAT за пределы 4 ГБ, что особенно полезно для видеофайлов, и для его использования требуется лицензия непосредственно от Microsoft. FileX также предлагает отказоустойчивость и поддерживает прямые NOR и NAND. флэш-память через продукт для выравнивания износа, называемый LevelX.

Встроенный графический интерфейс пользователя

GUIX - это встроенный графический интерфейс пользователя (GUI) для ThreadX. GUIX предоставляет 2D система времени выполнения (среда) для встроенных приложений, работающих под управлением ThreadX. GUIX поддерживает несколько устройства отображения с различными разрешениями экрана и глубиной цвета. Многие предопределенные графические виджеты доступны. Окна WYSIWYG Хост-инструмент под названием GUIX Studio автоматически генерирует код C для GUIX для выполнения во время выполнения.

Встроенная сеть

NetX Duo - это встроенная система TCP / IP для ThreadX. NetX Duo поддерживает оба IPv4 и IPv6 сеть вместе с такими протоколами, как ARP, Auto IP, DHCP, DNS, DNS-SD, FTP, HTTP, ICMP, IGMP, mDNS, POP3, PPP, PPPoE, RARP, TFTP, SNTP, SMTP, SNMP и TELNET. Сетевая безопасность на уровне IP обеспечивается IPsec. Безопасность на уровне сокетов TCP и UDP обеспечивается TLS и DTLS соответственно. Поддержка протокола IoT Cloud включает CoAP, MQTT и LWM2M. NetX Duo также поддерживает Нить и 6LoWPAN. В 2017 году ThreadX и NetX Duo стали сертифицированным продуктом Thread.[8]

Встроенный USB

USBX - это встроенная универсальная последовательная шина (USB ) для ThreadX. USBX поддерживает как хост, так и устройство. Поддержка хост-контроллеров включает EHCI, OHCI и проприетарные хост-контроллеры USB. USBX также поддерживает OTG. Поддержка класса USBX включает аудио, Asix, CDC / ACM, CDC / ECM, DFU, GSER, HID, PIMA, Printer, Prolific, RNDIS и Storage.

Сертификат безопасности

ThreadX (а также FileX и NetX Duo) прошли предварительную сертификацию SGS-TÜV Saar на соответствие следующим стандартам безопасности: IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL D и EN 50128 SW-SIL 4.

ThreadX (а также FileX и NetX Duo) прошли предварительную сертификацию UL на соответствие следующим стандартам безопасности: UL / IEC 60730, UL / IEC 60335, UL 1998.

ThreadX также был сертифицирован по стандартам DO-178 различными военными и аэрокосмическими компаниями. Поддерживается популярными Безопасность транспортного уровня (SSL / TLS) библиотеки Такие как wolfSSL.[9]

Упаковка

По состоянию на 2017 год ThreadX полностью входит в состав платформы X-Ware IoT. исходный код и без времени выполнения выплата роялти.

Продукты, использующие это

Некоторые известные продукты, использующие ThreadX, варьируются от небольших носимых устройств до Принтеры Hewlett-Packard, и даже НАСА С Существенное воздействие Космический зонд.[10]

В Raspberry Pi линия одноплатного персональные компьютеры запускает ThreadX как двоичный blob на графический процессор (GPU). Это контролирует начальный загрузка, который, в свою очередь, используется для загрузки дополнительных операционных систем, таких как Linux, и продолжает работать в более привилегированной роли даже после процесса загрузки.[11]

Смотрите также

Рекомендации

  1. ^ https://github.com/azure-rtos/threadx/tags
  2. ^ Коул, Бернард; МакКоннел, Тони (сентябрь 2010 г.). «Билл Лэми: история человека и его операционных систем в реальном времени». Встроенный.
  3. ^ а б Джанакирам, MSV (апрель 2019 г.). «Как Express Logic Acquisition помогает Microsoft и экосистеме Интернета вещей».
  4. ^ Карбоне, Джон. «Высокопроизводительная ОСРВ« ThreadX »: Экспресс-логика: сокращение времени вывода на рынок и снижение затрат на разработку». Renesas.
  5. ^ «Интернет вещей и встроенные операционные системы». VDC Research. Получено 2018-07-31.
  6. ^ Ван, Юнь; Саксена, Манас. «Планирование задач с фиксированным приоритетом с порогом приоритетности» (PDF). Департамент компьютерных наук. Университет Юты.
  7. ^ «Цепочка событий позволяет системам реального времени более эффективно реагировать на множество событий в реальном времени» (PDF). Экспресс-логика.
  8. ^ «Продукция, сертифицированная для ниток». Группа потоков.
  9. ^ "wolfSSL с улучшенной поддержкой ThreadX / NetX". wolfSSL. 2018-01-16. Получено 2019-02-13.
  10. ^ «Deep Impact НАСА использует встроенные системы, чтобы засечь яблочко на расстоянии 80 миллионов миль». Военные встроенные системы.
  11. ^ "Что не так с Raspberry Pi". Владейте своими битами.

внешняя ссылка