Udgaven af RT-Thread 5.3, et realtidsoperativsystem (RTOS) til IoT-enheder, er blevet offentliggjort. Systemet har været under udvikling siden 2006 af et fællesskab af kinesiske udviklere og er i øjeblikket portet til 155 platforme, chips og mikrocontrollere baseret på x86, ARM, MIPS, C-SKY, Xtensa, ARC og RISC-V arkitekturer. Den minimalistiske version af RT-Thread (Nano) kræver kun 3 KB Flash og 1,2 KB RAM for at køre. For IoT-enheder, som ikke er hårdt begrænset af ressourcer, tilbydes en fuldt funktionel version, der understøtter pakkehåndtering, konfigurerbare indstillinger, netværksstak, pakker med grafisk brugergrænseflade, stemmeaktiverede systemer, databaser, netværkstjenester og skriptsystemer. Koden er skrevet i C og distribueres under Apache 2.0-licensen.
Operativsystemet består af tre grundlæggende lag:
- Kernen, der muliggør udførelse af opgaver i realtid. Kernen tilbyder universelle grundlæggende primitive, der dækker områder som låshåndtering og datasynkronisering, opgaveplanlægning, trådadministration, signalbehandling, meddelelseskøer, timerstyring og hukommelsesstyring. Hardware-specifikke funktioner er implementeret på libcpu- og BSP-niveauet, som inkluderer nødvendige drivere og kode til understøttelse af CPU.
- Komponenter og tjenester, der arbejder oven på kernen og tilbyder sådanne abstraktioner som virtuel filsystem, undtagelseshåndteringssystem, lager i nøgle/værdi-format, kommandolinjegrænseflade FinSH, netværksstak (LwIP) og netværksrammer, biblioteker til støtte for enheder, lydundersystem, trådløs stak, komponenter til støtte for Wi-Fi, LoRa, Bluetooth, 2G/4G. Den modulære arkitektur muliggør tilslutning af komponenter og tjenester afhængigt af ens opgaver og tilgængelige hardware-ressourcer.
- Programmer, der er tilgængelige i pakker. Funktionelle komponenter og funktionsbiblioteker distribueres og installeres i form af pakker. I øjeblikket inkluderer repository over 450 pakker, der tilbyder alt fra grafiske grænseflader, multimediaapplikationer og netværksapplikationer til robotstyringssystemer og machine learning-baserede håndterere. Pakkerne indeholder også motorer til at organisere programudførelse på sprog som Lua, JerryScript, MicroPython, PikaScript og Rust (rtt_rust).

