Pärast aasta arendust on välja antud RT-Thread 5.1, reaalajas operatsioonisüsteem (RTOS) asjade interneti seadmetele. Süsteem on välja töötatud alates 2006. aastast Hiina arendajate kogukonna poolt ja on praeguseks portitud 154 platvormile, kiibile ja mikrokontrollerile, mis põhinevad arhitektuuridel x86, ARM, MIPS, C-SKY, Xtensa, ARC ja RISC-V. RT-Threadi minimaalne kogum (Nano) vajab töötamiseks vaid 3 KB Flashi ja 1,2 KB RAM-i. IoT-seadmete jaoks, millel ei ole tõsiseid ressursipiiranguid, on saadaval täisfunktsionaalne versioon, mis toetab paketihaldust, konfigureerijaid, võrgu pinu, graafilise liidese rakenduste pakette, häälega juhtimise süsteeme, andmebaase, võrgu teenuseid ja skriptide täitmise mootoreid. Kood on kirjutatud C keeles ja levitatakse Apache 2.0 litsentsi alusel.
Operatsioonisüsteem koosneb kolmest põhitasandist:
- Tuuma, mis tagab ülesannete täitmise reaalajas. Tuum pakub universaalseid põhiprimitivesid, hõlmates selliseid valdkondi nagu lukustamise ja andmete sünkroniseerimise haldamine, ülesannete planeerimine, protsesside haldamine, signaalide töötlemine, sõnumijärjekorrad, taimerihaldus, mäluhaldus. Riistvaraspetsiifilised omadused on ellu viidud libcpu ja BSP tasemel, mis sisaldavad vajalikke draivereid ja koodi CPU toetamiseks.
- Tuuma- ja teenused, mis töötavad tuuma kohal ja pakuvad selliseid abstraktsioone nagu virtuaalne failisüsteem, erandi töötlemise süsteem, võtme/väärtuse formaat, käsurealiides FinSH, võrgu- jaotussüsteem (LwIP) ning võrgu raamistikud, seadmete toetamise raamatukogud, helisüsteem, traadita jaotus, Wi-Fi, LoRa, Bluetooth, 2G/4G toetas. Modulaarsed arhitektuurid võimaldavad ühendada komponente ja teenuseid vastavalt oma ülesannetele ja saadaval olevatele riistvararessurssidele.
- Tarkvarapakettid. Üldotstarbelised programmikomponendid ja funktsioonide teegid levitatakse ja installitakse pakettide kujul. Hetkel sisaldab hoidla üle 450 paketi, mis pakuvad alates graafilistest liidestest, multimeedia rakendustest ja võrgu rakendustest kuni robotite juhtimise süsteemide ja masinõppel põhinevate töötlejate juurde. Pakettides on ka mootorid programmide täitmise korraldamiseks keeltes Lua, JerryScript, MicroPython, PikaScript ja Rust (rtt_rust).

