Компания Microsoft опубликовала открытый исходный код операционной системы реального времени, которую она приобрела вместе с компанией Express Logic, передав его в фонд Eclipse Foundation.
Речь идет про открытие набора средств разработки Azure RTOS и входящей в него ThreadX RTOS. Компания передала Azure RTOS под управление Eclipse Foundation, где она будет известна как Eclipse ThreadX и доступна под разрешительной лицензией MIT.
Хотя существует множество ОС реального времени — сокращенно RTOS — о них, как правило, мало что слышно. Возможно, вы никогда не слышали о ThreadX, но есть довольно большая вероятность, что у вас невольно есть несколько ее копий, которые лежат рядом или даже работают прямо сейчас.
Есть и более известные RTOS, такие как VxWorks от Wind River: она работает на Марсе, например, в ровере Perseverance от NASA. Есть и более известная ОС QNX, которая работала в линейке телефонов и смартфонов Blackberry компании RIM.
Однако и сама ThreadX довольно распространена. Microsoft утверждает, что под ее управлением работает 12 миллиардов устройств, и вы, возможно, являетесь владельцем некоторых из них. Некоторое время она использовалась в Intel для Management Engine. ОС также управляет всеми Raspberry Pi больше, чем Pi Pico. В Pi 1, 2 и 3 это файл на SD-карте вашего Pi под названием bootcode.bin; в Pi 4 и 400 он называется start*.elf. Несмотря на то, что он размещен на GitHub и включен в Debian, это проприетарный «блоб» (Binary Large OBject). Это метафорический запечатанный черный ящик, который даже не содержит кода Arm: вместо этого он работает на графическом процессоре VideoCore Pi. Это основное устройство, та часть, которая загружает Pi и управляет его аппаратным обеспечением: ядра Arm являются ведомыми устройствами для GPU VideoCore.
В 2019 году Microsoft приобрела владельцев ThreadX — компанию Express Logic — и переименовала ОС в Azure RTOS. После покупки оригинальный разработчик Уильям Лэми ушел, основав новую компанию, которая продает RTOS «пятого поколения» с POSIX-совместимыми потоками под названием PX5OS.