Megjelent az RT-Thread 5.3 kiadása, az internetes dolgokhoz (IoT) készült valós idejű operációs rendszer (RTOS). A rendszert 2006 óta kínai fejlesztők közössége fejleszti, és jelenleg 155 platformra, chipre és mikrovezérlőre portolták, az x86, ARM, MIPS, C-SKY, Xtensa, ARC és RISC-V architektúrák alapján. A minimalista RT-Thread (Nano) összeállítás működéséhez mindössze 3 KB Flash és 1.2 KB RAM szükséges. Az IoT-eszközök számára, amelyek nem szorulnak erőforrás-korlátozásokra, egy teljes funkcionalitású verzió ajánlott, amely támogatja a csomagkezelést, konfigurálókat, hálózati veremeket, grafikus felhasználói felületek megvalósítását, hangvezérlő rendszereket, adatbázisokat, hálózati szolgáltatásokat és scriptvégrehajtó motorokat. A kód C nyelven íródott és az Apache 2.0 licensz alatt terjesztik.
Az operációs rendszer három alapvető rétegből áll:
- Az operációs rendszer magja, amely biztosítja a valós idejű feladatvégzést. A mag általános alapvető primitívokat biztosít, amelyek olyan területeket ölelnek fel, mint a zároláskezelés és az adatok szinkronizálása, feladatütemezés, szálkezelés, jelkezelés, üzenetsorok, időzítőkezelés, memória kezelés. A hardver-specifikus jellemzők a libcpu és a BSP szintjén valósulnak meg, amelyek tartalmazzák a szükséges meghajtókat és a CPU támogatásához szükséges kódot.
- A mag fölött működő komponensek és szolgáltatások, amelyek olyan absztrakciókat kínálnak, mint a virtuális fájlrendszer, kivételkezelő rendszer, kulcs/érték tárolási formátum, FinSH parancssori felület, hálózati verem (LwIP) és hálózati keretrendszerek, eszköz támogatására szolgáló könyvtárak, hangalrendszer, vezeték nélküli verem, Wi-Fi, LoRa, Bluetooth, 2G/4G támogatására szolgáló komponensek. A moduláris architektúra lehetővé teszi, hogy a komponensek és szolgáltatások az adott feladatok és az elérhető hardver-erőforrások függvényében csatlakoztathatók legyenek.
- Programcsomagok. Az általános célú programkomponensek és funkciókönyvtárak csomagok formájában terjesztésre és telepítésre kerülnek. Jelenleg a tároló több mint 450 csomagot tartalmaz, amelyek grafikus felületektől, multimédiás alkalmazásoktól és hálózati alkalmazásoktól kezdve, robotikai vezérlőrendszereken és gépi tanuláson alapuló feldolgozókon keresztül működnek. A csomagok tartalmaznak motorokat is, amelyek lehetővé teszik a programok végrehajtását Lua, JerryScript, MicroPython, PikaScript és Rust (rtt_rust) nyelveken.

