Abaphenyi abasenkampanini yeNCC Group bashicilela muva nje imiphumela yocwaningo lwephrojekthi yeZephyr, okuyisistimu yokusebenza yesikhathi sangempela (i-RTOS), eyenzelwe ukuhlomisa amadivayisi ngokomqondo we "Inthanethi yezinto" (IoT). I-Zephyr ithuthukiswa ngokubamba iqhaza kwe-Intel.
I-Zephyr inikeza isikhala esisodwa sekheli lazo zonke izinqubo okwabiwe emhlabeni jikelele (i-SASOS, i-Single Address Space Operating System). Ikhodi eqondene nohlelo ihlanganiswe ne-kernel eyenzelwe uhlelo oluthile futhi yakha ifayela elisebenzisekayo le-monolithic ukulanda nokusebenza kumakhompyutha athile.
Zonke izinsizakusebenza zohlelo zinqunywa esigabeni sokuhlanganiswa, eyehlisa usayizi wekhodi futhi inyuse umkhiqizo. Izici ze-kernel kuphela ezidingekayo ukusebenzisa uhlelo lokusebenza ezingafakwa kusithombe sesistimu.
Kuyaphawuleka ukuthi phakathi kwezinzuzo ezinkulu UZephyr ubalulile ukuthuthukiswa ngeso lokuphepha. Kuthiwa lokho Zonke izigaba zentuthuko zidlula ezigabeni eziphoqelekile ze- qinisekisa ukuphepha kwekhodi: ukuhlolwa okungaqondakali, ukuhlaziywa kwe-static, ukuhlolwa kokungena, ukubuyekezwa kwekhodi, ukuhlaziywa kokuthunyelwa kwangaphandle, nokwenza imodeli yokusongela.
Mayelana nokuba sengozini
Ukucwaninga kuveze ukukhubazeka okungama-25 kuZephyr kanye nokuba sengozini kwe-1 ku-MCUboot. Sekukonke, bakhonjwa Ukuba sengozini okungu-6 esitaki senethiwekhi, 4 ku-kernel, 2 kugobolondo lomyalo, 5 kubaphathi bezingcingo bohlelo, 5 kusistimu esekelayo ye-USB naku-3 kumshini wokubuyekeza i-firmware.
Izinkinga ezimbili zabelwa izinga lobungozi elibucayi, okubili: okuphezulu, okulingene okungu-9, okungu-9 - okuphansi kanye no-4 - ukubheka Izinkinga okubucayi kuthinta isitaki se-IPv4 kanye ne-MQTT parser, kanti yiniEzinobungozi zifaka isitoreji se-USB mass kanye nama-USB DFU driver.
Ngesikhathi sokukhishwa kolwazi, ukulungiswa kwakulungiselelwe ukukhubazeka okungu-15 kuphela okuyingozi kakhulu, kusekhona izingqinamba ezixazululiwe, okuholele ekwenqabelweni kwezinsizakalo noma ukwehluleka okuhlobene nezinqubo zokuvikelwa okwengeziwe kwe-kernel.
Ukuba sengozini okuxhashazwa kude kudalulwe kusitaki se-IPv4 yesikhulumi, okuholela enkohlakalweni yenkumbulo lapho amaphakethe we-ICMP eguqulwa ngendlela ethile esetshenzwa.
Enye inkinga enkulu itholwe ku-MQTT protocol parser, qKubangelwa ukungabi bikho kokuqinisekisa okufanele kobude bezinkambu kusihloko futhi kungaholela ekusebenzeni kwekhodi ekude. Ukwenqatshwa okuyingozi kwezinkinga zensizakalo kutholakala kusitaki se-IPv6 naku-CoAP protocol.
Ezinye izinkinga zingasetshenziswa endaweni ukudala ukwenqatshwa kwensizakalo noma ukwenziwa kwekhodi ezingeni le-kernel. Iningi lalokhu kuba sengozini lihlobene nokushoda kwamasheke afanele ezimpikiswano zohlelo lwezingcingo, futhi kungaholela ekubhaleni nasekufundweni kwezindawo ezingenangqondo zememori ye-kernel.
Izingqinamba ziphinde zihlanganise ikhodi yokucubungula izingcingo uqobo - ukufinyelela inombolo yocingo yohlelo olubi kuholela ekuchichimeni kwenamba. FUTHII-kernel iphinde yaveza izingqinamba ekusebenziseni ukuvikelwa kwe-ASLR (ikheli lesikhala ngokungahleliwe) kanye nendlela yokufaka amalebula e-canary esitaki, okwenza lezi zindlela zingasebenzi.
Izinkinga eziningi zithinta isitaki se-USB nabashayeli abangabodwana. Isibonelo, ukukhishwa kwesitoreji se-USB kukuvumela ukuthi ubangele ukugcwala kwe-buffer nokuqalisa ikhodi ezingeni le-kernel lapho uxhuma idivayisi kusingathi esilawulwayo sokuhlasela se-USB.
Ukuba sengozini kwe-USB DFU, umshayeli wokulanda i-firmware entsha nge-USB, kukuvumela ukuthi ulayishe isithombe se-firmware esiguquliwe ku-Flash yangaphakathi ye-microcontroller ngaphandle kokusebenzisa ukubethela nokudlula imodi evikelekile ye-boot ngokuqinisekiswa kwesiginesha yedijithali yento. Ngaphezu kwalokho, kwafundwa ikhodi evulekile ye-bootloader ye-MCUboot, lapho kutholakala khona ubungozi obungeyona ingozi obungaholela ekuchichimeni kwesibhaxa lapho usebenzisa i-Simple Management Protocol (SMP) nge-UART.