Platformfunktioner:
- Understøttelse af arkitekturer:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (understøttede mikrocontrollere omfatter producenter som 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.
- Udvidelig modulær arkitektur, der muliggør oprettelse af et miljø, der er velegnet til systemer med begrænsede ressourcer (minimumskrav — 3 KB Flash og 1,2 KB RAM).
- Understøttelse af forskellige standardgrænseflader til softwareudvikling, såsom POSIX, CMSIS, C++ API. En separat lag RTduino udvikles for at sikre kompatibilitet med API'er og biblioteker fra Arduino-projektet.
- Mulighed for udvidelse gennem et pakke- og komponentbaseret system.
- Understøttelse af applikationsudvikling til højtydende databehandling.
- Fleksibel strømbesparende styringssystem, der muliggør automatisk at sætte enheder i dvaletilstand og dynamisk styre spænding og frekvens afhængigt af belastningen.
- Understøttelse af hardware til kryptering og dekryptering, levering af biblioteker med forskellige kryptografiske algoritmer.
- Standardiseret grænseflade for adgang til perifere enheder og ekstra udstyr.
- Virtuel filsystem og tilgængelighed af drivere for filsystemer som FAT, UFFS, NFSv3, ROMFS og RAMFS.
- Protokolstack for TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M osv.
- Et system til fjernlevering og installation af opdateringer, der understøtter kryptering og verifikation ved digital signatur, genoptagelse af afbrudt installation, genopretning efter fejl, tilbagerulning af ændringer osv.
- Et system med dynamisk indlæselige kernelmoduler, der muliggør separat bygning og udvikling af kernelkomponenter, og dynamisk indlæsning af disse, når behovet opstår.
- Understøttelse af forskellige tredjepartspakker, såsom Yaffs2, SQLite, FreeModbus, Canopen osv.
- Mulighed for direkte kompilering af BSP-pakken (Board Support Package) med komponenter til støtte for en bestemt hardwareplatform og dens indlæsning på boardet.
- Tilstedeværelsen af en emulator (BSP qemu-vexpress-a9), der muliggør udvikling af applikationer uden brug af fysiske boards.
- Understøttelse af standardkompilatorer og udviklingsværktøjer som GCC, MDK Keil og IAR.
- Udviklingen af et eget integreret udviklingsmiljø, RT-Thread Studio IDE, der gør det muligt at skabe og debugge applikationer, indlæse dem på boards og administrere indstillinger. Plugins til udvikling af programmer til RT-Thread er også tilgængelige for Eclipse og VS Code.
- Tilstedeværelsen af et konsolinterface Env, der forenkler oprettelsen af projekter og konfigurationen af miljøet.
Blandt ændringerne i den nye udgave:
- Støtten til udvikling af komponenter i Rust-sproget er blevet udvidet. Rust-bindings er tilføjet for tråde, mutexer, semaforer, meddelelser, samt operationer med hukommelse, tid og filer. Komponenter til integration med SCons og Cargo er implementeret. Automatisk bestemmelse af målplatforme ARM, AArch64 og RISC-V er blevet sikret. Procedurale makroer til initialization og registrering af kommandoer er blevet tilføjet.
- Support for Open Firmware-standarden er inkluderet for Cortex-M mikrocontrollere med en beskrivelse af periferiudstyr via Device Tree.
- Support for VirtIO 1.2 er tilføjet med mulighed for at bruge pakkekøer, transportkanaler MMIO/PCI og DMA-synkronisering. VirtIO-drivere til 9P, crypto, RNG, SCMI og SCSI er tilføjet. VirtIO-drivere til netværk, blok-enheder, konsoller, indput-enheder og GPU er opdateret.
- Et DVFS (Dynamic Voltage and Frequency Scaling) framework er blevet tilføjet til dynamisk styring af CPU- og enhedsfrekvenser. Integration med ARM SCMI firmwaren for energiforvaltning er sikret. Forbedret styring af kølere.
- Support for TEE-miljøer (Trusted Execution Environment) og RPMSG (Remote Processor Messaging) mekanisme er tilføjet.
- Support for Unix-sokler er blevet implementeret.
- Support for beskyttelsesmæssige mekanismer til trådløse netværk WPA3, EA (Enterprise Authentication), WAPI, OWE og DPP er tilføjet.
- Support for PTP (Precision Time Protocol) tidssynkroniseringsprotokollen er tilføjet.
- Clock Time framework er blevet tilføjet til arbejdet med tid, hvilket understøtter højpræcise timere og tidssynkronisering fra flere kilder. Den nye ramme erstatter tidligere anvendte komponenter som ktime, cputime og hwtimer.
- Filsystemet 9PFS er implementeret, som anvendes til filudveksling mellem værtsmiljøet og virtuelle maskiner.
- Implementeringen af letvægtsprocesser lwP (Lightweight Process) har fået support til ARM-arkitektur og understøttelse af vDSO (virtual dynamic shared object), der muliggør overførsel af håndteringsfunktioner fra kernen til brugerens rum og undgår kontekstskift.
- Kernen har fået støtte til 8- og 16-bit atomære operationer.
- Understøttelse af symmetrisk multiprosessor (SMP) er blevet tilføjet for RISC-V processorer af XuanTie C/R serien og emulatoren QEMU virt64.
- USB-stakken CherryUSB 1.6.1 er opdateret.
- Nye DM-drivere (Device Manager) for UFS, AHCI, NVMe, Ethernet, Intel HDA, joysticks og touchskærme er blevet tilføjet.
Kilde: opennet.ru