A platform jellemzői:
- Architektúrák támogatása:
- ARM Cortex-M0/M0+/M3/M4/M7/M23/M33 (támogatott mikrokontroller gyártók, mint például az ST, Winner Micro, MindMotion, Realtek, Infineon, GigaDevic, 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.
- Bővíthető modulos architektúra, amely lehetővé teszi egy olyan környezet kialakítását, amely alkalmas korlátozott erőforrású rendszerekhez (minimum követelmények — 3 KB Flash és 1.2 KB RAM).
- Különböző szabványos interfészek támogatása szoftverfejlesztéshez, mint például a POSIX, CMSIS, C++ API. Külön projektként fejlesztik az RTduino réteget az API és az Arduino projekt könyvtáraival való kompatibilitás érdekében.
- Bővíthetőség csomagok és csatlakoztatható komponensek révén.
- Alkalmazásfejlesztés támogatása nagy teljesítményű információfeldolgozáshoz.
- Rugalmas energiafelhasználás-kezelő rendszer, amely lehetővé teszi az eszköz automatikus alvó módba állítását és a feszültség és frekvencia dinamikus kezelését a terhelés függvényében.
- Hardveres támogatás titkosításhoz és visszafejtéshez, különböző kriptográfiai algoritmusokkal rendelkező könyvtárak biztosítása.
- Egységesített interfész a perifériás eszközökhöz és kiegészítő berendezésekhez.
- Virtuális fájlrendszer és támogatás a FAT, UFFS, NFSv3, ROMFS és RAMFS fájlrendszerekhez.
- TCP/IP, Ethernet, Wi-Fi, Bluetooth, NB-IoT, 2G/3G/4G, HTTP, MQTT, LwM2M és hasonló protokollok halmaza.
- Távfrissítési és telepítési rendszer, amely támogatja a titkosítást és a digitális aláírást, lehetőséget nyújt a megszakított telepítések folytatására, a hiba utáni helyreállításra, a módosítások visszavonására stb.
- A dinamikusan betöltődő moduláris rendszer, amely lehetővé teszi a kernel összetevőinek különálló összeállítását és fejlesztését, valamint az azok dinamikus betöltését szükség esetén.
- Támogatás különböző harmadik féltől származó csomagokhoz, például Yaffs2, SQLite, FreeModbus, Canopen stb.
- Lehetőség közvetlen BSP-csomag (Hardver Támogatási Csomag) fordítására, amely meghatározott hardverplatform támogatásához szükséges komponenseket tartalmaz, és annak feltöltésére a panelre.
- Elérhető egy emulátor (BSP qemu-vexpress-a9), amely lehetővé teszi alkalmazások fejlesztését valós panel használata nélkül.
- Támogatás a szabványos fordítók és fejlesztőeszközök számára, mint például GCC, MDK Keil és IAR.
- Folyamatosan fejlődő integrált fejlesztői környezet RT-Thread Studio IDE, amely lehetővé teszi alkalmazások létrehozását és debuggolását, azok panelre való feltöltését és a beállítások kezelését. RT-Thread programok fejlesztéséhez pluginek érhetők el az Eclipse és a VS Code számára is.
- Elérhető az Env konzolos felület, amely megkönnyíti a projektek létrehozását és a környezet beállítását.
A legújabb verzióban bekövetkezett változások:
- Kibővített támogatás a Rust nyelven történő komponensfejlesztéshez. Rust kötések kerültek hozzáadásra szálakhoz, mutexekhez, szemaforokhoz, üzenetsorokhoz, valamint memória-, idő- és fájlkezelési műveletekhez. Implementálva lett az integrácó az SCons és a Cargo eszközökkel. Automatikus célplatform-azonosítás ARM, AArch64 és RISC-V esetén. Hozzáadtak eljárási makrókat a parancsok inicializálásához és regisztrálásához.
- A Cortex-M mikrokontrollerhez bekapcsolták az Open Firmware szabvány támogatását a perifériák Device Tree-n keresztüli leírásával.
- Hozzáadva a VirtIO 1.2 támogatás, amely lehetővé teszi a csomagsorok, MMIO/PCI szállítások és DMA szinkronizáció használatát. Hozzáadták a 9P, crypto, RNG, SCMI és SCSI VirtIO meghajtókat. Frissítették a hálózati, blokkberendezési, konzolos, bemeneti eszközöket és GPU-ra vonatkozó VirtIO meghajtókat.
- Hozzáadva a DVFS (Dinamikus Feszültség- és Frekvencia Skálázás) keretrendszer a CPU és eszközök frekvenciájának dinamikus kezeléséhez. Integrálva lett az ARM SCMI firmware-rel az energiafogyasztás kezelésére. Fejlesztették a hűtők vezérlését.
- Hozzáadva a TEE-környezetek (Megbízható Végrehajtási Környezet) és az RPMSG (Távprocesszor Üzenetküldés) mechanizmusok támogatása.
- A Unix-socketek támogatása megvalósítva.
- Hozzáadva a WPA3, EA (Enterprise Authentication), WAPI, OWE és DPP vezeték nélküli hálózatok védelmi mechanizmusainak támogatása.
- Hozzáadva a PTP (Precíziós Időszinkronizálás) protokoll támogatása.
- Hozzáadva a Clock Time keretrendszer, amely lehetővé teszi a magas pontosságú időzítők és az időszinkronizálás több forrásból. Az új keretrendszer helyettesíti a korábban használt ktime, cputime és hwtimer összetevőket.
- Megvalósult a 9PFS fájlrendszer, amely lehetővé teszi a fájlok cseréjét a gazda környezet és a virtuális gépek között.
- Az lwP (Lightweight Process) könnyű folyamatok megvalósítása támogatja az ARM architektúrát, és hozzáadták a vDSO (virtual dynamic shared object) mechanizmus támogatását, amely lehetővé teszi a kezelők áthelyezését a kernből a felhasználói térbe, elkerülve a kontextusváltásokat.
- A kernelben megvalósult a 8- és 16-bites atomikus műveletek támogatása.
- Hozzáadva a szimmetrikus multiprocesszoros (SMP) támogatás RISC-V XuanTie C/R processzorokhoz és a QEMU virt64 emulátorhoz.
- Frissült a CherryUSB 1.6.1 USB-stack.
- Új DM-illesztőprogramokat (Device Manager) adtak hozzá UFS, AHCI, NVMe, Ethernet, Intel HDA, joystickok és érintőképernyők számára.
Forrás: opennet.ru
