ThreadX - ThreadX
Эта статья слишком полагается на Рекомендации к основные источники.Ноябрь 2010 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Разработчик | Microsoft (изначально Express Logic) |
---|---|
Написано в | C |
Семейство ОС | Операционная система реального времени (ОСРВ) |
Рабочее состояние | Текущий |
Исходная модель | Исходное программное обеспечение |
изначальный выпуск | 1997 |
Последний релиз | v6.1.2_rel[1] / 10 ноября 2020 г. |
Репозиторий | github |
Маркетинговая цель | Встроенные системы, Интернет вещей: включая датчики, устройства, граничные маршрутизаторы, шлюзы |
Метод обновления | Повторная установка |
Менеджер пакетов | Никто |
Платформы | ARC, РУКА, Blackfin, CEVA, C6x, MIPS, NXP, ПОС, PowerPC, RISC-V, RX, SH, SHARC, TI, V850, Xtensa, x86, Холодный огонь, другие |
Ядро тип | Встроенный, детерминированный, в реальном времени микроядро, пикоядро |
Дефолт пользовательский интерфейс | Поддержка встроенного пользовательского интерфейса (GUIX) |
Лицензия | Проприетарный |
Официальный веб-сайт | лазурный |
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 распространяется с использованием маркетинговой модели, в которой исходный код предоставляется и лицензии находятся бесплатно.
Поддерживаемые платформы
- Аналоговые устройства
- Blackfin
- CM4xx
- Прецизионные микроконтроллеры
- SHARC
- Микроконтроллеры ULP
- Андские технологии
- RISC-V
- ARM архитектура
- ARM7
- ARM9
- ARM Cortex-A
- ARM Cortex-R
- ARM Cortex-M
- ARM Cortex-A 64-разрядная.
- ARMv8M TrustZone
- Каденция
- Xtensa
- CEVA
- ТикЛайт-III
- eSi-RISC
- eSi-16x0
- eSi-32x0
- Infineon
- XMC1000
- XMC4000
- Intel
- Ниос II
- Циклон
- Аррия 10
- x86
- Микрочип
- AVR32
- PIC24
- dsPIC33
- PIC32
- ЗРК C-V
- SAM9
- SAMA5
- Архитектура MIPS
- MIPS32 4Kx
- MIPS32 14Kx
- MIPS32 24Kx
- MIPS32 34Kx
- MIPS32 74Kx
- MIPS32 1004Kx
- interAptiv
- микроАптив
- proAptiv
- М-класс
- NXP
- Холодный огонь + / Холодный огонь
- i.MX
- Kinetis
- LPC
- PowerPC
- S32
- Renesas
- H8 / 300H
- RX
- RZ
- SH
- Синергия
- V850
- ST
- STM32F0
- STM32F1
- STM32F2
- STM32F3
- STM32F4
- STM32F7
- STM32L
- Силиконовые лаборатории
- Геккон
- Гигантский геккон
- Гигантский геккон S1
- Счастливый геккон
- Нефритовый геккон
- Леопардовый геккон
- Жемчужный геккон
- Крошечный геккон
- Чудо-геккон
- Нулевой геккон
- Synopsys
- ARC
- ARC 600
- ARC 700
- ARC EM
- ARC HS
- Инструменты Техаса
- C674x
- C64x +
- Геркулес
- MSP430
- SimpleLink MSP432
- Ситара
- Тива-С
- Xilinx
- Microblaze
- Zynq-7000
- Zynq UltraScale +
История
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 включают:
- Встроенная файловая система
- Встроенный графический интерфейс пользователя
- Встроенная сеть
- Встроенный USB
- Сертификат безопасности
- Упаковка
Встроенная файловая система
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]
Смотрите также
- Intel Management Engine (МНЕ)
Рекомендации
- ^ https://github.com/azure-rtos/threadx/tags
- ^ Коул, Бернард; МакКоннел, Тони (сентябрь 2010 г.). «Билл Лэми: история человека и его операционных систем в реальном времени». Встроенный.
- ^ а б Джанакирам, MSV (апрель 2019 г.). «Как Express Logic Acquisition помогает Microsoft и экосистеме Интернета вещей».
- ^ Карбоне, Джон. «Высокопроизводительная ОСРВ« ThreadX »: Экспресс-логика: сокращение времени вывода на рынок и снижение затрат на разработку». Renesas.
- ^ «Интернет вещей и встроенные операционные системы». VDC Research. Получено 2018-07-31.
- ^ Ван, Юнь; Саксена, Манас. «Планирование задач с фиксированным приоритетом с порогом приоритетности» (PDF). Департамент компьютерных наук. Университет Юты.
- ^ «Цепочка событий позволяет системам реального времени более эффективно реагировать на множество событий в реальном времени» (PDF). Экспресс-логика.
- ^ «Продукция, сертифицированная для ниток». Группа потоков.
- ^ "wolfSSL с улучшенной поддержкой ThreadX / NetX". wolfSSL. 2018-01-16. Получено 2019-02-13.
- ^ «Deep Impact НАСА использует встроенные системы, чтобы засечь яблочко на расстоянии 80 миллионов миль». Военные встроенные системы.
- ^ "Что не так с Raspberry Pi". Владейте своими битами.