Platvormi omadused:
- Toetatud arhitektuurid:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (toetatakse mikroprotsessoreid tootjatelt nagu ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevice, Nordic, Nuvoton, NXP).
- ARM Cortex-R4.
- ARM Cortex-A8/A9 (NXP).
- ARM7 (Samsung).
- ARM9 (Allwinner, Xilinx, GOKE).
- ARM11 (Fullhan).
- MIPS32 (Loongson, Ingenic).
- RISC-V RV32E/RV32I[F]/RV64[D] (sifive, Canaan Kendryt, bouffalo_lab, Nuclei, T-Head, HPMicro).
- ARC (SYNOPSYS)
- DSP (TI).
- C-Sky.
- x86.
- Mõõdetav modulaarsus, mis võimaldab luua ressursipiirangutega süsteemide keskkonda (minimaalsed nõuded — 3 KB Flash ja 1,2 KB RAM).
- Toetab erinevaid standardseid liideseid programmide arendamiseks, nagu POSIX, CMSIS, C++ API. Eraldi arendatakse RTduino kihti, et tagada ühilduvus Arduino projekti API ja raamatukogudega.
- Võimalus laiendada paketihalduse ja pistikprogrammide süsteemi kaudu.
- Toetab rakenduste arendamist suure jõudlusega teabe töötlemiseks.
- Paindlik toitehalduse süsteem, mis võimaldab automaatselt seadme une režiimi viia ja dünaamiliselt juhtida pinget ja sagedust koormuse põhjal.
- Toetab riistvara krüpteerimist ja dekrüpteerimist, pakkudes raamatukogusid erinevate krüptograafiliste algoritmidega.
- Ühtne liides perifeersete seadmete ja täiendava riistvara juurde pääsemiseks.
- Virtuaalne failisüsteem ja draiverite olemasolu selliste failisüsteemide jaoks nagu FAT, UFFS, NFSv3, ROMFS ja RAMFS.
- Protokollide virn TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M jne.
- Kaugtuule- ja installatsioonisüsteem, mis toetab krüpteerimist ja digitaalse allkirjaga kontrollimist, katkestatud installatsiooni taastamist, taastumist rikke korral, muudatuste tagasiviimist jne.
- Dünaamiliselt laaditavate kernelimoodulite süsteem, mis võimaldab eraldi koguda ja arendada kernelikomponente ning dünaamiliselt neid laadida vajadusel.
- Toetab erinevaid kolmandate osapoolte pakette, näiteks Yaffs2, SQLite, FreeModbus, Canopen jne.
- Võimalus otse kompileerida BSP-paketti (emaplaadi toetuspakett) koos komponentidega, et toetada teatud riistvara platvormi, ja selle laadimist plaadile.
- Emulaator (BSP qemu-vexpress-a9), mis võimaldab arendada rakendusi ilma reaalseid plaate kasutamata.
- Toetab standardseid kompilaatoreid ja arendustööriistu, nagu GCC, MDK Keil ja IAR.
- Oma integreeritud arenduskeskkonna RT-Thread Studio IDE arendamine, mis võimaldab luua ja siluda rakendusi, laadida need plaatidele ning hallata seadistusi. RT-Threadi rakenduste arendamise pluginaid on saadaval ka Eclipse'i ja VS Code'i jaoks.
- Env konsooli liides, mis lihtsustab projektide loomist ja keskkonna seadistamist.
Uue väljaande muudatused:
- RT-Threadi põhjal üles ehitatud hübriidne operatsioonisüsteem RT-Smart, mis eraldab rakendused kernelist, sisaldab vaikimisi tuge epoll'i, eventfd, signalfd, timerfd ja select mehhanismidele. On rakendatud terminali emulaatori alamsüsteem. Lisatud tugi DFZU2EG MPSoC ja cv181x-riscv seadmetele.
- RTduino's layer for compatibility with the Arduino ecosystem now supports raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, and stm32f407-rt-spark boards.
- Updated third-party components, including ssh, sftp, weston, and vim.
- Support for new boards and chips has been added, such as HPMicro RISC-V, STM32 Nucleo, Adafruit Metro M4, Seeed Wio-Terminal, ST (stm32L431_tencentos, stm32h7s7-disco, stm32f407-lckfb-skystar, stm32h503-st-nucleo), Renesas (ek-ra8m1, ek-ra8d1, ra8d1-vision-board), AT32 (at32f402-start, at32f405-start), HT32 (ht32f52352, ht32f12366, AVR32 at32uc3a0256, at32uc3b0256), CVITEK (c906_little, cv18xx_risc-v), WCH (yd-ch32v307vct6), HC32 (ev_hc32f4a0_lqfp176, ev_hc32f460_lqfp100_v2), (ev_hc32f448_lqfp80, GD32 gd32407v-lckfb), and NXP (frdm-mcxn947, frdm-mcxa153).
- Optimized task scheduler and CPU operations. Added a layer for abstracting the rt_sched scheduler.
- Performed optimizations for multi-core systems.
- Provided the capability to connect handlers to memory allocation operations malloc.
- Implemented kernel backtrace support for ARM64 and RV64 architectures.
- Continued the transition to the new device driver model.
- Support for SDL2 has been added in virtio drivers qemu-virt64-aarch64 and qemu-virt64-riscv.
- Added a framework for developing clk drivers.
- DFS-i on lisatud exfat konfiguratsioon. Vaikimisi tuuma seadistus on muudetud kasutama failisüsteemi dfsv2.
- TTY terminálide tugi on parendatud.
- Sisendi/väljundi süsteemi on lisatud O_DIRECT ja O_SYNC lipud.
- Kergete protsesside lwP (Lightweight Process) teostuses on wp_new funktsioon vahetatud lwp_create funktsiooni vastu. Lisatud on funktsioon sys_setitimer.
- Mäluhaldur MM-is on lisatud mälu reserveerimise tugi ja teostatud funktsioon rt_aspace_mremap_range.
- Libcpu-s on lisatud ARM Cortex-M85 ja Cortex-R52 protsessorite tugi.
Allikas: opennet.ru
